Main Content

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

Simulink.Simulation.Job クラス

パッケージ: Simulink
スーパークラス:

batchsim を実行して、Simulink.Simulation.Job オブジェクト、simJob を作成します。

説明

並列プールを使用して batchsim コマンドを実行し、Simulink.Simulation.Job オブジェクトを作成します。batchsim コマンドは、Simulink.SimulationInput オブジェクトの配列で指定された入力を使用して、複数のシミュレーションをオフロードしてバッチ実行します。このオブジェクトを使用すると、バッチ ジョブのステータスをモニターしたり、完了したバッチ ジョブの出力を取得したり、1 つ以上のジョブをキャンセルしたりできます。

batchsim コマンドは、Parallel Computing Toolbox™ ライセンスを使用して、計算クラスター上でシミュレーションを実行します。並列プールを作成できない場合、batchsim はシミュレーションを逐次実行します。Parallel Computing Toolbox™ ライセンスがない場合、batchsim はエラーを発生します。

作成

simJob = batchsim(in) は、Simulink.Simulation.Job オブジェクト simJob を作成し、Simulink.SimulationInput オブジェクト in で指定された入力を使用して計算クラスター上で複数のシミュレーションをバッチ実行します。

createSimulationJob(batchJob)parallel.job オブジェクトの batchJob から Simulink.Simulation.Job オブジェクトを作成します。createSimulationJob コマンドを使用して、batchsim コマンドによって返されるジョブ オブジェクトを取得します。

入力引数

すべて展開する

複数のシミュレーションを実行するために使用される Simulink.SimulationInput オブジェクトまたは Simulink.SimulationInput オブジェクトの配列。変更未保存 (ダーティ) にすることなく複数のシミュレーションを実行するため、モデルのパラメーターと値を指定します。

例: in = Simulink.SimulationInput('vdp'), in(1:10) = Simulink.SimulationInput('vdp')

プロパティ

すべて展開する

並列ワーカーの MATLAB 検索パスに追加するよう指定されたフォルダー。

このプロパティは読み取り専用です。

並列ワーカーに送信されるファイルおよびフォルダー。

このプロパティは読み取り専用です。

ユーザーがクライアント パスに追加したエントリが、バッチ ジョブの開始時に各並列ワーカーのパスに追加されるかどうか。true または false で指定します。

バッチ ジョブの作成日時。datetime オブジェクトとして指定します。

このプロパティは読み取り専用です。

クライアント セッションから並列ワーカーにコピーされる環境変数の名前を定義します。

ジョブの投入後、このプロパティは読み取り専用になります。

バッチ ジョブの実行が完了した日時。datetime オブジェクトとして指定します。

このプロパティは読み取り専用です。

future オブジェクトの ID。スカラー整数として指定します。

このプロパティは読み取り専用です。

job オブジェクトの名前。string として指定します。

Simulink.Simulation.Job オブジェクト、simJob を含むクラスター オブジェクト。

Simulink.Simulation.Job が実行を開始する日時。datetime オブジェクトとして指定します。

このプロパティは読み取り専用です。

future オブジェクト配列の現在の状態。'pending''queued''running''finished'、または 'failed' として指定します。

このプロパティは読み取り専用です。

Simulink.Simulation.Job が投入された日時。datetime オブジェクトとして指定します。

このプロパティは読み取り専用です。

Simulink.Simulation.Job オブジェクトに関連付けられたラベル。

Simulink.Simulation.Job オブジェクト。independent または pool として指定します。

ジョブ オブジェクトに関連付けられたデータを格納します。データはクライアント MATLAB セッションに格納されるため、ワーカーでは使用できません。

Simulink.Simulation.Job オブジェクトを作成したユーザーの名前。

メソッド

メソッド

目的

cancel

保留中、キューに入っている、または実行中の Simulink.Simulation.Job オブジェクトをキャンセルする

diary

バッチ ジョブのコマンド ウィンドウ テキストを表示または保存する

fetchOutputs

Simulink.Simulation.Job 内のすべてのシミュレーションから Simulink.SimulationOutput オブジェクトの配列を取得する

listAutoAttachedFiles

ジョブ、タスクまたは並列プールに自動的に付加されるファイルのリスト

wait

Simulink.Simulation.Job オブジェクトの状態が変わるまで待機する

すべて折りたたむ

この例では、sldemo_househeat モデルを使用して並列シミュレーションをバッチで実行する方法を示します。batchsim でシミュレーションを計算クラスターにオフロードすると、バッチ ジョブの処理中に他のタスクを実行することや、クライアント MATLAB® を閉じてバッチ ジョブに後からアクセスすることができます。

異なる温度指定値に対するモデルの動作を観察します。

1. モデルを開きます。

open_system('sldemo_househeat');

2. さまざまな温度に対して一連の値を定義します。

setPointValues = 65:2:85;
spv_Length = length(setPointValues);

3. setPointValues を使用して、Simulink.SimulationInput オブジェクトの配列を初期化します。

in(1:spv_Length) = Simulink.SimulationInput('sldemo_househeat');
for i = 1:1:spv_Length 
    in(i) = in(i).setBlockParameter('sldemo_househeat/Set Point',...
        'Value',num2str(setPointValues(i)));
end

4. 使用するワーカー数のプール サイズを指定します。シミュレーションの並列実行に使用されるワーカー数に加え、ヘッド ワーカーが必要です。この例では、3 つのワーカーで並列シミュレーションの 1 つのバッチジョブを実行できると仮定します。ジョブ オブジェクトは、以下のように有用なメタデータを返します。ジョブ ID を使用すると、後で任意のマシンからジョブ オブジェクトにアクセスできます。NumWorkers は、シミュレーションを実行中のワーカー数を示します。これは、'Pool' 引数で指定したワーカー数に追加のヘッド ワーカーを足した数になります。

simJob = batchsim(in,'Pool',3)
                  ID: 1
                Type: pool
          NumWorkers: 4
            Username: #####
               State: running
      SubmitDateTime: ##-###-#### ##:##:##
       StartDateTime: 
    Running Duration: 0 days 0h 0m 0s

参考

関数

クラス

トピック

R2018b で導入