【问题标题】:MPI INT Arrays in CC 中的 MPI INT 数组
【发布时间】:2018-05-23 09:11:52
【问题描述】:

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

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

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 的测试,其中主从 3 个从属接收向量。然而结果是垃圾。

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

【问题讨论】:

标签: c arrays mpi


【解决方案1】:

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

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

最初我在 if id==masterif id==slave 块内有这些初始化函数,它们将 id 设置为 0、1、2 等。

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

【讨论】:

    猜你喜欢
    • 2012-10-12
    • 2017-04-26
    • 2016-09-16
    • 2018-06-05
    • 2012-10-04
    • 2012-12-29
    • 2014-04-18
    • 2021-07-19
    • 2017-05-20
    相关资源
    最近更新 更多