据我所知,MPI无法做到这一点.MPI的目的是实现从一个进程到另一个进程的消息传递(因此名称 - 消息传递接口).如果你想使用共享内存,最好的办法就是使用像OpenMP这样的东西(我认为它可能在那里?),至少gcc/gfortran以及其他许多编译器都支持它.你可以使用线程...但是,最终,这些都没有扩展到像MPI这样的1000个处理器.根据你正在做的事情,你可以尝试MPI的集体操作 - 正如你所提到的,hist存储了一个直方图,所以你可能只想要你正在使用的所有组合的总和,而你的计算实际上并不依赖于HIST.MPI可以在更改后为您汇总所有数组...
以此为例
http://mpi.deino.net/mpi_functions/MPI_Allreduce.html
(你想要的操作可能是MPI_SUM)