我是并行编程的新手,我想用 java 来做。我想知道是否可以通过 MPI 发送和接收更复杂的对象。我正在使用 MPJ 快递。但是,每当我想发送一个对象时,我都会得到一个 ClassCastException。
MPI.Init(args);
myrank = MPI.COMM_WORLD.Rank();
numprocs = MPI.COMM_WORLD.Size();
Vector<CustomClass> chr = new Vector<CustomClass>();
if (myrank == 0 ) { //am I the master?
for (int i = 1; i < numprocs; i++) {
MPI.COMM_WORLD.Send(chr, 0, chr.size(), MPI.OBJECT, i, 99); //Here's where the
exception occurs
}
}
else {
Vector<BasicRegion> chr_received = new Vector<BasicRegion>();
MPI.COMM_WORLD.Recv(chr_received, 0, 1, MPI.OBJECT, 0, 99 );
}
例外:
mpi.MPIException: mpi.MPIException: java.lang.ClassCastException: java.util.Vector 无法转换为 [Ljava.lang.Object;
所以我的问题是: - 是否可以使用 MPJ Express 发送/接收更复杂的对象?- 如果是这样:我做错了什么?