spmdSend
説明
spmdSend( は、A,destination)spmd ブロックまたは通信ジョブの現在のワーカーから destination によって指定されたワーカーにデータ A を送信します。
parfor と parfeval を使用して計算をオフロードする場合、各計算は一度に 1 つのワーカーによってのみ実行されます。これらのワーカーは独立しており、相互の通信は行われません。これらのワーカーに spmdSend を適用する場合、この関数による影響はありません。
spmdSend を使用するには、現在の spmd ブロックを実行しているワーカーの数が 1 より大きくなければなりません。現在の spmd ブロックを実行しているワーカーの数を取得するには、関数 spmdSize を使用します。
例
入力引数
ヒント
タグには次のような多くの用途があります。
タグを使用して、データが必要なときにのみワーカーに配列を読み込むことで、メモリを節約。
タグを使用して、送信側ワーカーのインデックスに依存しないコードを作成。
spmdSendを使用してデータを送信するワーカーは、spmdブロックの他のワーカーより先に実行を終了する場合があります。共有リソースを閉じる場合など、spmdブロックまたは通信ジョブのワーカーを同期する必要があるときは、spmdSendおよびspmdReceiveを呼び出した後にspmdBarrierを使用します。spmdSendおよびspmdReceiveを使用する際、ワーカー間のデータ転送で追い越しは発生しません。つまり、ワーカーが複数のデータを同じ宛先に送信する場合、受信側ワーカーがタグを指定せずにspmdReceiveを使用していれば、MATLAB® は送信された順にデータを配信します。
拡張機能
バージョン履歴
R2022b で導入
参考
spmdBarrier | spmdIndex | spmdProbe | spmdReceive | spmdSendReceive | spmdSize