I attempted to use the MPI_Startall command as follows:
for (iSlave = 1; iSlave < iSize; iSlave++)
{
// build handles for the receipt of results
MPI_Recv_init(&recvResult[iSlave],
1,
MPI_ResultType,
iSlave,
RESULTTAG,
MPI_COMM_WORLD,
&mastersRequests[iSlave]);
}
MPI_Startall(iSize - 1, mastersRequests);
the code compiled fine, but when i tried to run the code(using mpirun -c 2
<program name>, i got the following error:
MPI process rank 0 (n0, p4837) caught a SIGSEGV in MPI_Startall.
Rank (0, MPI_COMM_WORLD): Call stack within LAM:
Rank (0, MPI_COMM_WORLD): - MPI_Startall()
Rank (0, MPI_COMM_WORLD): - main()
-----------------------------------------------------------------------------
One of the processes started by mpirun has exited with a nonzero exit
code. This typically indicates 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 4837 failed on node n0 with exit status 1.
-----------------------------------------------------------------------------
i tried changing the startall command and moving it up into the loop so it
looks like so:
MPI_Start(&mastersRequests[iSlave]);
and that seemed to work (at least i got passed this point). what gives?
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?page=features/junkmail
|