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
|