このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
バッチ ジョブとしてスクリプトを実行
この例では、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
の高度なオプションについては、バッチ ジョブの実行とワーカーからのファイルへのアクセスを参照してください。