Keep the non-blocking collective tags globally in sync.
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
Этот коммит содержится в:
родитель
c98e387a53
Коммит
77eaa5c8b8
@ -74,13 +74,20 @@ static int nbc_alltoallv_init(const void* sendbuf, const int *sendcounts, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
span = opal_datatype_span(&recvtype->super, count, &gap);
|
span = opal_datatype_span(&recvtype->super, count, &gap);
|
||||||
|
/**
|
||||||
|
* If this process has no data to send or receive it can bail out early,
|
||||||
|
* but it needs to increase the nonblocking tag to stay in sycn with the
|
||||||
|
* rest of the processses.
|
||||||
|
*/
|
||||||
if (OPAL_UNLIKELY(0 == span)) {
|
if (OPAL_UNLIKELY(0 == span)) {
|
||||||
|
ompi_coll_base_nbc_reserve_tags(comm, 1);
|
||||||
return nbc_get_noop_request(persistent, request);
|
return nbc_get_noop_request(persistent, request);
|
||||||
}
|
}
|
||||||
tmpbuf = malloc(span);
|
tmpbuf = malloc(span);
|
||||||
if (OPAL_UNLIKELY(NULL == tmpbuf)) {
|
if (OPAL_UNLIKELY(NULL == tmpbuf)) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
sendcounts = recvcounts;
|
sendcounts = recvcounts;
|
||||||
sdispls = rdispls;
|
sdispls = rdispls;
|
||||||
} else {
|
} else {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user