Main Content

非同期並列プログラミング

parfeval を使用したバックグラウンドでの関数の評価

parfeval を使用すると、完了を待たずにバックグランドで関数を評価できます。多くの場合、for ループを早めに中断できると便利です。たとえば、最適化の手順で、結果が良好な場合はループを早めに停止できます。この処理を行うには、1 つまたはすべての並列プール ワーカーで parfeval または parfevalOnAll を使用します。これは、中間結果をプロットできるようにする場合に役に立ちます。この処理は、ループの完了を待たなければならない parfor を使用する場合とは異なります。

データ キューを使用して異なるワーカーからメッセージまたはデータの送信とポーリングを行うには、sendpoll を共に使用します。afterEach を使用すると、データ キューから新規データを受信したときに呼び出す関数を追加できます。

Future の配列の各要素またはすべての要素が完了した後で自動的に関数を呼び出すには、afterEach および afterAll を使用します。この配列には、parfevalparfevalOnAllafterEach、または afterAll から返された Future を含めることができます。

関数

すべて展開する

parfeval並列プール ワーカーで関数を実行
parfevalOnAll並列プールのすべてのワーカーで関数を非同期実行
ticBytes並列プール内で転送されたバイト数のカウントを開始する
tocBytesticBytes の呼び出し後に転送されたバイト数を読み取る
sendデータ キューを使用したクライアントからワーカーへのデータの送信
poll ワーカーから送信されたデータの取得
afterEachDataQueue で新規データを受信したときに呼び出す関数の定義
afterEachRun function after each function finishes running in the background
afterAllRun function after all functions finish running in the background
fetchOutputsバックグラウンドで実行されている関数からの結果の取得
fetchNextFuture 配列から次の未読の出力を取得
cancelバックグラウンドで実行されている関数の停止
cancelAllすべてのジョブまたはタスクをキャンセルする (R2022a 以降)
waitFuture の完了を待機
FutureFunction scheduled to run
parallel.Poolワーカーの並列プール
parallel.pool.DataQueueクライアントとワーカーの間でのデータの送信とリスニング
parallel.pool.PollableDataQueue クライアントとワーカーの間でのデータの送信とポーリング

トピック