Я копаюсь в документации, но все еще не могу понять, как использовать другие типы данных, кроме массива int
s. Есть ли способ отправить данные, кроме массива целых? Приведенный ниже код работает нормально, если я использую массив только целых чисел. Я попытался заменить MPI.INT
на MPI.OBJECT
, но это не сработало. Вот пример отправки некоторых данных всем процессам, кроме root.
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];
, которая также не будет работать