Я новичок в mpi java, и я хочу построить производный тип данных, образованный n строками. Идея - отправить набор (полученных) данных каждому процессору. Я прочитал эти doc, https://www.open-mpi.org/papers/mpi-java-spec/mpiJava-spec.pdf, но я не могу создать действительный код.Производный тип данных в MPI java
Не могли бы вы дать мне обратную связь?
@rlegendi Я поставил некоторый код, но я полностью заблокирован, потому что я не из того, как действовать дальше.
class Data{
char[] data1;
char[] data2;
public Data(String d1, String d2)
{
this.data1 = d1.toCharArray();
this.data2 = d2.toCharArray();
}
}
class testMPI{
MPI.Init(argv);
int myRank = MPI.COMM_WORLD.getRank();
int nProcs = MPI.COMM_WORLD.getSize();
Data[] myData = new Data[4];
myData[0] = new Data("d1", "this is a test");
....
myData[3] = new Data("the third data", "this is another test");
// How to create teh derivated data to send a part of myData[] to several processes???
if (myRank == 0)
{
// calculate offset and chunk
// send myData[0] and [1] to proc#1 and myData[2] and [3] to proc#2
for (i=1 ; i < nProcs; i++)
MPI.COMM_WORLD.send(myData[offset], chunk, MPI.OBJECT??, i, 1);
}
else
MPI.COMM_WORLD.receive(recv, chunk, MPI.OBJECT??, i, 1);
}
Так что я не понимаю, как создать образовавшийся тип данные MPI, чтобы передать часть массива на каждый процессор.
Показать нам код. Какие ошибки вы получаете? – rlegendi