1
1

If we only have one app participating in a all_gather (which lies under a modex as well), then we need to ensure that the returned buffer has the proper packing order so it can be unpacked correctly.

This commit was SVN r22815.
Этот коммит содержится в:
Ralph Castain 2010-03-10 19:22:06 +00:00
родитель ea30a1482d
Коммит 7105207b1c

Просмотреть файл

@ -155,6 +155,7 @@ int orte_grpcomm_base_app_allgather(orte_process_name_t *recipient,
int rc;
opal_buffer_t buf;
orte_rml_tag_t tag=ORTE_RML_TAG_ALLGATHER;
int32_t nc;
OPAL_OUTPUT_VERBOSE((1, orte_grpcomm_base.output,
"%s grpcomm:app entering allgather",
@ -163,6 +164,12 @@ int orte_grpcomm_base_app_allgather(orte_process_name_t *recipient,
/* if I am alone, just copy data across and return */
if (1 == orte_process_info.num_procs) {
/* since we won't be going through the daemon collective,
* we have to pack num_contributors=1 so that
* things will unpack correctly
*/
nc = 1;
opal_dss.pack(rbuf, &nc, 1, OPAL_INT32);
opal_dss.copy_payload(rbuf, sbuf);
return ORTE_SUCCESS;
}