On Jan 26, 2009, at 4:04 PM, Hartzman, Leslie D (MS) wrote:
Process 'A'
---------------------------------------------
Initialize requests to MPI_REQUEST_NULL
for i=0; i < n; i++
{
if (rank == 0)
{
initialize 'command' structure
(set cmd = 'step 1')
set destination to Process 'B'
mpi_issend(command, sizeof(struct command),
dest, ...);
}
send data to be processed by Process 'B'
mpi_issend(data, numWords, MPI_FLOAT, ...);
if (rank == 0)
{
mpi_wait(command request for 'step 1' command);
sending new command, set cmd = 'step 2',
mpi_issend(...)
}
send data to be processed by Process 'B'
mpi_issend(data, ...);
mpi_wait(command request for ‘step n’);
}
I'm not quite sure I understand this pseudocode; it looks like there's
a missing MPI_Wait in there...? Specifically, I count 3 MPI_ISSEND's
and 2 MPI_WAIT's.
--
Jeff Squyres
Cisco Systems