2014-10-08 4 views
0

Я новичок в 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, чтобы передать часть массива на каждый процессор.

+1

Показать нам код. Какие ошибки вы получаете? – rlegendi

ответ

0

Чтобы уточнить мой первоначальный вопрос, я не знаю, как отправить срез массива (сложного типа данных, объектов, строк и т. Д.) На каждый вычислительный элемент с использованием MPI java.

Спасибо.

Смежные вопросы