Skip to Main Content Skip to Search

ホーム |   日本  Choose Country  |  お問い合わせ  |  Cart ストア(英語) 
ご登録はこちら | ログイン(英語)
製品・サービス ソリューション アカデミック サポート ユーザコミュニティ(英語) 会社情報

 

Parallel Computing Toolbox 4.3

製品紹介

並列アプリケーションのプログラミング

Parallel Computing Toolbox は、通常の MATLAB コードを多数のワーカー (クライアント上で作られたジョブを実行する MATLAB 計算エンジン) で並列処理を実行できるようにする高度なプログラミング機能を提供します。

パラレル for ループ (parfor) や分散配列などの機能は、MATLAB クライアントとワーカー、およびワーカー同士の間の処理やデータの分配や連携といった煩雑な管理を軽減するので、並列コードの開発を容易に行うことができます。これらの機能はたとえワーカーが起動していなくても動作し、同一のコードで通常の逐次処理と並列処理の両方に対応します。


parfor を使用したループの並列実行 ( 英語 ) 2:49
parforspmd などの記述により直列のアプリケーションを並列に変換します。

マルチコア デスクトップ上で最大 8 つのワーカーを使用するアプリケーションを実行することができます。MATLAB Distributed Computing Server を使用することで、コンピューター クラスターやグリッドおよびクラウド コンピューティング サービスなどの大規模リソースに変更を加えることなく、アプリケーションを実行することができます。

MathWorks 製品に組み込まれた並列処理サポートの利用

Statistics Toolbox™ や Simulink Design Optimization™ など、多くの MATLAB/Simulink プロダクト ファミリ製品の主要関数が並列処理の組み込みサポート ( 英語 ) に対応しています。Parallel Computing Toolbox を使用することで、使用可能なワーカーに処理が分散され、並列処理のリソースを活用できるようになります。追加でプログラミングを行わなくても並列処理リソースの利用が可能です。

タスク並列アルゴリズムの実装

モンテカルロ シミュレーション、およびその他の coarse-grained (粒度の粗い) や embarrassingly parallel な (驚異的並列) 問題に対しては、独立したタスク (処理単位) に分割することにより、問題を並列化することができます。Parallel Computing Toolbox のパラレル for ループにより、タスクを複数の MATLAB ワーカーに分散させることができます。パラレル for ループにより、ループ処理を複数の MATLAB ワーカーに自動的に分散させることができます。parfor 構文は、MATLAB クライアント セッションとワーカー間のデータとコードの転送の管理を行っています。parfor 構文は、自動的にワーカーを検知し、ワーカーが起動していない場合は、通常の動作を行います。

パラレル for ループを MATLAB スクリプトと 関数に用い、対話的にもバッチ処理的にも実行させることができます

パラレル for ループを MATLAB スクリプトと 関数に用い、対話的にもバッチ処理的にも実行させることができます

また、タスクは、MATLAB 関数としても MATLAB スクリプトとしても、どちらでもプログラムすることが可能です。関数として指定した場合は、タスク オブジェクト、ジョブ オブジェクトを操作することにより、また、スクリプトとして指定した場合は、batch 関数を用いることにより、タスクを実行させることができます。


並列処理によるシミュレーション時間の短縮 ( 英語 ) 5:39
parfor を使用して複数のワーカーに処理を分散させます。

データ並列アルゴリズムの実装

大規模なデータセットの処理が必要な MATLAB アルゴリズムに対しては、Parallel Computing Toolbox から、分散配列と分散配列上で動作する並列関数が提供されています。分散配列を使用して、複数のワーカーにデータを分散し、並列関数を用いて、分散されたデータ上で演算を実行することにより、1 つの MATLAB セッションの場合よりもはるかに大きなデータセットを処理することができます。Parallel Computing Toolbox には、分散データの MAT ファイルへの書き出しや MAT ファイルからの読み込みを行うための関数も用意されています。

分散配列は、MATLAB の通常の配列を操作する場合と同様に、MATLAB セッションから対話的に操作することができます。分散配列と並列関数を使用する場合、MPI などの低レベルのプログラミング ツールの知識は必要ありません。Parallel Computing Toolbox には、ScaLAPACK に基づく線形代数ルーチンを含む、分散配列用の並列関数が 150 以上用意されています。MATLAB の通常の配列演算子を使用して、インデックス付け、行列乗算、変換を分散配列上で直接実行することができます。

分散配列を使用したプログラミングの例。分散配列や並列アルゴリズムにより、MPI を用いたプログラミングを行わずに最小限のコードの変更で、並列 MATLAB プログラムを作成することができます。

分散配列を使用したプログラミングの例。分散配列や並列アルゴリズムにより、MPI を用いたプログラミングを行わずに最小限のコードの変更で、並列 MATLAB プログラムを作成することができます。

Parallel Computing Toolbox では、spmd (Single Program Multiple Data) 構文を使用することにより、並列処理に参加しているすべてのワーカーで同時に処理するコードのセクションを指定することができます。プログラムの実行中、spmd 構文により、データとコードが自動的にワーカーに転送され、処理が完了すると MATLAB クライアント セッションに結果が返されます。

また、明示的に細粒度な制御を行うためには、Parallel Computing Toolbox からは、send、receive、broadcast、barrier、probe の各処理のための関数を含む、MPI 標準 (MPICH2) に準拠したメッセージパッシング ルーチンへのインタフェースが提供されています。


分散配列を使用した対話的な操作による大規模なデータセットの処理: データ並列アプリケーション ( 英語 ) 5:41
spmd などの構造と分散配列を使用して、大量のメモリを必要とする問題を扱います。

 

営業へのお問い合わせ
無料テクニカルキット (英語)
評価版