MathWorks Marketing Director, MATLAB ApplicationsのLisa Kempler氏

MathWorksは、12月3日より開催する「MATLAB EXPO 2008」に併せ、12月2日、記者向け説明会を開催し、MATLABの並列処理の対応状況を説明した。

現在、「すべてのPCがマルチコアに対応しているが、アプリケーションの肥大化が進展した結果、当該する50%のエンジニアがアプリケーションの処理に何らかの問題を抱えている」(同社Marketing Director, MATLAB ApplicationsのLisa Kempler氏)であり、「その内の80%の人が過去5年以内に複数のクラスタによる処理を用いており、さらにその内の55%が数年以内にクラスタの拡張を計画するなど、クラスタ化の進展が著しい」という。

現に、コンピュータクラスタの比率は2003年でコンピュータ全体の20%程度であったものが、2007年には65%まで拡大している。

コンピュータのクラスタ化が急速に進んでいる

MathWorksは2004年、コンピュータクラスタおよびサーバファーム上でMATLAB/Simulinkを実行することが可能となる「Distributed Computing Tools」を提供することで、並列化への対応を開始した。

同氏は、「HPCに携わるエンジニアはプログラムのことを良く知っている。しかし現場の科学者はプログラムを良く理解しておらず、またプログラマは科学的なことを理解していないためにパフォーマンスを向上させるのに問題が生じる」とし、「双方の分野から使うことができるHPCというものを構築する必要がある」と語る。

エンジニア、科学者双方に使い勝手が良いHPCを構築する必要性

現在、MATLABの最新版は2008年10月にリリースされたR2008bとなっている。MATLABの並列処理化には3つの観点により行われているという。

1つめはアルゴリズムの効率化とエンジニアと科学者が有効活用できること(Simplicity and Portability)、2つ目はデスクトップのみならず、遠隔からの操作を可能にする拡張性(Scalability)、3つ目はシステムの展開性(Deployability)である。

3つの観点からMATLABの並列処理を進展

1つ目の対応としては、マルチコアコンピュータおよびコンピュータクラスタ上での並列処理の実行を可能とする「Parallel Conputing Toolbox」の提供を行っている。これを用いることで、PC上のみならず、クラスタやクラウド上にあるほかのマルチコアデスクトップなどを4台まで管理できるようにしている。

また、これに併せて2008年3月リリースの「R2008a」では、例えば「for-loop」を「parfor-loop」へとコマンドの変更を行うだけでクラスタ上にあるすべてのコアを並列に使用することが可能となる拡張が行われている。

加えてR2008bでは、対象数Nの大規模化により、PCが計算領域を確保できない場合に対して、「SPMD(Single Program Multiple Data)」に対応、各クライアントごとにデータを分散、並列化を行うことを可能としている。これも、コマンドとして、既存のプログラムに"spmd"と"codistributor"を足してやるだけで、複数台数への分散が可能になるという。

R2008bでは、"spmd"を用いることで、複数のコンピュータに処理を分散させることができるようになった

ちなみに、ガン研究で用いられる100万分子を処理するプロセスでは、64ノード構成のクラスタを用いることで、これまで1週間かかっていた処理を一晩で終えることができるようになったという。

また、同Toolboxの導入は、「一台一台にMATLABを導入することを考えるとライセンスが高コストとなるという問題があるが、このコストを抑えるのにも役に立つ」(同)であり、並列処理は、より低いコストで高いパフォーマンスを実現する手段だとする。

なお、次期バージョンとなる「R2009a」は2009年3月頃の提供を、その次のバージョンとなる「R2009b」の提供は同年9~10月ころの提供をそれぞれ予定しており、より並列処理に対応した機能が加えられていく予定である。