ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

複数のシミュレーション ワークフロー

複数のシミュレーションのセットを実行する場合、それらを並列プール内の複数の MATLAB® ワーカー上で並列実行できます。複数のシミュレーションを実行するには、parsim'RunInBackground' オプションをオンにした parsim、または batchsim を使用できます。

フローチャートでは、parsimRunInBackground をもつ parsim および batchsim を使用した複数のシミュレーションの実行の違いを示します。

parsim および batchsim コマンドは、Parallel Computing Toolbox™ ライセンスを使用して、シミュレーションを並列実行します。parsim は、並列プールが作成できない場合または Parallel Computing Toolbox ライセンスが利用できない場合、シミュレーションを逐次実行します。batchsim コマンドは、Parallel Computing Toolbox ライセンスがないと実行できません。

parsim ワークフロー

複数のシミュレーションを実行するために Parallel Computing Toolbox で parsim コマンドを使用すると、並列プールが自動的に設定され、シミュレーションが並列実行されます。クライアントは常に MATLAB ワーカーに関連付けられています。

標準 parsim ワークフロー

  1. モデルへの変更を指定するために Simulink.SimulationInput オブジェクトの配列 in を作成します。

  2. 複数のシミュレーションの実行に必要な 1 回限りの設定を指定します。SetupFcn および TransferBaseWorkspaceVariables を使用して、並列ワーカー上で設定を実行します。

  3. parsim(in) を実行して、これらの複数のシミュレーションを並列実行します。並列プールが存在しない場合、parsim が作成します。parsim は既定の設定を使用します。

  4. parsim(in,'SimulationManager','on') のように parsim'SimulationManager' 引数を 'on' に設定して、シミュレーション マネージャーを開くことができます。シミュレーション マネージャーにより、実行しているシミュレーションを監視し、シミュレーションの出力が準備できるとこれにアクセスできます。シミュレーション マネージャーによって、ワーカー上で実行しているシミュレーションに関する多数の情報が得られます。詳細については、シミュレーション マネージャーを参照してください。

  5. すべてのシミュレーションが完了すると、Simulink.SimulationOutput オブジェクトの配列が得られます。

制限

  • MATLAB セッションを閉じると、ワーカー上のシミュレーションが停止し、部分的な結果を取得できません。

RunInBackground ワークフローでの parsim

  1. モデルへの変更を指定するために Simulink.SimulationInput オブジェクトの配列 in を作成します。

  2. 複数のシミュレーションの実行に必要な 1 回限りの設定を指定します。SetupFcn および TransferBaseWorkspaceVariables を使用して、並列ワーカー上で設定を実行します。

  3. parsim(in,'RunInBackground','on') のように RunInBackground オプションを 'on' に設定して parsim を実行します。'RunInBackground' オプションを 'on' に設定してシミュレーションを非同期で実行します。これにより、MATLAB コマンド プロンプトを利用し続けることができ、他のタスクでの作業が可能です。

  4. 'RunInBackground' オプションを 'on' に設定すると、parsimSimulink.Simulation.Future オブジェクトを返します。このオブジェクトをポーリングして、シミュレーションのステータスの確認、シミュレーション完了時の出力の取得またはシミュレーションのキャンセルを行うことができます。詳細については、Simulink.Simulation.Future を参照してください。

制限

  • MATLAB セッションを閉じると、ワーカー上のシミュレーションが停止し、部分的な結果を取得できません。future オブジェクトが消去されると、その後、シミュレーションの結果にアクセスできなくなります。

  • Future オブジェクトで fetchNext メソッド ループをシミュレーション マネージャーと共に使用すると、Future オブジェクトの取得で競合が発生します。完了したシミュレーションの出力を取得するには、fetchNext ネクスト ループまたはシミュレーション マネージャーのいずれかを使用します。

batchsim ワークフロー

バッチ ワークフローは通常、MATLAB ワーカー上でシミュレーションを実行するジョブを送信し、その後それらのシミュレーションの結果にアクセスすることを意味します。シミュレーションをバッチで実行する場合、シミュレーションの実行を計算クラスターにオフロードします。バッチ処理の詳細については、シンプルなバッチ処理 (Parallel Computing Toolbox)を参照してください。

  1. モデルへの変更を指定するために Simulink.SimulationInput オブジェクトの配列 in を作成します。

  2. 複数のシミュレーションの実行に必要な 1 回限りの設定を指定します。SetupFcn および TransferBaseWorkspaceVariables を使用して、並列ワーカー上で設定を実行します。

  3. クラスターまたはデスクトップ バックグラウンドで実行するには、batchsim を呼び出し、シミュレーションの実行をオフロードします。batchsim では、parsim コマンドおよび batch コマンドと互換性のある大部分の引数を使用できます。詳細については、batchsim を参照してください。

    batchsim を使用して、シミュレーションを MATLAB ワーカーにオフロードしました。バッチ ジョブを複数のワーカーで実行するには、batchsim(in, 'Pool', N) のように、ジョブの並列プールに作成するワーカーの数を指定する整数であるプール サイズ N を指定します。少なくとも N+1 個のワーカーがクラスターで利用できなければなりません。プール サイズが指定されていない場合、batchsim(in) は、既定のクラスター プロファイルで指定されたクラスター内の単一のワーカー上でシミュレーションを実行します。

    メモ

    Parallel Computing Toolbox ライセンスが利用できない場合に、プール サイズを指定せずに batchsim を使用すると、シミュレーションを逐次実行します。ただし、Parallel Computing Toolbox ライセンスが利用できない場合に、プール サイズを指定して使用すると、batchsim エラーが発生します。

  4. batchsim がシミュレーションを計算クラスターにオフロードすると、バッチ ジョブの処理中に他のタスクを実行したり、クライアントの MATLAB を閉じて、バッチ ジョブに後でアクセスしたりできます。

  5. バッチ ジョブの送信時に、batchsim はジョブ オブジェクトを返します。これには、後でバッチ ジョブにアクセスする際に使用できるジョブ ID およびその他の情報が含まれています。このジョブに再度アクセスすると、シミュレーションの進行状況を確認できます。

制限

  • クライアント セッションがワーカーに関連付けられていないため、ジョブが完了しないと出力にアクセスできません。

  • batchsim では、シミュレーション マネージャーを使用してシミュレーションを監視できません。バッチ ジョブの場合、ジョブがキューに入っているか、処理中か、完了しているかを示すバッチ ジョブ モニターを使用できます。詳細については、ジョブ モニター (Parallel Computing Toolbox)を参照してください。

参考

関数

クラス

関連するトピック