[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.3-21-gf91a57d

Service Account noreply at mpich.org
Fri Oct 17 11:24:16 CDT 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  f91a57d30ffba0fad02bb4b36b551e5fcf2a9f2c (commit)
       via  713eadd7d0278f780dcde3be7ca2189c545256c9 (commit)
       via  ca75812b1d125d32a0b47d6b64f062065ae5bb82 (commit)
       via  ec6af78bdd6e07c2346b48395fd3dc719b81f428 (commit)
       via  ef09dabfbfcd545eded2510c59557c49ec7b2594 (commit)
       via  803512476afbbb5bbfed01a7fb518a34cbb95e5c (commit)
      from  1a4265d0710eddc5cdcdd6a1599d41e9a1d9203b (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/f91a57d30ffba0fad02bb4b36b551e5fcf2a9f2c

commit f91a57d30ffba0fad02bb4b36b551e5fcf2a9f2c
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date:   Thu Oct 16 09:47:38 2014 -0500

    disable interlibrary dependencies on BGQ
    
    The default linker behavior on BGQ makes interlibrary dependencies
    tricky to support correctly. Just disable them to make our lives easier.
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpid/pamid/subconfigure.m4 b/src/mpid/pamid/subconfigure.m4
index d9f2bb7..f67f86e 100644
--- a/src/mpid/pamid/subconfigure.m4
+++ b/src/mpid/pamid/subconfigure.m4
@@ -228,6 +228,13 @@ if test "${pamid_platform}" = "BGQ" ; then
   dnl
   dnl Only the 'cpi', 'mpivars', and 'mpichversion' executables have this problem.
   MPID_LIBTOOL_STATIC_FLAG="-all-static"
+
+  dnl Another bgq special case. The default linker behavior is to use static versions
+  dnl of libraries. This makes supporting interlibrary dependencies difficult. Just
+  dnl disable them to make our lives easier.
+  if test "$INTERLIB_DEPS" = "yes"; then
+	INTERLIB_DEPS="no"
+  fi
 fi
 
 if test "${pamid_platform}" = "PE" ; then

http://git.mpich.org/mpich.git/commitdiff/713eadd7d0278f780dcde3be7ca2189c545256c9

commit 713eadd7d0278f780dcde3be7ca2189c545256c9
Author: Pavan Balaji <balaji at anl.gov>
Date:   Tue Oct 14 15:00:46 2014 -0500

    Allow ROMIO to propagate library dependencies to MPICH.
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/configure.ac b/configure.ac
index c7e4592..5c3d291 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5977,7 +5977,7 @@ AC_DEFINE(HAVE_MPICHCONF,1,[Define so that we can test whether the mpichconf.h f
 # add the LDFLAGS/LIBS we got so far to WRAPPERs
 if test "$INTERLIB_DEPS" = "no" ; then
    WRAPPER_LDFLAGS="$WRAPPER_LDFLAGS $LDFLAGS"
-   WRAPPER_LIBS="$WRAPPER_LIBS $EXTERNAL_LIBS $ROMIO_EXTERNAL_LIBS"
+   WRAPPER_LIBS="$WRAPPER_LIBS $EXTERNAL_LIBS"
 fi
 
 if test "$USE_PMI2_API" = "yes" ; then
diff --git a/src/mpi/romio/localdefs.in b/src/mpi/romio/localdefs.in
index 11edc9e..bf057d1 100644
--- a/src/mpi/romio/localdefs.in
+++ b/src/mpi/romio/localdefs.in
@@ -1,4 +1,7 @@
 #! /bin/sh
-ROMIO_EXTERNAL_LIBS="@LIBS@"
+
+# Append ROMIO library dependencies to the global list
+EXTERNAL_LIBS="$EXTERNAL_LIBS @LIBS@"
+
 MPI_OFFSET_TYPE="@MPI_OFFSET_TYPE@"
 FORTRAN_MPI_OFFSET="@FORTRAN_MPI_OFFSET@"

http://git.mpich.org/mpich.git/commitdiff/ca75812b1d125d32a0b47d6b64f062065ae5bb82

commit ca75812b1d125d32a0b47d6b64f062065ae5bb82
Author: Paul Coffman <pkcoff at us.ibm.com>
Date:   Tue Oct 7 21:11:27 2014 -0500

    MPIDI_Coll_comm_create unsetting default collops for inTERcomms
    
    There are no pami optimized collectives available for inTERcomms
    so when MPIDI_Coll_comm_create is called it checks to see
    if the comm is an inTRAcomm and if not just returns,
    however it was doing the new malloc for comm->coll_fns
    before the if-check which was unsetting the MPICH defaults.
    The solution is to move the malloc after the inTRAcomm
    if-check.
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpid/pamid/src/comm/mpid_comm.c b/src/mpid/pamid/src/comm/mpid_comm.c
index 173c352..5359da8 100644
--- a/src/mpid/pamid/src/comm/mpid_comm.c
+++ b/src/mpid/pamid/src/comm/mpid_comm.c
@@ -227,12 +227,12 @@ void MPIDI_Coll_comm_create(MPID_Comm *comm)
   if (!MPIDI_Process.optimized.collectives)
     return;
 
-  comm->coll_fns = MPIU_Calloc0(1, MPID_Collops);
-  MPID_assert(comm->coll_fns != NULL);
-
   if(comm->comm_kind != MPID_INTRACOMM) return;
   /* Create a geometry */
 
+  comm->coll_fns = MPIU_Calloc0(1, MPID_Collops);
+  MPID_assert(comm->coll_fns != NULL);
+
    if(comm->mpid.geometry != MPIDI_Process.world_geometry)
    {
       if(unlikely(MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_0 && comm->rank == 0))

http://git.mpich.org/mpich.git/commitdiff/ec6af78bdd6e07c2346b48395fd3dc719b81f428

commit ec6af78bdd6e07c2346b48395fd3dc719b81f428
Author: Paul Coffman <pkcoff at us.ibm.com>
Date:   Tue Oct 7 21:05:26 2014 -0500

    MPIDO_Ibarrier optimized pami code incorrect
    
    The optimized pami code currently within MPIDO_Ibarrier
    is incorrect - for now do not run it, instead just
    kick back to MPICH if mpir_nbc is set, otherwise
    call the blocking MPIR_Barrier().
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpid/pamid/src/coll/barrier/mpido_ibarrier.c b/src/mpid/pamid/src/coll/barrier/mpido_ibarrier.c
index 10607c7..fd33193 100644
--- a/src/mpid/pamid/src/coll/barrier/mpido_ibarrier.c
+++ b/src/mpid/pamid/src/coll/barrier/mpido_ibarrier.c
@@ -34,8 +34,11 @@ int MPIDO_Ibarrier(MPID_Comm *comm_ptr, MPID_Request **request)
 {
    TRACE_ERR("Entering MPIDO_Ibarrier\n");
 
-   if(unlikely(comm_ptr->mpid.user_selected_type[PAMI_XFER_BARRIER] == MPID_COLL_USE_MPICH))
-   {
+     /*
+      * There is actually no current pami optimization for this
+      * so just kick it back to MPICH if mpir_nbc is set, otherwise
+      * call the blocking MPIR_Barrier().
+      */
      if (MPIDI_Process.mpir_nbc != 0)
        return 0;
 
@@ -56,61 +59,4 @@ int MPIDO_Ibarrier(MPID_Comm *comm_ptr, MPID_Request **request)
       MPIDI_Request_complete_norelease_inline(mpid_request);
 
       return rc;
-   }
-
-   MPIDI_Post_coll_t barrier_post;
-   pami_xfer_t barrier;
-   pami_algorithm_t my_barrier;
-   pami_metadata_t *my_barrier_md;
-   int queryreq = 0;
-
-   MPID_Request * mpid_request = MPID_Request_create_inline();
-   mpid_request->kind = MPID_COLL_REQUEST;
-   *request = mpid_request;
-
-   barrier.cb_done = cb_ibarrier;
-   barrier.cookie = (void *)mpid_request;
-
-   if(comm_ptr->mpid.user_selected_type[PAMI_XFER_BARRIER] == MPID_COLL_OPTIMIZED)
-   {
-      TRACE_ERR("Optimized barrier (%s) was pre-selected\n", comm_ptr->mpid.opt_protocol_md[PAMI_XFER_BARRIER][0].name);
-      my_barrier = comm_ptr->mpid.opt_protocol[PAMI_XFER_BARRIER][0];
-      my_barrier_md = &comm_ptr->mpid.opt_protocol_md[PAMI_XFER_BARRIER][0];
-      queryreq = comm_ptr->mpid.must_query[PAMI_XFER_BARRIER][0];
-   }
-   else
-   {
-      TRACE_ERR("Barrier (%s) was specified by user\n", comm_ptr->mpid.user_metadata[PAMI_XFER_BARRIER].name);
-      my_barrier = comm_ptr->mpid.user_selected[PAMI_XFER_BARRIER];
-      my_barrier_md = &comm_ptr->mpid.user_metadata[PAMI_XFER_BARRIER];
-      queryreq = comm_ptr->mpid.user_selected_type[PAMI_XFER_BARRIER];
-   }
-
-   barrier.algorithm = my_barrier;
-   /* There is no support for query-required barrier protocols here */
-   MPID_assert_always(queryreq != MPID_COLL_ALWAYS_QUERY);
-   MPID_assert_always(queryreq != MPID_COLL_CHECK_FN_REQUIRED);
-
-   /* TODO Name needs fixed somehow */
-   MPIDI_Update_last_algorithm(comm_ptr, my_barrier_md->name);
-   if(unlikely(MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL && comm_ptr->rank == 0))
-   {
-      unsigned long long int threadID;
-      MPIU_Thread_id_t tid;
-      MPIU_Thread_self(&tid);
-      threadID = (unsigned long long int)tid;
-      fprintf(stderr,"<%llx> Using protocol %s for barrier on %u\n",
-              threadID,
-              my_barrier_md->name,
-              (unsigned) comm_ptr->context_id);
-   }
-   TRACE_ERR("%s barrier\n", MPIDI_Process.context_post.active>0?"posting":"invoking");
-   MPIDI_Context_post(MPIDI_Context[0], &barrier_post.state,
-                      MPIDI_Pami_post_wrapper, (void *)&barrier);
-   TRACE_ERR("barrier %s rc: %d\n", MPIDI_Process.context_post.active>0?"posted":"invoked", rc);
-
-   MPID_Progress_wait_inline(1);
-
-   TRACE_ERR("exiting mpido_ibarrier\n");
-   return 0;
 }

http://git.mpich.org/mpich.git/commitdiff/ef09dabfbfcd545eded2510c59557c49ec7b2594

commit ef09dabfbfcd545eded2510c59557c49ec7b2594
Author: Paul Coffman <pkcoff at us.ibm.com>
Date:   Tue Oct 7 20:51:16 2014 -0500

    Disable MPIDI_Init_collsel_extension call on BGQ
    
    At the end of MPIDI_PAMI_context_init the MPIDI_Init_collsel_extension
    is called to enable the dynamic optimized collective advisor.  This
    is not supported on BGQ so ifdef out the call.
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpid/pamid/src/mpid_init.c b/src/mpid/pamid/src/mpid_init.c
index 51ccd9b..064f085 100644
--- a/src/mpid/pamid/src/mpid_init.c
+++ b/src/mpid/pamid/src/mpid_init.c
@@ -810,8 +810,12 @@ MPIDI_PAMI_context_init(int* threading, int *size)
   /* Get collective selection advisor and cache it */
   /* --------------------------------------------- */
   /* Context is created, i.e. collective selection extension is initialized in PAMI. Now I can get the
-     advisor if I am not in TUNE mode. If in TUNE mode, I can init collsel and generate the table */
+     advisor if I am not in TUNE mode. If in TUNE mode, I can init collsel and generate the table.
+     This is not supported on BGQ.
+  */
+#ifndef __BGQ_
   MPIDI_Init_collsel_extension();
+#endif
 
 #if (MPIDI_STATISTICS || MPIDI_PRINTENV)
   MPIDI_open_pe_extension();

http://git.mpich.org/mpich.git/commitdiff/803512476afbbb5bbfed01a7fb518a34cbb95e5c

commit 803512476afbbb5bbfed01a7fb518a34cbb95e5c
Author: Paul Coffman <pkcoff at us.ibm.com>
Date:   Tue Oct 7 20:35:59 2014 -0500

    Remove Blue Gene/Q specific MPID_VCR_GET_LPIDS
    
    Since Blue Gene/Q does not support dynamic tasking there was only 1
    element in the MPID_VCR_t data structure so a shortcut was taken
    to avoid a malloc and free of a new list of pami_task_t in a form
    the pami geometry creation was expecting.  However it seems an
    array of structures with 1 pami_task_t element in it is not exactly the same
    in memory as an array of pami_task_t  themselves so the pami
    geometry creation was failing.  The fix is to simply do what
    all other platforms do and malloc a separate list of pami_task_t.
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpid/pamid/include/mpidi_macros.h b/src/mpid/pamid/include/mpidi_macros.h
index b8a1b45..5c59753 100644
--- a/src/mpid/pamid/include/mpidi_macros.h
+++ b/src/mpid/pamid/include/mpidi_macros.h
@@ -133,14 +133,6 @@ _data_sz_out)                                                   \
   vcr[index]->taskid;                           \
 })
 
-#ifdef __BGQ__
-/* BGQ just shares the MPICH vcr/tasklist.
-   This relies on the VCR being a simple task list which is asserted
-   in static_assertions() in mpid_init.c */
-#define MPID_VCR_GET_LPIDS(comm, taskids) taskids =  &((*comm->vcr)->taskid);
-#define MPID_VCR_FREE_LPIDS(taskids) 
-#else
-/* non-BGQ mallocs and copies the MPICH vcr/tasklist */
 #define MPID_VCR_GET_LPIDS(comm, taskids)                      \
 ({                                                             \
   int i;                                                       \
@@ -151,8 +143,6 @@ _data_sz_out)                                                   \
 })
 #define MPID_VCR_FREE_LPIDS(taskids) MPIU_Free(taskids)
 
-#endif
-
 #define MPID_GPID_Get(comm_ptr, rank, gpid)             \
 ({                                                      \
   gpid[1] = MPID_VCR_GET_LPID(comm_ptr->vcr, rank);     \

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

Summary of changes:
 configure.ac                                     |    2 +-
 src/mpi/romio/localdefs.in                       |    5 ++-
 src/mpid/pamid/include/mpidi_macros.h            |   10 ----
 src/mpid/pamid/src/coll/barrier/mpido_ibarrier.c |   64 ++--------------------
 src/mpid/pamid/src/comm/mpid_comm.c              |    6 +-
 src/mpid/pamid/src/mpid_init.c                   |    6 ++-
 src/mpid/pamid/subconfigure.m4                   |    7 +++
 7 files changed, 25 insertions(+), 75 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list