This relates to my previous question about MPI_Start and MPI_Startall
having started all my receive commands using this code:
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]);
iResult++;
MPI_Start(&mastersRequests[iSlave]);
}
i planned to test each handle, and use the data received by that recv
command (and then subsequentl the others that finish). howewer, when i run
the following code, in which i do the test:
while (iResult == 0)
{
MPI_Test(&(mastersRequests[iSlave]), &iResult, &status[iSlave]);
iSlave++;
if (iSlave >= iSize)
{
iSlave = 1;
}
printf("%d %d %d\n", iResult, mastersRequests[iSlave],
status[iSlave].MPI_ERROR);
}
the printf statement indicates an MPI_ERR_REQUEST error. why? am i not
creating the requests/handles properly? is there something wrong with the
way i am testing for doneness of the recv commands? btw, iResult gets set to
1, indicating a recvs is done, but when i try and print out the received
message, i get back an empty string. so there is definetely an error
somewhere.
ps - does the www.mpi-forum.org website exist anymore? if not, where, apart
from the man pages, can iget detailed information about MPI commands. the
man pages point me to the mpi-forum website (and so does the lam-mpi
website, for me detailed information, but i cant seem to hit it.
ps - jeff or whomever answered my previous questions about pascal and mpi.
thanks for the help. i couldnt get the header conversion idea to work, so
now i am writing all the mpi stuff in c, and linking to .o file of the
pascal code i need to work with. so far so good.
thanks for the help
_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE*
http://join.msn.com/?page=features/junkmail
|