Fix intercommunicator split (was triggered by MPICH/icsend test)
Этот коммит содержится в:
родитель
04fc4060db
Коммит
f2794740b3
@ -180,7 +180,7 @@ int ompi_comm_set_nb ( ompi_communicator_t **ncomm,
|
||||
if (0 < remote_size) {
|
||||
ompi_communicator_t *old_localcomm;
|
||||
|
||||
if (NULL == remote_group || &ompi_mpi_group_null.group == remote_group) {
|
||||
if (NULL == remote_group) {
|
||||
ret = ompi_group_incl(oldcomm->c_remote_group, remote_size,
|
||||
remote_ranks, &newcomm->c_remote_group);
|
||||
if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) {
|
||||
@ -432,7 +432,7 @@ int ompi_comm_split( ompi_communicator_t* comm, int color, int key,
|
||||
int rc=OMPI_SUCCESS;
|
||||
ompi_communicator_t *newcomp = NULL;
|
||||
int *lranks=NULL, *rranks=NULL;
|
||||
ompi_group_t * local_group=NULL, * remote_group=NULL;
|
||||
ompi_group_t * local_group=NULL;
|
||||
|
||||
ompi_comm_allgatherfct *allgatherfct=NULL;
|
||||
|
||||
@ -508,7 +508,6 @@ int ompi_comm_split( ompi_communicator_t* comm, int color, int key,
|
||||
/* Step 2: determine all the information for the remote group */
|
||||
/* --------------------------------------------------------- */
|
||||
if ( inter ) {
|
||||
remote_group = &ompi_mpi_group_null.group;
|
||||
rsize = comm->c_remote_group->grp_proc_count;
|
||||
rresults = (int *) malloc ( rsize * 2 * sizeof(int));
|
||||
if ( NULL == rresults ) {
|
||||
@ -592,7 +591,7 @@ int ompi_comm_split( ompi_communicator_t* comm, int color, int key,
|
||||
comm->error_handler,/* error handler */
|
||||
pass_on_topo,
|
||||
local_group, /* local group */
|
||||
remote_group); /* remote group */
|
||||
NULL); /* remote group */
|
||||
|
||||
if ( NULL == newcomp ) {
|
||||
rc = MPI_ERR_INTERN;
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user