next up previous contents
Next: Message-Probing Protocol Up: Message Protocols Previous: Short-Message Protocol

Long-Message Protocol

For long messages, the first data packet is sent eagerly, with the IMPI_PK_DATASYNC packet type. When the destination process receives the packet, it sends a synchronization ACK packet back to the source. The source can then send all remaining data packets with the IMPI_PK_DATA packet type.

The pk_srqid field in the ACK packet must be set to the value of the pk_srqid field in the message packet. The sender must store the send request identifier in the outgoing packet. It receives it back in the ACK packet. This mechanism is used by the sender to locate the request that matches the ACK packet.

Likewise, the pk_drqid field in the data packets sent after the ACK packet is received (that is all data packets except the first one) must be set to the value of the pk_drqid field in the ACK packet. The receiver may use this field to store a handle to the MPI receive request in the ACK packet, and receive it back all following data packets. This avoids having the receiver search for the matching request for each remaining data packet.

Long messages generated by all MPI send calls are mapped onto the long-message protocol, independent of their blocking nature and synchronization requirements.


next up previous contents
Next: Message-Probing Protocol Up: Message Protocols Previous: Short-Message Protocol
IMPI Protocol ver 0.0
DRAFT March 22, 1999