0

MPI_Bcast で通信遅延を隠蔽したい。

私が知っているように、MPI_Isend/Irecv を使用して作成できますが、Bcast を使用する場合、ブロックを解除するにはどうすればよいですか?

4

1 に答える 1

3

完全な最終版ではありませんが、MPI 3.0 仕様には、MPI_Ibcast他のノンブロッキング集合体とともに が含まれています。MPICH2 と OpenMPI の両方の最近のバージョンには、これらの集合の実装が含まれています。libNBC もありますが、これは概念実証の実装であり、パフォーマンスには重点を置いていません。

パフォーマンスといえば、いくつかの調整が必要になる場合があります。バックグラウンド プログレス スレッドを有効にすると、パフォーマンスが向上する場合と低下する場合があります。MPI_Test代わりに、進行状況を確認するために定期的に電話をかけることができます。これは、バックグラウンドでより多くのメッセージが送信されることを除いて、ノンブロッキング ポイント ツー ポイントと同じであり、パフォーマンス チューニングにより、より大きな利益が得られる可能性があります。最後に、一部のハードウェアでは、集合通信を CPU からオフロードして、計算と通信のオーバーラップを改善することができます。

于 2012-09-06T03:17:28.050 に答える