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 0d61a1032115c1a380d967c46d9e39c1bfcda2e1 (commit) from 5477bbdcae1101334d78e12cbde1ac295c83811d (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/0d61a1032115c1a380d967c46d9e39c1bf... commit 0d61a1032115c1a380d967c46d9e39c1bfcda2e1 Author: Sameh Sharkawi <[email protected]> Date: Thu Mar 13 10:00:38 2014 -0400 OOM running broadcast stress test w/ COLLECTIVE_SELECTION=yes Insert a barrier for every 16 calls to async collectives (ibm) D192641 Signed-off-by: Michael Blocksome <[email protected]> diff --git a/src/mpid/pamid/src/coll/allgather/mpido_allgather.c b/src/mpid/pamid/src/coll/allgather/mpido_allgather.c index a65181c..517f20e 100644 --- a/src/mpid/pamid/src/coll/allgather/mpido_allgather.c +++ b/src/mpid/pamid/src/coll/allgather/mpido_allgather.c @@ -611,6 +611,12 @@ MPIDO_Allgather_simple(const void *sendbuf, volatile unsigned allgather_active = 1; const int rank = comm_ptr->rank; const int size = comm_ptr->local_size; +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif const pami_metadata_t *my_md; @@ -642,6 +648,14 @@ MPIDO_Allgather_simple(const void *sendbuf, recvbuf, recvcount, recvtype, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c b/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c index b8ab1ef..1663f8f 100644 --- a/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c +++ b/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c @@ -648,6 +648,12 @@ MPIDO_Allgatherv_simple(const void *sendbuf, const int rank = comm_ptr->rank; const int size = comm_ptr->local_size; const struct MPIDI_Comm* const mpid = &(comm_ptr->mpid); +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif int recvcontinuous=0; size_t totalrecvcount=0; @@ -683,6 +689,14 @@ MPIDO_Allgatherv_simple(const void *sendbuf, recvbuf, recvcounts, displs, recvtype, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c b/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c index 354fe71..1e45d58 100644 --- a/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c +++ b/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c @@ -250,6 +250,12 @@ int MPIDO_Alltoall_simple(const void *sendbuf, int tmp; const int rank = comm_ptr->rank; const int size = comm_ptr->local_size; +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (comm_ptr->rank == 0); +#endif const struct MPIDI_Comm* const mpid = &(comm_ptr->mpid); @@ -269,6 +275,14 @@ int MPIDO_Alltoall_simple(const void *sendbuf, recvbuf, recvcount, recvtype, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c b/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c index 76b45a5..adf3157 100644 --- a/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c +++ b/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c @@ -429,6 +429,12 @@ int MPIDO_Alltoallv_simple(const void *sendbuf, int tmp; const int rank = comm_ptr->rank; const int size = comm_ptr->local_size; +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif int sendcontinuous , recvcontinuous=0; size_t recv_size=0, send_size=0; @@ -467,6 +473,14 @@ int MPIDO_Alltoallv_simple(const void *sendbuf, recvbuf, recvcounts, recvdispls, recvtype, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/bcast/mpido_bcast.c b/src/mpid/pamid/src/coll/bcast/mpido_bcast.c index 05d0c60..0c2730e 100644 --- a/src/mpid/pamid/src/coll/bcast/mpido_bcast.c +++ b/src/mpid/pamid/src/coll/bcast/mpido_bcast.c @@ -288,6 +288,12 @@ int MPIDO_Bcast_simple(void *buffer, MPIDI_Post_coll_t bcast_post; const struct MPIDI_Comm* const mpid = &(comm_ptr->mpid); const int rank = comm_ptr->rank; +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif /* Must calculate data_size based on count=1 in case it's total size is > integer */ int data_size_one; @@ -303,6 +309,14 @@ int MPIDO_Bcast_simple(void *buffer, { return MPIR_Bcast_intra(buffer, count, datatype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/gather/mpido_gather.c b/src/mpid/pamid/src/coll/gather/mpido_gather.c index 7ff1807..7e508d8 100644 --- a/src/mpid/pamid/src/coll/gather/mpido_gather.c +++ b/src/mpid/pamid/src/coll/gather/mpido_gather.c @@ -402,6 +402,12 @@ int MPIDO_Gather_simple(const void *sendbuf, const int rank = comm_ptr->rank; const int size = comm_ptr->local_size; const struct MPIDI_Comm* const mpid = &(comm_ptr->mpid); +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif if(sendbuf != MPI_IN_PLACE) { @@ -419,6 +425,14 @@ int MPIDO_Gather_simple(const void *sendbuf, recvbuf, recvcount, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } @@ -453,6 +467,15 @@ int MPIDO_Gather_simple(const void *sendbuf, recvbuf, recvcount, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } + } } } diff --git a/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c b/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c index d7b9764..0c2556a 100644 --- a/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c +++ b/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c @@ -270,6 +270,12 @@ int MPIDO_Gatherv_simple(const void *sendbuf, volatile unsigned gatherv_active = 1; const int rank = comm_ptr->rank; const int size = comm_ptr->local_size; +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif const struct MPIDI_Comm* const mpid = &(comm_ptr->mpid); int recvok=PAMI_SUCCESS, recvcontinuous=0; @@ -290,6 +296,14 @@ int MPIDO_Gatherv_simple(const void *sendbuf, recvbuf, recvcounts, displs, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } @@ -324,6 +338,14 @@ int MPIDO_Gatherv_simple(const void *sendbuf, recvbuf, recvcounts, displs, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } } diff --git a/src/mpid/pamid/src/coll/reduce/mpido_reduce.c b/src/mpid/pamid/src/coll/reduce/mpido_reduce.c index 5a53b48..9a0055e 100644 --- a/src/mpid/pamid/src/coll/reduce/mpido_reduce.c +++ b/src/mpid/pamid/src/coll/reduce/mpido_reduce.c @@ -270,6 +270,13 @@ int MPIDO_Reduce_simple(const void *sendbuf, pami_type_t pdt; int rc; int alg_selected = 0; + const int rank = comm_ptr->rank; +#if ASSERT_LEVEL==0 + /* We can't afford the tracing in ndebug/performance libraries */ + const unsigned verbose = 0; +#else + const unsigned verbose = (MPIDI_Process.verbose >= MPIDI_VERBOSE_DETAILS_ALL) && (rank == 0); +#endif const struct MPIDI_Comm* const mpid = &(comm_ptr->mpid); @@ -284,6 +291,14 @@ int MPIDO_Reduce_simple(const void *sendbuf, { return MPIR_Reduce(sendbuf, recvbuf, count, datatype, op, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + if(unlikely(verbose)) + fprintf(stderr,"Query barrier required for %s\n", advisor_algorithms[0].metadata->name); + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/scan/mpido_scan.c b/src/mpid/pamid/src/coll/scan/mpido_scan.c index 429b355..a6452dc 100644 --- a/src/mpid/pamid/src/coll/scan/mpido_scan.c +++ b/src/mpid/pamid/src/coll/scan/mpido_scan.c @@ -299,6 +299,12 @@ int MPIDO_Doscan_simple(const void *sendbuf, void *recvbuf, else return MPIR_Scan(sendbuf, recvbuf, count, datatype, op, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } diff --git a/src/mpid/pamid/src/coll/scatter/mpido_scatter.c b/src/mpid/pamid/src/coll/scatter/mpido_scatter.c index 58d371f..b96dc92 100644 --- a/src/mpid/pamid/src/coll/scatter/mpido_scatter.c +++ b/src/mpid/pamid/src/coll/scatter/mpido_scatter.c @@ -367,6 +367,12 @@ int MPIDO_Scatter_simple(const void *sendbuf, recvbuf, recvcount, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } } } } @@ -387,6 +393,13 @@ int MPIDO_Scatter_simple(const void *sendbuf, recvbuf, recvcount, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } + } } } diff --git a/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c b/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c index 26b8056..ae0a0aa 100644 --- a/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c +++ b/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c @@ -492,6 +492,13 @@ int MPIDO_Scatterv_simple(const void *sendbuf, recvbuf, recvcount, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } + } } } @@ -512,6 +519,13 @@ int MPIDO_Scatterv_simple(const void *sendbuf, recvbuf, recvcount, recvtype, root, comm_ptr, mpierrno); } + else if(advisor_algorithms[0].metadata && advisor_algorithms[0].metadata->check_correct.values.asyncflowctl && !(--(comm_ptr->mpid.num_requests))) + { + comm_ptr->mpid.num_requests = MPIDI_Process.optimized.num_requests; + int tmpmpierrno; + MPIDO_Barrier(comm_ptr, &tmpmpierrno); + } + } } } diff --git a/src/mpid/pamid/src/mpid_init.c b/src/mpid/pamid/src/mpid_init.c index 6abb609..f95dc0e 100644 --- a/src/mpid/pamid/src/mpid_init.c +++ b/src/mpid/pamid/src/mpid_init.c @@ -125,7 +125,7 @@ MPIDI_Process_t MPIDI_Process = { .subcomms = 1, .select_colls = 2, .memory = 0, - .num_requests = 1, + .num_requests = 16, }, .mpir_nbc = 1, ----------------------------------------------------------------------- Summary of changes: .../pamid/src/coll/allgather/mpido_allgather.c | 14 ++++++++++++ .../pamid/src/coll/allgatherv/mpido_allgatherv.c | 14 ++++++++++++ src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c | 14 ++++++++++++ .../pamid/src/coll/alltoallv/mpido_alltoallv.c | 14 ++++++++++++ src/mpid/pamid/src/coll/bcast/mpido_bcast.c | 14 ++++++++++++ src/mpid/pamid/src/coll/gather/mpido_gather.c | 23 ++++++++++++++++++++ src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c | 22 +++++++++++++++++++ src/mpid/pamid/src/coll/reduce/mpido_reduce.c | 15 +++++++++++++ src/mpid/pamid/src/coll/scan/mpido_scan.c | 6 +++++ src/mpid/pamid/src/coll/scatter/mpido_scatter.c | 13 +++++++++++ src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c | 14 ++++++++++++ src/mpid/pamid/src/mpid_init.c | 2 +- 12 files changed, 164 insertions(+), 1 deletions(-) hooks/post-receive -- MPICH primary repository