gpt4 book ai didi

c - C 中的 MPI INT 数组

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

我正在创建一个程序,该程序使用 MPI 来确定大型矩阵的点积。我无法确定如何通过 MPI_Send 和 MPI_Recv 发送和接收数据。

我有一个大小为nrc 的数组int* vector 我想发送和接收

MPI_Send(vector,nrc,MPI_INT,MASTER,123,MPI_COMM_WORLD); 
MPI_Recv(vector, nrc, MPI_INT, i, 123, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

我正在运行 nrc=4 的测试,其中 Master 正在接收来自 3 个 slave 的 vector 。然而结果是垃圾。

vector [ 255992420  255992420  255992420  255992420 ]
vector [ -260683762 -260683762 -260683762 -260683762 ]
vector [ 2018561464 2018561464 2018561464 2018561464 ]

最佳答案

我发现了问题,它不在 send recv 函数中,它们按预期工作。

问题出在填充矩阵的矩阵初始化函数中。

最初我在 if id==masterif id==slave block 中有这些初始化函数,它们将 id 设置为 0,1,2 等.

当我将它们移出主从 block 时,id 不再是 0,1,2,它是垃圾。所以当使用 id 初始化矩阵时,它们也变成了垃圾。

关于c - C 中的 MPI INT 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47725942/

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