Main Content

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

parfevalOnAll

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

説明

F = parfevalOnAll(p,fcn,numout,in1,in2,...) は、関数 fcn を並列プール p のすべてのワーカー上で非同期実行するように要求します。parfevalOnAll は各ワーカーで fcn を入力引数 in1in2、... について評価し、numout 個の出力引数を必要とします。Fparallel.FevalOnAllFuture オブジェクトであり、すべてのワーカーで 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');
% No output arguments, but you might want to wait for completion
wait(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 で導入