MPI_Send и MPI_Recv - PullRequest
       48

MPI_Send и MPI_Recv

1 голос
/ 06 сентября 2011

Я установил MPICH2 на два компьютера («suaddell» и «o01») с операционной системой Windows 7. Я использую VC ++ Express Edition 2008 для компиляции. Все хорошо. Я могу запускать простые приложения MPI "Hello World" на обоих хостах. Но когда я пытаюсь запустить простые приложения MPI_Send и MPI_Recv, программа не заканчивается, она зависает. Я вижу, что он работает без конца на моем компьютере и удаленном хосте с помощью Resource Monitor. Если я нажимаю "Ctrl + C", он заканчивается и отображается под сообщением, он делает вид, что все работает нормально.


Команда mpiexec и сообщение после Ctrl + C

C:\>mpiexec.exe -hosts 2 suaddell o01 -noprompt mesajlasma.exe
mpiexec aborting job...
Received Message :Hello World
_OK!_

job aborted:
rank: node: exit code[: error message]
0: suaddell: 123: mpiexec aborting job
1: o01: 123

код здесь:

#include "stdafx.h"
#include "string.h"
#include "mpi.h"

int main(int argc, char* argv[])
{

int  nTasks, rank;
char mesaj[20];
MPI_Status status;

MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&nTasks);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);

if(rank == 1)
{
strcpy_s(mesaj, "Hello World");
if (MPI_SUCCESS==MPI_Send(mesaj, strlen(mesaj)+1, MPI_CHAR, 0, 7, MPI_COMM_WORLD)) printf("_OK!_\n");
}

if(rank == 0)
{
MPI_Recv(mesaj, 20, MPI_CHAR, 1, 7, MPI_COMM_WORLD, &status);
printf("Received Message :%s\n", mesaj);
}

MPI_Finalize();

return 0;
}

Когда программа запускается с использованием "-verbose", я вижу, что система ждет здесь, пока не нажмет "Ctrl + C":

. (Здесь много строк) .

......command written to left: "cmd=result src=0 dest=2 tag=5 cmd_tag=0 ctx_key=
0 result=SUCCESS "
......\smpd_free_command
.......\smpd_init_command
......./smpd_init_command
....../smpd_free_command
...../smpd_state_writing_cmd
..../smpd_handle_op_write
....sock_waiting for the next event.
....\SMPDU_Sock_wait

(это последняя строка, пока я не нажму "Ctrl + C")

Как я могу решить эту проблему.

Заранее спасибо

1 Ответ

2 голосов
/ 06 сентября 2011

Обновление до последней версии MPICH2, версия 1.4.1p1.

...