我正在研究文档,但我仍然不知道如何使用除int
s 数组之外的其他数据类型。除了整数数组之外,还有其他方法可以发送数据吗?如果我只使用整数数组,则以下代码可以正常工作。我尝试替换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];
,但效果不佳