使用MPI发送数组会导致错误并被截断

时间:2019-04-20 18:25:11

标签: c++ c mpi openmpi

我正在尝试通过MPI发送数组:

if( proc_num == 0 ){
  int serializedData[ 69];
  // fill array
  MPI_Send(serializedData, 69, MPI_INT, 1, 1, MPI_COMM_WORLD);
}else{
 int serializedData[ 69];
  MPI_Recv(serializedData, 69, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
}

但是使用此方法,我会收到错误消息:

  

*进程报告的MPI_Recv 中发生错误   [556924929,1]关于MPI_COMM_WORLD通信工具   MPI_ERR_TRUNCATE:消息被截断 MPI_ERRORS_ARE_FATAL   (此沟通工具中的进程现在将中止,* ,然后   可能是您的MPI作业)[警告] fd 0上的Epoll ADD(4)失败。旧   事件为0;读取更改为0(无);写更改为1(添加):错误   文件描述符

但是,当我仅发送例如20个元素时,它就可以工作(但是发送50个元素会导致相同的错误)。

我在做什么错?为什么会这样呢?

感谢帮助!

0 个答案:

没有答案