我有一个MPI应用程序,当前有一个进程(称为A
),这会导致严重的可伸缩性问题。目前,所有其他进程都坐在一个MPI_Recv
等待该进程向其发送信息。OpenMP与OpenMPI
因为我想尽可能地加快这个速度现在我正在考虑使用OpenMP并行化过程A
。这是否实用?
因为其它进程共享与A
一个节点是在MPI_Recv
,我可以利用所有的资源,从该节点到工艺A
工作,或将MPI_Recv
阻止?
使用OpenMP的另一个好处是内存可以共享,因为进程A
需要很多。
顺便说一句,如果我的处理器在等待MPI_Send
而不是MPI_Recv
,它会改变什么吗?
你想要这样的[OpenMPI和OpenMP示例](https://www.rc.colorado.edu/crcdocs/openmpi-openmp)吗? – bacchus
@baccus - 类似的东西,但是,比方说,我有一台机器,有10个节点,每个节点有4个核心 - 在9个节点上,我想运行4个mpi进程,10日我希望只运行一个MPI进程(通过openmp生成几个进程) – mgilson