【问题标题】:MPI Recv data getting corruptedMPI Recv 数据损坏
【发布时间】:2015-01-30 12:23:50
【问题描述】:

我正在尝试使用 MPI 发送一个号码,但数据已损坏。我不知道为什么。我的代码是:

import mpi.*;

public class test {
    public static void main(String[] args) throws MPIException{
        MPI.Init(args);
        int rank = MPI.COMM_WORLD.Rank();
        int clusterSize = MPI.COMM_WORLD.Size();
        int[] send = new int[1];
        int[] recv = new int[1];
        send[0] = 12387394;
        if(rank == 0) {
            MPI.COMM_WORLD.Send(send[0], 0, 1, MPI.INT, 1, 17);
        } else {
            MPI.COMM_WORLD.Recv(recv, 0, 1, MPI.INT, 0, 17);
            System.out.println(recv[0]);
        }
        MPI.Finalize();

    }
}

我得到的输出是1。这是为什么呢?

【问题讨论】:

    标签: java mpi openmpi


    【解决方案1】:

    您不应该将整个数组作为缓冲区而不是第一个值传递吗?我的意思是:

    MPI.COMM_WORLD.Send(send, 0, 1, MPI.INT, 1, 17);
    

    【讨论】:

      猜你喜欢
      • 2014-08-27
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 2019-11-21
      • 2014-03-17
      • 2011-07-26
      相关资源
      最近更新 更多