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