Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

batch を使用して、バックグラウンドで実行される MATLAB ワーカー セッションに作業をオフロードします。計算の実行中も引き続き MATLAB を使用できます。

関数batchを使用して、スクリプトをバッチ ジョブとして実行します。既定で、batch は既定のクラスター プロファイルを使用します。既定のクラスター プロファイルは、MATLAB の [ホーム] タブの [環境] セクションの [並列][既定のクラスターの選択] で確認します。または、名前と値のペアの引数 'Profile' を使用してクラスター プロファイルを指定することもできます。

job = batch('myScript');

batch は MATLAB をブロックしないため、計算の実行中に作業を続行できます。

ジョブが完了するまで MATLAB をブロックする場合は、ジョブ オブジェクトに対して関数 wait を使用します。

wait(job);

既定では、MATLAB はバッチ ジョブからのコマンド ウィンドウの出力をジョブのダイアリに保存します。これを取得するには、関数 diary を使用します。

diary(job)
--- Start Diary ---
n = 100

--- End Diary ---

ジョブの完了後、関数loadを使用して結果を取得します。

load(job,'x');
plot(x)

バッチ ジョブのすべての変数を読み込むには、代わりに load(job) を使用します。

必要な変数をすべて読み込んだら、ジョブ オブジェクトを削除してデータをクリーン アップし、不必要にリソースが消費されないようにします。

delete(job);
clear job

batch を使用してスクリプト ファイルを送信すると、MATLAB はスクリプトで使用しない場合でも、すべてのワークスペース変数をクラスターに転送します。大規模なワークスペースのデータ転送時間は長くなる場合があります。ベスト プラクティスとして、スクリプトを関数ファイルに変換することにより、この通信オーバーヘッドを回避します。関数を使用する例については、バッチ ジョブの実行とワーカーからのファイルへのアクセスを参照してください。

batch の高度なオプションについては、バッチ ジョブの実行とワーカーからのファイルへのアクセスを参照してください。

参考

| |

関連するトピック