Synchronous sends


Up: Design Next: Freeing requests Previous: Receiving

Rather than support a completely separate operation, this will just use a transfer with a rendezvous semantic (rendezvous or get). In order to ensure that MPI_Ssend( .., cnt = 0, .. ) works, we must be careful about handling 0-length messages.

The rest of this applies to the the implementation of the rendezvous protocol.

Details: For heterogenity, there needs to be a agreed form of send_id that can be mapped back into the sender's request. An easy solution would be to use 8 bytes for the id, and transmit it without modification. Another is to use 4 bytes, and to convert longer address as in the Fortran version.

This is really a device choice, and we can limit the 8-byte version to the heterogeneous systems.

Details: A special form of the eager message, the ``within the packet'' form, is also used. There needs to be a get and channel version of this.



Up: Design Next: Freeing requests Previous: Receiving