1

我正在研究文档,但我仍然不知道如何使用除ints 数组之外的其他数据类型。除了整数数组之外,还有其他方法可以发送数据吗?如果我只使用整数数组,则以下代码可以正常工作。我尝试替换MPI.INT为,MPI.OBJECT但效果不佳。这是一个将一些数据发送到除 root 之外的所有 proc 的示例。

import mpi.*;

public class MPIHello {

    static class Node {
        private static int data;
        public Node(int d) {
            this.data = d;
        }
        public static int getData() {
            return data;
        }
    };

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MPI.Init(args);

        int me = MPI.COMM_WORLD.Rank();
        int size = MPI.COMM_WORLD.Size();

        Node[] Buf = new Node[1];
        if (me == 0)
        {
            for (int i=1; i<size; i++)
            {
                Buf[0] = new Node(13);
                MPI.COMM_WORLD.Send(Buf, 0, Buf.length, MPI.INT, i, 0);
            }

        }
        else
        {
            MPI.COMM_WORLD.Recv(Buf, 0, Buf.length, MPI.INT, 0, 0);

            System.out.println(Buf[0].getData());
        }

        MPI.Finalize();
    }

}

1)尝试发送Object[] arr = new Object[1];,但效果不佳

4

0 回答 0