gpt4 book ai didi

c - MPI_Send 发送矩阵的正确方法

转载 作者:太空狗 更新时间:2023-10-29 15:35:06 27 4
gpt4 key购买 nike

我必须在我的程序中使用 MPI API 发送/接收矩阵。为了发送矩阵,我使用了以下语法:

MPI_Send(matrix, ...)  <- USE THIS

MPI_Send(&matrix, ...)

MPI_Send(&matrix[0][0], ...)

Similar to the last one, but untested: MPI_Send(&matrix[0],....

我在不同的例子中看到了上面的用法,我想知道它们之间是否有区别或者是否有任何一个会导致大数据错误?我问是因为我听过一个懂一点 HPC 的人说只使用第一种语法(上面列举的)但是我没有时间问他为什么而且我在互联网上找不到原因,或者我不知道去哪里找。以上所有工作都是在我编译的小例子中找到的,但我的处理器上只有 2 个内核,所以我可能看不到问题。

据我所知,这些示例指向相同的内存地址,所以会出现什么问题?是否存在与 MPI API 相关的问题?

提前致谢

最佳答案

您问题中的所有矩阵引用 point to the same address , 尽管有不同的类型。 MPI_Send 采用 void*,因此无论如何它都会丢失类型。所以所有调用实际上是等价的。

如果矩阵的类型从二维数组变成指针,那么以上就不再等价了。例如,如果矩阵是 int*,则只有第一个和最后一个选项会编译并生成所需的地址。因此,我也建议使用第一个选项 - 如果矩阵类型发生变化,它会更安全。

关于c - MPI_Send 发送矩阵的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33456108/

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