[mpich] MPICH primary repository branch, master, updated. v3.1.3-21-gf91a57d
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/f91a57d30ffba0fad02bb4b36b551e5fcf... commit f91a57d30ffba0fad02bb4b36b551e5fcf2a9f2c Author: Ken Raffenetti <[email protected]> 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 <[email protected]> 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/713eadd7d0278f780dcde3be7ca2189c54... commit 713eadd7d0278f780dcde3be7ca2189c545256c9 Author: Pavan Balaji <[email protected]> Date: Tue Oct 14 15:00:46 2014 -0500 Allow ROMIO to propagate library dependencies to MPICH. Signed-off-by: Rob Latham <[email protected]> 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/ca75812b1d125d32a0b47d6b64f062065a... commit ca75812b1d125d32a0b47d6b64f062065ae5bb82 Author: Paul Coffman <[email protected]> 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 <[email protected]> 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/ec6af78bdd6e07c2346b48395fd3dc719b... commit ec6af78bdd6e07c2346b48395fd3dc719b81f428 Author: Paul Coffman <[email protected]> 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 <[email protected]> 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/ef09dabfbfcd545eded2510c59557c49ec... commit ef09dabfbfcd545eded2510c59557c49ec7b2594 Author: Paul Coffman <[email protected]> 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 <[email protected]> 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/803512476afbbb5bbfed01a7fb518a34cb... commit 803512476afbbb5bbfed01a7fb518a34cbb95e5c Author: Paul Coffman <[email protected]> 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 <[email protected]> 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
participants (1)
-
noreply@mpich.org