Main Content

parfevalOnAll

並列プールのすべてのワーカーで関数を非同期実行

説明

F = parfevalOnAll(p,fcn,numout,in1,in2,...) は、関数 fcn を並列プール p のすべてのワーカー上で非同期実行するように要求します。parfevalOnAll は各ワーカーで fcn を入力引数 in1in2、... について評価し、numout 個の出力引数を必要とします。FFuture オブジェクトであり、すべてのワーカーで fcn の実行が完了すると、このオブジェクトから結果を取得できます。

F = parfevalOnAll(fcn,numout,in1,in2,...) は現在の並列プールにあるすべてのワーカーでの非同期実行を要求します。プールが存在しない場合は新しい並列プールが起動されます。ただし、並列基本設定でプールの自動作成が無効になっている場合を除きます。

メモ

clear を使用する場合は、parforspmd ではなく parfevalOnAll を使用してください。これにより、ワークスペースの透過性が維持されます。parfor ループまたは spmd ステートメント内での透過性の確保を参照してください。

すべて折りたたむ

シミュレーションの分散用の一時フォルダーを削除する前に、関数 clear を使用して mex ファイルをアンロードします。clear には 0 出力引数があるため、parfevalOnAll の入力引数 numout0 を指定します。

parfevalOnAll(@clear,0,'mex');

すべてのワーカーですべての Simulink モデルを閉じます。

p = gcp(); % Get the current parallel pool
f = parfevalOnAll(p,@bdclose,0,'all');
% You might want to wait for completion and check for success even if you do not request output arguments.
% To do this, call fetchOutputs on the future and check for errors from the workers.
fetchOutputs(f);

入力引数

すべて折りたたむ

ワーカーの並列プール。parallel.Pool オブジェクトとして指定します。関数 parpool を使用して並列プールを作成できます。

データ型: parallel.Pool

ワーカーで実行する関数。関数ハンドルとして指定します。

例: fcn = @sum

データ型: function_handle

fcn から返される出力引数の数。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

fcn に渡す関数の引数。変数または式のコンマ区切りリストとして指定します。

出力引数

すべて折りたたむ

future オブジェクト。parallel.FevalOnAllFuture として返されます。これは並列ワーカーでの fcn の実行を表し、その結果が格納されます。結果を収集するには fetchOutputs を使用します。

拡張機能

バージョン履歴

R2013b で導入

すべて展開する

R2021b での動作変更