最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
並列プールのすべてのワーカーで関数を非同期実行
F = parfevalOnAll(p,fcn,numout,in1,in2,...)
F = parfevalOnAll(fcn,numout,in1,in2,...)
F = parfevalOnAll(p,fcn,numout,in1,in2,...)
は、関数 fcn
を並列プール p
のすべてのワーカー上で非同期実行するように要求します。parfevalOnAll
は各ワーカーの fcn
を入力引数 in1
、in2
、....、について評価し、numout
出力引数が必要です。F
は parallel.FevalOnAllFuture オブジェクトであり、すべてのワーカーで fcn
の実行が完了すると、このオブジェクトから結果を取得できます。
F = parfevalOnAll(fcn,numout,in1,in2,...)
は現在の並列プールにあるすべてのワーカーでの非同期実行を要求します。プールが存在しない場合は新しい並列プールが起動されます。ただし、並列設定でプールの自動作成が無効になっている場合を除きます。
clear
を使用する場合は、parfor
や spmd
ではなくparfevalOnAll
を使用してください。これにより、ワークスペースの透過性が維持されます。parfor ループまたは spmd ステートメント内での透過性の確保を参照してください。
シミュレーションの分散用の一時フォルダーを削除する前に、関数 clear
を使用して mex
ファイルをアンロードします。clear
には 0
出力引数があるため、parfevalOnAll
の入力引数 numout
に 0
を指定します。
parfevalOnAll(@clear,0,'mex');
すべてのワーカーですべての Simulink モデルを閉じます。
p = gcp(); % Get the current parallel pool f = parfevalOnAll(p,@bdclose,0,'all'); % No output arguments, but you might want to wait for completion wait(f);
cancel
| fetchNext
| fetchOutputs
| parallel.pool.Constant
| parfeval
| parpool
| wait