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 |