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

How is RAM distributed among processes in MPI?

本文关键字:何分布 分布 之间 MPI 进程 RAM      更新时间:2023-10-16

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

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

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));