Main Content

バッチ処理関数の選択

バッチ処理ワークフローにより、計算クラスターに作業をオフロードして MATLAB® クライアントを解放することで、他のタスクを実行したり、実行時間の長いコードを後で実行するために送信したりすることができます。バッチ ワークフローでは、ジョブの処理中に MATLAB クライアント セッションを閉じ、後から、あるいは新しいクライアント セッションでバッチ ジョブから情報を取得できます。

バッチ並列ジョブ タイプ

Parallel Computing Toolbox™ は、オフラインで実行する MATLAB コードをジョブおよびタスクにパッケージ化します。Parallel Computing Toolbox でどのようにジョブが実行されるのかの詳細については、並列計算ソフトウェアでのジョブ実行の仕組みを参照してください。

バッチ ワークフローでは次の 2 つのタイプのジョブを実行できます。

  • 独立ジョブ – ワーカー間で通信することなく、1 つのワーカーでタスクを独立して実行します。

    通常、コードで並列プールが不要な場合は、独立ジョブを使用できます。

  • 通信ジョブ – 一方のワーカーがクライアントとして機能し、もう一方のワーカーが非対話型プールを実行します。ワーカーはタスクの実行中に相互に通信できます。

    通常、parforparfevalspmd、または distributed などの並列プールを必要とする関数をコードで呼び出す場合には、通信ジョブになります。

Parallel Computing Toolbox には、バッチ プロセスで MATLAB コードを実行するために以下の関数が用意されています。

ヒント

通信ジョブを実行するシンプルな関数では、関数 createCommunicatingJob の代わりに関数 batch を使用します。

以下の図では、関数 batch および関数 createJob をどのような場合に使用するのかを示します。

Diagram shows the types of jobs in batch processing, and the different parallel language constructs you can use within each job type. For independent jobs, you can use the batch or createJob function. For communicating jobs, use the batch function with a Pool name-value argument.

バッチ関数の選択

自分に適したバッチ処理関数を判断するには、以下の表を参照してください。

用途の例 関数と方法

クラスターにおいてバックグラウンドで MATLAB スクリプトを実行する。

関数 batch を使用します。これは、長時間実行されるジョブをオフロードしてバックグラウンドで実行する最も簡単な方法です。

バッチ ジョブとしてスクリプトを実行

オンサイトまたはクラウド クラスター上の非対話型プールを使用して、以下の 1 つ以上を含むコードを実行する。

名前と値の引数 Pool を指定して関数 batch を使用します。

バッチ並列ジョブの実行

バッチ ジョブの実行とワーカーからのファイルへのアクセス

複数の独立した MATLAB 関数の呼び出しをクラスターにおいてバックグラウンドで実行する。各関数がワーカーの並列プールを必要としない。

関数 createJob を使用し、関数 createTask によってタスクを追加します。

関数の呼び出しごとに独立したタスクを作成できます。1 つのタスクが完了すると、ワーカーは、残りのタスクの完了を待つことなく、リスト内の次のタスクに進みます。完了したタスクの中間結果にアクセスすることもできます。

ジョブの作成と実行

参考

| | |

関連するトピック