gpt4 book ai didi

c - 共享内存的 MPI_Comm_Size 值

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:18 25 4
gpt4 key购买 nike

我对 MPI 如何分配内存以在不同进程之间共享使用的理解是,您需要在 MPI_Init 之前初始化它们。

typedef struct Car {
// struct
} Car;

int main
(int argc, char *argv[])
{
// Shared variables
int size, rank;
Car cars[20];

MPI_Init(&argc, &argv);
MPI_Comm_Size(MPI_COMM_WORLD, &size);
MPI_Comm_Rank(MPI_COMM_WORLD, &rank);

// Node logic
}

这是正确的吗?如果是这样,如果我想要与节点数量一样多的汽车,我将如何处理这种情况?

最佳答案

MPI 不会为跨进程共享使用分配内存。在 MPI 中,每个进程负责自己的内存管理。如果您想在每个进程上分配一个大小为 size 的数组,那么您必须在调用 MPI_comm_size 之后分配内存。之后,您要么单独初始化每个进程的值,要么在一个进程上初始化它们并交换消息以更新其他进程。

但是你仍然没有共享内存。您在每个进程上都有一个同名数组,而您作为程序员正在编写代码以确保每个进程对该数组中的值具有相同的 View 。

关于c - 共享内存的 MPI_Comm_Size 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953433/

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