主要内容

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

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

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

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

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

parsimワークフロー

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

標準Parsimワークフロー

  1. モデルへの変更を指定するために金宝app仿真软件。SimulationInputオブジェクトの配列を作成します。

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

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

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

  5. すべてのシミュレーションが完了すると,金宝app仿真软件。SimulationOutputオブジェクトの配列が得られます。

制限

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

RunInBackgroundワークフローでのparsim

  1. モデルへの変更を指定するために金宝app仿真软件。SimulationInputオブジェクトの配列を作成します。

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

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

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

制限

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

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

batchsimワークフロー

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

  1. モデルへの変更を指定するために金宝app仿真软件。SimulationInputオブジェクトの配列を作成します。

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

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

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

    メモ

    并行计算工具箱ライセンスが利用できない場合に,プールサイズを指定して使用すると,batchsimエラーが発生します。

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

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

制限

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

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

参考

関数

クラス

関連するトピック