[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.3-201-ga07efda

Service Account noreply at mpich.org
Thu Nov 13 13:54:18 CST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  a07efda56188170545cdcc33c41ff3548ab0ceb0 (commit)
      from  198d29175ff3ac40c96f22edde01fa247c405567 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/a07efda56188170545cdcc33c41ff3548ab0ceb0

commit a07efda56188170545cdcc33c41ff3548ab0ceb0
Author: Devendar Bureddy <devendar at mellanox.com>
Date:   Thu Nov 13 21:31:13 2014 +0200

     Fix hcoll setup issues

diff --git a/src/mpid/common/hcoll/hcoll_dtypes.h b/src/mpid/common/hcoll/hcoll_dtypes.h
index 65ef6e3..6c86ab6 100644
--- a/src/mpid/common/hcoll/hcoll_dtypes.h
+++ b/src/mpid/common/hcoll/hcoll_dtypes.h
@@ -5,6 +5,7 @@
 static dte_data_representation_t mpi_dtype_2_dte_dtype(MPI_Datatype datatype)
 {
     switch (datatype) {
+    case MPI_CHAR:
     case MPI_SIGNED_CHAR:
         return DTE_BYTE;
     case MPI_SHORT:
diff --git a/src/mpid/common/hcoll/hcoll_init.c b/src/mpid/common/hcoll/hcoll_init.c
index 2bae31d..613a832 100644
--- a/src/mpid/common/hcoll/hcoll_init.c
+++ b/src/mpid/common/hcoll/hcoll_init.c
@@ -1,6 +1,7 @@
 #include "hcoll.h"
 
 static int hcoll_initialized = 0;
+static int hcoll_comm_world_initialized = 0;
 int hcoll_enable = 1;
 int hcoll_enable_barrier = 1;
 int hcoll_enable_bcast = 1;
@@ -22,10 +23,6 @@ int hcoll_destroy(void *param ATTRIBUTE((unused)))
 {
     if (1 == hcoll_initialized) {
         hcoll_finalize();
-        if (MPI_KEYVAL_INVALID != hcoll_comm_attr_keyval) {
-            MPIR_Comm_free_keyval_impl(hcoll_comm_attr_keyval);
-            hcoll_comm_attr_keyval = MPI_KEYVAL_INVALID;
-        }
     }
     hcoll_initialized = 0;
     return 0;
@@ -130,6 +127,13 @@ int hcoll_comm_create(MPID_Comm * comm_ptr, void *param)
     if (0 == hcoll_enable) {
         goto fn_exit;
     }
+    if (MPIR_Process.comm_world == comm_ptr) {
+        hcoll_comm_world_initialized = 1;
+    }
+    if (!hcoll_comm_world_initialized) {
+        comm_ptr->hcoll_priv.is_hcoll_init = 0;
+        goto fn_exit;
+    }
     num_ranks = comm_ptr->local_size;
     if ((MPID_INTRACOMM != comm_ptr->comm_kind) || (2 > num_ranks)) {
         comm_ptr->hcoll_priv.is_hcoll_init = 0;
@@ -185,6 +189,14 @@ int hcoll_comm_destroy(MPID_Comm * comm_ptr, void *param)
         goto fn_exit;
     }
     mpi_errno = MPI_SUCCESS;
+
+    if (comm_ptr == MPIR_Process.comm_world) {
+        if (MPI_KEYVAL_INVALID != hcoll_comm_attr_keyval) {
+            MPIR_Comm_free_keyval_impl(hcoll_comm_attr_keyval);
+            hcoll_comm_attr_keyval = MPI_KEYVAL_INVALID;
+        }
+    }
+
     context_destroyed = 0;
     if ((NULL != comm_ptr) && (0 != comm_ptr->hcoll_priv.is_hcoll_init)) {
         if (NULL != comm_ptr->coll_fns) {
@@ -193,7 +205,6 @@ int hcoll_comm_destroy(MPID_Comm * comm_ptr, void *param)
         comm_ptr->coll_fns = comm_ptr->hcoll_priv.hcoll_origin_coll_fns;
         hcoll_destroy_context(comm_ptr->hcoll_priv.hcoll_context,
                               (rte_grp_handle_t) comm_ptr, &context_destroyed);
-        MPIU_Assert(context_destroyed);
         comm_ptr->hcoll_priv.is_hcoll_init = 0;
     }
   fn_exit:

-----------------------------------------------------------------------

Summary of changes:
 src/mpid/common/hcoll/hcoll_dtypes.h |    1 +
 src/mpid/common/hcoll/hcoll_init.c   |   21 ++++++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list