我有一个 MPI 应用程序,它当前有一个进程(称为它A
),这会导致可伸缩性的严重问题。目前,所有其他进程都在MPI_Recv
等待那个进程向它们发送信息。
由于我现在想以尽可能少的努力加快速度,因此我正在考虑使用 OpenMP 并行化进程A
。这实用吗?
由于与共享一个节点的其他进程A
都在一个中MPI_Recv
,我可以利用该节点的所有资源来处理进程A
,还是会MPI_Recv
阻止这种情况?
使用 OpenMP 的另一个好处是内存可以共享,因为进程A
需要很多时间。
顺便说一句,如果我的处理器在等待MPI_Send
而不是等待,它会改变什么MPI_Recv
吗?