Patent ID: 6978312

Claim:
A method to transfer data from a sending application to a receiving application in a computer environment, the method comprising the steps of: if the receiving application posts a receive buffer exceeding a threshold size when posting a send for a pre-selected number of initial data blocks: transferring subsequent data having sizes greater than the threshold size using direct memory access read operations: detecting if the receiving application posts the receive buffer prior to posting the send; if the receiving application posts the receive buffer prior to posting the send: if the receiving application posts a send buffer having a size below the threshold size and one of data and Remote Direct Memory Access (RDMA) Read information has not been received, sending data and a RDMA receive advertisement in a message; detecting if the receiving application posts the receive buffer after posting the send: if the receiving application posts the receive buffer after posting the send: copying data to a send buffer having sufficient space at a beginning of the send buffer to put a receive advertisement in a message's header when a small send happens; starting a timer; putting the receive advertisement in the message's header if the receiving application posts a receive buffer exceeding the threshold size before the timer expires; and sending the message.