отправка массива с использованием MPI приводит к ошибке и усечению - PullRequest
2 голосов
/ 20 апреля 2019

Я пытаюсь отправить массив через MPI:

if( proc_num == 0 ){
  int serializedData[ 69];
  // fill array
  MPI_Send(serializedData, 69, MPI_INT, 1, 1, MPI_COMM_WORLD);
}else{
 int serializedData[ 69];
  MPI_Recv(serializedData, 69, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
}

Однако, используя это, я получаю сообщение об ошибке:

* Произошла ошибка в MPI_Recv сообщается процессом [556924929,1] на коммуникаторе MPI_COMM_WORLD MPI_ERR_TRUNCATE: сообщение обрезано MPI_ERRORS_ARE_FATAL (процессы в этом коммуникаторе теперь прерываются, * и, возможно, ваша работа MPI) [warn] Epoll ADD (4) на fd 0 не удалось.Старые события были 0;изменение чтения было 0 (нет);изменение записи было 1 (добавить): Неверный дескриптор файла

Однако, когда я отправляю только 20 элементов, это работает (но отправка 50, например, приводит к той же ошибке).

Что я делаю неправильно?Почему это происходит?

Спасибо за помощь!

...