バッチ処理関数の選択
バッチ処理ワークフローにより、計算クラスターに作業をオフロードして MATLAB® クライアントを解放することで、他のタスクを実行したり、実行時間の長いコードを後で実行するために送信したりすることができます。バッチ ワークフローでは、ジョブの処理中に MATLAB クライアント セッションを閉じ、後から、あるいは新しいクライアント セッションでバッチ ジョブから情報を取得できます。
バッチ並列ジョブ タイプ
Parallel Computing Toolbox™ は、オフラインで実行する MATLAB コードをジョブおよびタスクにパッケージ化します。Parallel Computing Toolbox でどのようにジョブが実行されるのかの詳細については、並列計算ソフトウェアでのジョブ実行の仕組みを参照してください。
バッチ ワークフローでは次の 2 つのタイプのジョブを実行できます。
独立ジョブ – ワーカー間で通信することなく、1 つのワーカーでタスクを独立して実行します。
通常、コードで並列プールが不要な場合は、独立ジョブを使用できます。
通信ジョブ – 一方のワーカーがクライアントとして機能し、もう一方のワーカーが非対話型プールを実行します。ワーカーはタスクの実行中に相互に通信できます。
通常、
parfor
、parfeval
、spmd
、またはdistributed
などの並列プールを必要とする関数をコードで呼び出す場合には、通信ジョブになります。
Parallel Computing Toolbox には、バッチ プロセスで MATLAB コードを実行するために以下の関数が用意されています。
ヒント
通信ジョブを実行するシンプルな関数では、関数 createCommunicatingJob
の代わりに関数 batch
を使用します。
以下の図では、関数 batch
および関数 createJob
をどのような場合に使用するのかを示します。
バッチ関数の選択
自分に適したバッチ処理関数を判断するには、以下の表を参照してください。
用途の例 | 関数と方法 | 例 |
---|---|---|
クラスターにおいてバックグラウンドで MATLAB スクリプトを実行する。 | 関数 | |
オンサイトまたはクラウド クラスター上の非対話型プールを使用して、以下の 1 つ以上を含むコードを実行する。
| 名前と値の引数 | |
複数の独立した MATLAB 関数の呼び出しをクラスターにおいてバックグラウンドで実行する。各関数がワーカーの並列プールを必要としない。 | 関数 関数の呼び出しごとに独立したタスクを作成できます。1 つのタスクが完了すると、ワーカーは、残りのタスクの完了を待つことなく、リスト内の次のタスクに進みます。完了したタスクの中間結果にアクセスすることもできます。 |
参考
batch
| createJob
| createCommunicatingJob
| createTask