来自等级1和标签3的消息被截断;已收到31050432字节,但缓冲区大小为30844800

时间:2018-09-13 11:10:27

标签: mpi

我的MPI代码有问题。两个进程(cpus)不会发生此问题,但是当我有3个以上级别(cpus)时会出现。我认为标签可能是造成此错误的原因,因为在计算期间,但相应的接收具有与发送相同的标签。

会是什么问题?给定多个等级(cpus)与同一个标记冲突?

我的代码的一部分:

if (id != 0)
{
    MPI_Isend(liquidx[1][0], 1, new_dtype, id - 1, 0, MPI_COMM_WORLD,
        &req[0]);
    MPI_Isend(liquidy[1][0], 1, new_dtype, id - 1, 1, MPI_COMM_WORLD,
        &req[1]);
}
if (id != p - 1)
{
    MPI_Irecv(liquidx[memory_size - 1][0], 1, new_dtype, id + 1, 0,
        MPI_COMM_WORLD, &req[0]);
    MPI_Irecv(liquidy[memory_size - 1][0], 1, new_dtype, id + 1, 1,
        MPI_COMM_WORLD, &req[1]);
}
MPI_Waitall(2, req, status);

错误:

  

[0]致命错误PMPI_Gather中的致命错误:消息被截断,错误   堆栈:PMPI_Gather(583).......................:   MPI_Gather(sbuf = 0x00000000084463C0,scount = 150,dtype = USER,   rbuf = 0x000000000FB9C080,rcount = 150,dtype = USER,root = 0,   MPI_COMM_WORLD)失败MPIR_Gather(210).......................:   MPIDI_CH3U_Post_data_receive_found(193):来自等级1和标签3的消息   截短接收到31050432字节,但缓冲区大小为30844800

0 个答案:

没有答案