Ошибка с MPI_Send

0

Я пишу обертку c++ mpi.

Я встретил странную ошибку с mpi: в моем случае ошибка появилась только тогда, когда сообщение достаточно велико, ошибка времени выполнения ниже:

Fatal error in MPI_Send: Other MPI error, error stack:
MPI_Send(173)...........................: MPI_Send(buf=0x7fffbd3db7f8, count=1,     MPI_DOUBLE, dest=1, tag=2014, comm=0x84000004) failed
PIDI_CH3I_Progress(461)................: 
MPID_nem_handle_pkt(636)................: 
MPIDI_CH3_PktHandler_EagerShortSend(308): Failed to allocate memory for an unexpected message. 261895 unexpected messages queued.

Я использую MPI_Send (без MPI_Isend с запросом) и как эта ошибка может произойти (может ли это затормозить это срабатывание)?

  • 0
    Какую реализацию MPI вы используете?
  • 0
    @ zimbra314 MPICH2
Теги:
mpi

1 ответ

2

Проблема заключается в том, что вы не отправляете соответствующие вызовы MPI_Recv. Когда он говорит, что у вас 200000 сообщений в очереди неожиданных сообщений, это означает, что вы отправили 200000 сообщений, не сообщая о процессе приема, куда их можно отправить, когда они прибудут.

Это в конечном итоге произойдет независимо от размера вашего сообщения. Это происходит скорее, если ваши сообщения больше (из-за нехватки памяти).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню