From 1b7215a5f5632694f1f8003c253871e84a853c22 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Thu, 25 Jul 2024 00:00:01 -0400 Subject: [PATCH 1/2] Identify requests from the same instance. The prior version identified requests from the same communicator instead of instance. Signed-off-by: George Bosilca --- ompi/request/request.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ompi/request/request.c b/ompi/request/request.c index 9e736e66a9e..843d9ae95f3 100644 --- a/ompi/request/request.c +++ b/ompi/request/request.c @@ -253,7 +253,8 @@ int ompi_request_persistent_noop_create(ompi_request_t** request) bool ompi_request_check_same_instance(ompi_request_t** requests, int count) { - ompi_request_t *req, *base = NULL; + ompi_instance_t* base_instance = NULL; + ompi_request_t *req; for(int idx = 0; idx < count; idx++ ) { req = requests[idx]; @@ -262,11 +263,11 @@ bool ompi_request_check_same_instance(ompi_request_t** requests, /* Only PML requests have support for MPI sessions */ if(OMPI_REQUEST_PML != req->req_type) continue; - if(NULL == base) { - base = req; + if(NULL == base_instance) { + base_instance = req->req_mpi_object.comm->instance; continue; } - if(base->req_mpi_object.comm != req->req_mpi_object.comm) + if(base_instance != req->req_mpi_object.comm->instance) return false; } return true; From 0a0249117ef22c6a8df6a69a2d4a78236002a1f0 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Thu, 25 Jul 2024 00:01:10 -0400 Subject: [PATCH 2/2] Fix the access to the rcount array. Somehow this has been missed during the MPI_Count upgrade of the collective API. Signed-off-by: George Bosilca --- ompi/mca/coll/base/coll_base_alltoallv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ompi/mca/coll/base/coll_base_alltoallv.c b/ompi/mca/coll/base/coll_base_alltoallv.c index 30258f68fe4..37bc22acf5c 100644 --- a/ompi/mca/coll/base/coll_base_alltoallv.c +++ b/ompi/mca/coll/base/coll_base_alltoallv.c @@ -92,7 +92,7 @@ mca_coll_base_alltoallv_intra_basic_inplace(const void *rbuf, ompi_count_array_t if( OPAL_UNLIKELY(opal_local_arch != ompi_proc->super.proc_convertor->master->remote_arch)) { packed_size = opal_datatype_compute_remote_size(&rdtype->super, ompi_proc->super.proc_convertor->master->remote_sizes); - packed_size *= rcounts[right]; + packed_size *= ompi_count_array_get(rcounts, right); max_size = packed_size > max_size ? packed_size : max_size; } }