MPI中的进程之间如何分配RAM?

时间:2019-06-30 19:58:00

标签: c++ parallel-processing mpi ram

我是MPI的新手,我想问一下如何将内存分配给一台计算机上的所有进程,例如对于4GB RAM和2个进程,每个进程将占用2GB内存?

1 个答案:

答案 0 :(得分:0)

每个进程没有这样的限制。开发人员有责任让一个进程使用比其他进程更少的内存,例如通过基于进程等级进行分支。

if(rank == 0){
   vector<int> a(N);
   // do sth with a
}

现在只有一个进程消耗了一些内存,而其他进程则没有。

请记住,如果您不按每个流程进行分支,那么您将执行所有流程。例如,如果您使用M进程运行以下代码:

vector<int> a(N);

与单个处理程序相比,您将消耗M倍的内存。如果任务要在a上执行某些操作,则可以改用此方法:

vector<int> a(ceil((float)N/M));