Hi friend, i am newbie of lam-mpi. And i am codding the game of life with parallelization by using lammpi api. However i have a problem. Each process has to run 10 iteration. And it sends top line or bottom line to upper or lower process with MPI_Send method. The below code does not work. The performMatris function works well, there is no problem. The problem is encountered on MPI_Recv method. If i put "//" head of MPI_Recv there would not be error. But if i run this code exactly, i will get this error:
One of the processes started by mpirun has exited with a nonzero exit code. This typically indicate!
s that the process finished in error. If your process did not finish in error, be sure to include a "return 0" or "exit(0)" in your C code before exiting the application.
PID 15952 failed on node n0 (127.0.0.1) due to signal 11.
What can i do, how can i fix it? Can you suggest anything ? thanx
=================================================================================================================================== for(i=1; i<10; i++) { //MPI_Send(k,getCount(i),MPI_INT,i,tag,MPI_COMM_WORLD); //printf("> ONCE %d. proc girdi ....n",myProcId); if ( myProcId != (size-1) ) { MPI_Send(myMatrix[iRowsOfProces!
s-2],iFileColNo,MPI_INT,myProcId+1,150,MPI_COMM_WORLD); } if ( myProcId != 0 ) { !
MPI_Send(myMatrix[1],iFileColNo,MPI_INT,myProcId-1,151,MPI_COMM_WORLD); } !
if ( myProcId != 0
) { MPI_Recv(myTempArray3,iFileColNo,MPI_INT,myProcId-1,150,MPI_COMM_WORLD,&status); } !
if ( myProcId != (size-1) ) { MPI_Recv(myTempArray2,iFileColNo,MPI_INT,myProcId+1,151,MPI_COMM_WORLD,&status); }
performMatris(myMatrix,iSatirAralik,myProcId,size,iRowsOfProcess,iFileColNo); //printf(" I am here %d. process %d. loopn",myProcId,i); }
Windows Live Messenger ile kendini!
zi anưnda ifade edin! Windows Live Messenger! |