News Center

The MathWorks社、デスクトップPCから始める並列処理を提案

[issued: 2008.07.10]

この記事を :  印刷する プリントする ブックマーク  はてなブックマークに登録 この記事をクリップ! Buzzurlにブックマーク Yahoo!ブックマークに登録 メールで送る メールで送る
米The MathWorks社のLisa Kempler氏
米The MathWorks社のLisa Kempler氏

 米The MathWorks社は、同社の並列処理ツール「Parallel Computing Toolbox」の追加機能について発表を行った。ループ処理のコードを2行変更するだけで並列処理を実現する機能をMATLAB製品に追加した。この機能を使うことで、ユーザーはデュアルコアのPCで並列処理を行える。また、効果があることを確かめてから、コードを変更することなくデスクトップPCからクラスタへ拡張することも可能。

 同社MATLAB製品のマーケティング・ディレクタを務めるLisa Kempler氏は、「これまで、エンジニアや科学者は、ハイパフォーマンス・コンピューティング(HPC)やスーパーコンピューティングをあまり利用できていなかった。このツールを使うことでその状況が変わってきている」と語る。

 パラレル・コンピューティングの利用の障壁となっているのは、ノード数を増やすことが難しいことと、演算処理用のソフトウエアが欠如していることである。

 一つの組織の中には、複数のユーザーグループが、いろいろなコンピュータ環境を持ち、それぞれ異なる問題を抱えている。「技術的な計算を行うユーザーは、複雑な問題を解くために大量のデータを扱わなくてはならない。また、パラレル・コンピューティングの専門家は、C言語やFortran、MPI(Message Passing Interface)などを使っているが、まだまだ使い勝手が悪いなどの指摘がある。より簡単なプログラミングが求められている。さらに、これら2つのグループに対して、クラスタの管理者がいる。この管理者がこの2つのグループに最適なハードウエアを提供しなくてはならないが、ライセンスが複雑、コストがかかるなどの問題に直面している」とKempler氏は語る。

 こうした問題に対する同社のソリューションは、MATLABを利用したパーソナル・スーパーコンピューティング(個人的なスーパーコンピューティング)である。現在、MATLABは、3種類の並列処理をサポートしている。マルチスレッド処理と分散処理とエクスプリシットである。

 Parallel Computing Toolboxのパラレルforループ(parforループ)により、ループ処理を複数のローカルワーカーに自動的に分散させることが可能となる。モンテカルロシミュレーションなどのコードにあるforループの「for」の部分を「parfor」に変更するだけで、並列処理を行えるようにした。「IBM Thinkpad T60には2つのコアが搭載されており、parfor関数を使うことで、処理能力が2倍早くなる」とKempler氏は語る。

 同社が2008年3月にリリースしたMATLAB R2008aの中に追加された2つのToolbox(ツールボックス)機能がある。「Toolboxの中にはいろいろな機能があるが、その機能を並列処理化できないかという顧客のニーズがある。我々はparforループを使ってOptimization ToolboxとGenetic Algorithm and Direct Search Toolboxのソルバでパラレル・コンピューティングを行えるようにした。コードの変更は2行だけで済む」(Kempler氏)。

 一般的に、ユーザーが会社に申請して数十台、数百台のコンピュータを購入してもらうことはなかなか難しいため、同社はローカルワーカーをサポートするための機能拡張を図ってきた。「Parallel Computing Toolboxをローカルレベルで使えるようにした。これにより例えば、デュアルコアやクアッドコアのPCでは2~4倍のスピードアップが可能となる」とKempler氏は言う。

 この機能により、ユーザーはデスクトップ環境の中でパラレル・コンピューティングの能力を使いながらシミュレーションを行うことができる。「まずは、ローカルワーカーでパラレル・コンピューティングを試して、効果的だという結果が出れば、さらにハードウエアを増やしていけばよい。ローカルワーカーで問題なければ、より多くのコンピュータを使うクラスタに拡張することをIT部門の担当者と話し合うことは容易になるだろう。必要としているハードウエアを購入してもらえれば、仕事をより効率的に行うことができるという話し合いが可能となる」(Kempler氏)。

 ハードウエアを増やした場合は、MATLAB Distributed Computing Serverにより、クラスタ上で並列処理を実行できるようになる。MATLAB Distributed Computing Serverには、標準スケジューラであるMathWorks Job Managerが含まれているが、すでにサードパーティ製のスケジューラを使っている場合でも、複数のローカルワーカーにタスクを分けて分散処理を行える。サードパーティ製スケジューラは、Platform LSFやWindows CCS、PBS Pro、TORQUEなどをサポートする。

 ここで重要なのは、「ローカルレベルで問題がなく、クラスタに拡張する場合、コードを変更する必要がない」(Kempler氏)ということである。ローカルワーカーで使っていたコードをそのまま使って、クラスタ上で分散処理が行える。
(大村泰憲)

この記事を :  印刷する プリントする ブックマーク  はてなブックマークに登録 この記事をクリップ! Buzzurlにブックマーク Yahoo!ブックマークに登録 メールで送る メールで送る

Sponsor Links

Partner Solutions

EVENTS

DNJ RESOURCE CENTER

Z corporation
3D プリンタ購入ガイド

資料一覧を見る この資料をダウンロード

他グループサイト関連記事