Атомность mpi_accumulate [open-mpi]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Атомность mpi_accumulate [open-mpi]

Сообщение Anonymous »

Я пытался настроить способ отправки данных между процессами из вектора (Naming It Syncer ).
Этот вектор содержит сообщение в этом формате: [destination_process, source_process, данные, смещение] .
здесь смещение является индексом в ARPE, в котором данные будут размещены в назначении. /> У всех процессов есть свои обновления, которые они хотят отправить в свой собственный Syncer .
Я вызываю синхронизацию метода (Vector & syncer) в конце импульса. Код выглядит так: < /p>

Код: Выделить всё

    MPI_Win_fence (0, arr) ;
log_message ("rma cycle has started ") ;

for (auto &sync_this:syncer) {

int from_process = sync_this[0] ;
int to_process = sync_this[1] ;
int local_offset = sync_this[2] ;
int value = sync_this[3] ;
log_message ("from process = " + to_string (from_process) + "to_process = " + to_string (to_process)+"offset = " + to_string(local_offset) + " " + to_string (value)) ;
// call accumulate from
int result = 0;
MPI_Accumulate (&value, 1, to_process, 1, 1, MPI_INT, MPI_SUM, arr) ;
log_message ("result of accumulation " + to_string (value) + " == " +to_string (result)) ;
}

MPI_Win_fence (0, arr) ;
MPI_Barrier (MPI_COMM_WORLD) ;
}
< /code>
Обновления происходят в соответствующих индексах, но значения очень велики.
Значение переменной < /code> имеет правильные значения. Это должно было сработать в этом случае. Что такое mpi_accumulate 
, как должно вести себя, и если mpi_accumulate не будет его сокращать, то что такое альтернатива?
Большое спасибо за ваше время.

Подробнее здесь: https://stackoverflow.com/questions/776 ... teopen-mpi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»