Quitada ブログ HAX

Hatena Blog でも Quitada ブログ

MDCS + LSF で並列処理による MATLAB の高速化

MATLAB といえば、計算に特化した容易な言語体型で、科学技術計算とかのプログラミング比較的簡単にできるものとして、大学時代に研究室の Solaris マシンにインストールした記憶があります。

それから十余年、グリッドとかクラウドとかマルチコア・分散コンピューティング環境が当たり前になった昨今においては、コンピューターパワーを使い切る意味でも、さらにスケールアウトして演算を高速化する意味でも、並列処理可能な計算はできるだけ並列処理をするというアプローチが重要で、MATLAB のユーザーにおいてはあまり並列処理を意識することなく、分散コンピューティングインフラも意識することなくその恩恵に与りたいという要望がでてくるわけで。

そういった観点で、MATLAB の最近の言語体型においては、それほど並列処理を意識することなく計算の並列処理が可能なステートメントが用意されているようです。例えば、何度も同じ計算を行うためのループのステートメントとして、for がありますが、これを parfor と変更するだけで自動的に並列処理をするのだそうです。

加えて、MDCS(MATLAB Distributed Computing Server)を使用すれば、Platform LSF のようなグリッドを実現するジョブスケジューラに計算ジョブをオフロードエンジン的に実行させて、スケールアウトによる多重並列処理による超高速化も実現できるようになっているんですね。一旦計算処理をジョブスケジューラに移譲すれば、リソースマネジメントや障害時のフェールオーバーなど自動的にやってくれるので、ユーザーはインフラをあまり意識することなく計算の高速化の恩恵に与れるというわけですね。