gpt4 book ai didi

memory - 调用 MPI_Init() 后内存会发生什么情况?

转载 作者:行者123 更新时间:2023-12-02 09:18:52 25 4
gpt4 key购买 nike

假设我有一些如下所示的代码:

#include "mpi.h"

int main( int argc, char** argv )
{
int my_array[10];
//fill the array with some data

MPI_Init(&argc, &argv);

// Some code here

MPI_Finalize();
return 0;
}

每个 MPI 实例都会获得自己的 my_array 副本吗?只排名0?他们都没有吗?在 MPI_Init 之前添加任何代码是一种不好的做法吗?

最佳答案

“当我调用MPI_Init时内存会发生什么”的简短答案是:什么也没有。

MPI_Init 在调用进程中初始化 MPI 库。不多不少。在 MPI_Init 调用时,所有 MPI 进程都已经存在,只是它们还不知道彼此并且无法通信。

每个 MPI 进程都是一个单独执行的程序。进程之间不共享内存,通过传递消息进行通信。

事实上,调用MPI_Init的进程甚至可以是完全不同的程序,只要它们传递的消息匹配即可。这就是 MPMD 模型。

关于memory - 调用 MPI_Init() 后内存会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com