RAM 在 MPI 中的进程之间如何分布?
How is RAM distributed among processes in MPI?
我是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));
相关文章:
- 改变或缩放两个正态分布以具有特定的相关系数
- 如何创建没有特定定义的随机分布?uniform_int_distribution是从其他类继承的吗?
- C++随机数分布传递给函数
- 从转换后的容器元素创建离散分布
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- 在编译时选择随机数分布
- C++:创建1000次唯一的随机分布,在任何分布中都没有重复的数字
- c++在循环中定义一组概率分布
- 分布MPI散点错误的数字
- 无法按 lambda 中的值捕获随机分布和生成器?
- 离散分布不对称
- 如何在C++中将函数值更改为表中的值(伽马分布)?
- 在运行时为随机分布类成员设置最小和最大边界?
- 逆生存函数与正态分布的PPF(ICDF)?
- 多态性与C++11分布
- 从提升二项分布中抽取随机数
- 在 c++ 中创建具有指数分布的随机数(可视化标准)
- 将值均匀分布到数组中
- C++11 与不同类型的随机分布共享相同的函数
- 我可以在不指定数字分布的情况下使用随机生成器吗?