c++ - 在 MPI 中,RAM 是如何在进程之间分配的?
问题描述
我是 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));
推荐阅读
- mysql - Spring Jpa Query:将多个参数传递给本机查询IN子句
- javascript - 如何在 React with Material-UI 中为未知孩子添加样式?
- google-api - 无法从谷歌驱动器下载文件
- r - 基于唯一 ID 的列到行
- java - 当您不是文件所有者时,Java File.setLastModified() 在 Linux 上失败
- ios - Swift为带有Realm依赖cpp解析错误的swift包生成xcodeproj
- javascript - 向数组js添加数据,当数组为空时,数据到n位置
- javascript - 如何正确使用 useEffect()?
- c# - Asmx Webservice方法接收一个soap xml输入字符串
- c# - 从另一个图像替换位图图像的彩色像素