Error with MPI_Send
Error with MPI_Send
我正在编写 mpi 的 c++ 包装器。
我在 mpi 中遇到了一个奇怪的错误:在我的情况下,该错误仅在消息足够大时才出现,运行时错误如下:
Fatal error in MPI_Send: Other MPI error, error stack:
MPI_Send(173)...........................: MPI_Send(buf=0x7fffbd3db7f8, count=1, MPI_DOUBLE, dest=1, tag=2014, comm=0x84000004) failed
PIDI_CH3I_Progress(461)................:
MPID_nem_handle_pkt(636)................:
MPIDI_CH3_PktHandler_EagerShortSend(308): Failed to allocate memory for an unexpected message. 261895 unexpected messages queued.
我只使用MPI_Send(没有请求MPI_Isend),此错误如何发生(死锁会触发吗)?
问题似乎是您没有将匹配的调用发布到MPI_Recv
。当它说意外消息队列中有 200000 条消息时,这意味着您已经发送了 200000 条消息,而从未告诉接收进程在它们到达时将它们放在哪里。
无论您的邮件大小如何,这最终都会发生。如果您的消息更大(由于内存不足),它只会更快地发生。
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- MPI突然停止了对多个核心的操作
- 设置 Visual Studio for MPI: 找不到标识符错误
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何使用 MPI 的远程内存访问 (RMA) 功能并行化数据聚合?
- 重载 MPI 中的运算符 ()
- MPI:检查是否有任何进程已终止
- 当对套接字 send() 的同步调用由于连接另一端丢失而被阻止时,如何恢复?
- 使用 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 的功能
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- MPI 集合通信中的指针分配
- 可以使用 MPI::Send 发送的最大数据量