Next: Receiving Messages Prev: Semantics Contents Up: Semantics Contents

Sending Messages

Table 4.1 summarizes the information that is transmitted for a put request. The first column provides a descriptive name for the information, the second column provides the type for this information, the third column identifies the source of the information, and the fourth column provides additional notes. Most information that is transmitted is obtained directly from the PtlPut operation. Notice that the handle for the memory descriptor used in the PtlPut operation is transmitted even though this value cannot be interpreted by the target. A value of anything other than PTL_MD_NONE, is interpreted as a request for an acknowledgement.

Table 4.1: Information Passed in a Put Request

Information Type PtlPut arg Notes
operation int indicates a put request
initiator ptl_process_id_t local information
user ptl_uid_t local information
job id ptl_jid_t local information (if supported)
target ptl_process_id_t target_id
portal index ptl_pt_index_t pt_index
cookie ptl_ac_index_t ac_index
match bits ptl_match_bits_t match_bits
offset ptl_size_t remote_offset
memory desc ptl_handle_md_t md_handle no ack if PTL_MD_NONE
length ptl_size_t md_handle length member
data bytes md_handle start and length members

Table 4.2 summarizes the information transmitted in an acknowledgement. Most of the information is simply echoed from the put request. Notice that the initiator and target are obtained directly from the put request, but are swapped in generating the acknowledgement. The only new piece of information in the acknowledgement is the manipulated length which is determined as the put request is satisfied.

Table 4.2: Information Passed in an Acknowledgement

Information Type Put Information Notes
operation int indicates an acknowledgement
initiator ptl_process_id_t target
target ptl_process_id_t initiator
portal index ptl_pt_index_t portal index echo
match bits ptl_match_bits_t match_bits echo
offset ptl_size_t offset echo
memory desc ptl_handle_md_t memory desc echo
requested length ptl_size_t echo
manipulated length ptl_size_t length obtained from the operation

Table 4.3 summarizes the information that is transmitted for a get request. Like the information transmitted in a put request, most of the information transmitted in a get request is obtained directly from the PtlGet operation. Unlike put requests, get requests do not include the event queue handle. In this case, the reply is generated whenever the operation succeeds and the memory descriptor must not be unlinked until the reply is received. As such, there is no advantage to explicitly sending the event queue handle.

Table 4.3: Information Passed in a Get Request

Information Type PtlGet argument Notes
operation int indicates a get operation
initiator ptl_process_id_t local information
user ptl_uid_t local information
job id ptl_jid_t local information (if supported)
target ptl_process_id_t target_id
portal index ptl_pt_index_t pt_index
cookie ptl_ac_index_t ac_entry
match bits ptl_match_bits_t match_bits
offset ptl_size_t remote_offset
memory desc ptl_handle_md_t md_handle
length ptl_size_t md_handle length member

Table 4.4 summarizes the information transmitted in a reply. Like an acknowledgement, most of the information is simply echoed from the get request. The initiator and target are obtained directly from the get request, but are swapped in generating the acknowledgement. The only new information in the acknowledgement are the manipulated length and the data, which are determined as the get request is satisfied.

Table 4.4: Information Passed in a Reply

Information Type Put Information Notes
operation int indicates an acknowledgement
initiator ptl_process_id_t target
target ptl_process_id_t initiator
portal index ptl_pt_index_t portal index echo
match bits ptl_match_bits_t match_bits echo
offset ptl_size_t offset echo
memory desc ptl_handle_md_t memory desc echo
requested length ptl_size_t length echo
manipulated length ptl_size_t obtained from the operation
data bytes obtained from the operation

Next: Receiving Messages Prev: Semantics Contents Up: Semantics Contents