MPI_AllToAllV leads to MPI_ERR_TRUNCATE
MPI_AllToAllV leads to MPI_ERR_TRUNCATE
我有以下MPI_AllToAllv电话。所有变量都是向量
MPI_Alltoallv(
&elements[0],
&send_counts[0],
&send_displacements[0],
MPI_INT,
&receiving_vector[0],
&receiving_counts[0],
&receiving_displacements[0],
MPI_INT,
MPI_COMM_WORLD
);
以下是矢量的内容:
Elements : [6, 5, 4, ]
@ 0
Elements : [3, 2, 1, ]
@ 1
send_counts : [3, 0, ]
@ 1
send_displacements : [0, 3, ]
@ 1
receiving_vector : [0, 0, 0, ]
@ 0
elements : [6, 5, 4, ]
@ 0
send_counts : [0, 3, ]
@ 0
send_displacements : [0, 0, ]
@ 0
receiving_vector : [0, 0, 0, ]
@ 1
receiving_counts : [0, 3, ]
@ 1
receiving_displacements : [0, 0, ]
@ 1
[lawn-143-215-98-238:1182] *** An error occurred in MPI_Alltoallv
[lawn-143-215-98-238:1182] *** reported by process [2332229633,0]
[lawn-143-215-98-238:1182] *** on communicator MPI_COMM_WORLD
[lawn-143-215-98-238:1182] *** MPI_ERR_TRUNCATE: message truncated
[lawn-143-215-98-238:1182] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
[lawn-143-215-98-238:1182] *** and potentially your MPI job)
receiving_counts : [3, 0, ]
@ 0
receiving_displacements : [0, 0, ]
@ 0
我不明白为什么我会收到此错误。任何帮助将不胜感激。
我已经用谷歌搜索了这个错误,这可能是我的接收向量的大小,但我尝试了很多尺寸,但一无所获。
发送的数据量和接收的数据量不匹配。由于您只有两个等级,因此很容易绘制一个表格,说明谁发送了多少以及发送给谁。表格的每一行都是相应等级的send_counts[]
内容:
receiver
s | 0 | 1 |
e ---+---+---+
n 0 | 0 | 3 | (send_counts[] @ 0)
d ---+---+---+
e 1 | 3 | 0 | (send_counts[] @ 1)
r ---+---+---+
为了匹配发送的数据量,每个等级的接收计数应等于上表中与该等级对应的列向量:
receiving_counts[] @ 0
应该在你有[3, 0, ]
时{ 0, 3 }
;receiving_counts[] @ 1
应该在你有[0, 3, ]
时{ 3, 0 }
。
因此截断错误。
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- MPI突然停止了对多个核心的操作
- 设置 Visual Studio for MPI: 找不到标识符错误
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何使用 MPI 的远程内存访问 (RMA) 功能并行化数据聚合?
- 重载 MPI 中的运算符 ()
- MPI:检查是否有任何进程已终止
- 使用 pybind11 共享 MPI 通信器
- 使用 CMake,Microsoft MPI 和 Visual Studio 2017 找不到 mpi.h
- 在具有 MPI 的超立方体中广播
- 通过 mpi 发送 c++ 标准::矢量<bool>
- 使用 MPI 的 C++ 中的并行 for 循环
- 如何将 OpenMP 和 MPI 导入到大型 CLion CMake 项目中?
- 如何通过Boost.MPI发送2d Boost.MultiArray的子阵列?
- HDF5 构建了并行支持,但找不到特定于 mpi 的功能
- MPI 集合通信中的指针分配
- 仅特定内核计数上的 MPI 内存损坏
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- 从Visual Studio 2017运行MPI应用程序,每个进程在不同的cmd窗口中
- 在 MPI 中共享数组的一部分