如何在MPI中使用未阻止的Bcast?

时间:2012-09-06 02:27:59

标签: c parallel-processing mpi

我想在MPI_Bcast中隐藏通信延迟。

据我所知,我可以使用MPI_Isend / Irecv制作它,但是当我使用Bcast时如何才能使其无阻塞?

1 个答案:

答案 0 :(得分:3)

虽然它不是最终版,但MPI 3.0规范包括MPI_Ibcast以及其他非阻塞集合。 MPICH2和OpenMPI的最新版本包括这些集合的实现。还有libNBC,但它更多的是概念验证实现,而不是关注性能。

说到性能:可能需要一些调整。您可能会发现启用后台进度线程有助于或阻碍性能。您可以尝试定期致电MPI_Test以确保取得进展。这就像非阻塞的点对点,除了在后台发送更多消息,性能调优可以产生更大的收益。最后,在某些硬件上,可以从CPU卸载集体通信,并获得更好的计算/通信重叠。