[mpich] MPICH primary repository branch, master, updated. v3.2b4-21-gbc2d576
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 bc2d5761d6bb2b6e863cf6d3fd292e1db2c95072 (commit) via c489333460740ed23e7ff3a6464792581157110d (commit) from 9bdaca745b20664c33338811ab603a92c2f8416a (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/bc2d5761d6bb2b6e863cf6d3fd292e1db2... commit bc2d5761d6bb2b6e863cf6d3fd292e1db2c95072 Author: Ken Raffenetti <[email protected]> Date: Wed Jul 29 15:57:33 2015 -0500 tsuite: add iterations to threaded alltoall test Help consistently reproduce a bug related to canceling MPI_ANY_SOURCE receives from a matching netmod. Signed-off-by: Halim Amer <[email protected]> diff --git a/test/mpi/threads/pt2pt/alltoall.c b/test/mpi/threads/pt2pt/alltoall.c index b5c5676..bd33b29 100644 --- a/test/mpi/threads/pt2pt/alltoall.c +++ b/test/mpi/threads/pt2pt/alltoall.c @@ -17,6 +17,8 @@ #define DEBUG(_a) #endif +#define NUM_ITER 10000 + const int REQ_TAG = 111; const int ANS_TAG = 222; @@ -66,7 +68,7 @@ MTEST_THREAD_RETURN_TYPE listener(void *extra) int main(int argc, char *argv[]) { int buf = 0; - long int i; + long int i, j; MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided); @@ -78,22 +80,23 @@ int main(int argc, char *argv[]) MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); -#ifdef USE_BARRIER - MPI_Barrier(MPI_COMM_WORLD); -#endif + for (i = 0; i < NUM_ITER; i++) { + /* create listener thread */ + MTest_Start_thread(listener, NULL); - /* create listener thread */ - MTest_Start_thread(listener, NULL); + /* no more requests to send + * inform other in the group that we have finished */ + buf = -1; + for (j = 0; j < size; ++j) { + MPI_Send(&buf, 1, MPI_INT, j, REQ_TAG, MPI_COMM_WORLD); + } - /* no more requests to send - * inform other in the group that we have finished */ - buf = -1; - for (i = 0; i < size; ++i) { - MPI_Send(&buf, 1, MPI_INT, i, REQ_TAG, MPI_COMM_WORLD); - } + /* and wait for others to do the same */ + MTest_Join_threads(); - /* and wait for others to do the same */ - MTest_Join_threads(); + /* barrier to avoid deadlock */ + MPI_Barrier(MPI_COMM_WORLD); + } MPI_Finalize(); http://git.mpich.org/mpich.git/commitdiff/c489333460740ed23e7ff3a64647925811... commit c489333460740ed23e7ff3a6464792581157110d Author: Ken Raffenetti <[email protected]> Date: Wed Jul 29 15:17:19 2015 -0500 tsuite: whitespace cleanup Signed-off-by: Halim Amer <[email protected]> diff --git a/test/mpi/threads/pt2pt/alltoall.c b/test/mpi/threads/pt2pt/alltoall.c index 45200be..b5c5676 100644 --- a/test/mpi/threads/pt2pt/alltoall.c +++ b/test/mpi/threads/pt2pt/alltoall.c @@ -1,5 +1,5 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ -/* +/* * (C) 2006 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. */ @@ -7,7 +7,7 @@ #include "mpitest.h" #include "mpithreadtest.h" #ifdef HAVE_UNISTD_H - #include <unistd.h> +#include <unistd.h> #endif #include <stdio.h> @@ -23,70 +23,73 @@ const int ANS_TAG = 222; /* MPI environment description */ int rank, size, provided; -MTEST_THREAD_RETURN_TYPE listener(void*); +MTEST_THREAD_RETURN_TYPE listener(void *); -/* +/* LISTENER THREAD it waits for communication from any source (including calling thread) messages which it receives have tag REQ_TAG thread runs infinite loop which will stop only if every node in the - MPI_COMM_WORLD send request containing -1 + MPI_COMM_WORLD send request containing -1 */ -MTEST_THREAD_RETURN_TYPE listener(void*extra) { +MTEST_THREAD_RETURN_TYPE listener(void *extra) +{ int req; int source; MPI_Status stat; - int no_fins = 0; /* this must be equal to size to break loop below */ + int no_fins = 0; /* this must be equal to size to break loop below */ while (1) { - /* wait for request */ - MPI_Recv(&req, 1, MPI_INT, - MPI_ANY_SOURCE, REQ_TAG, MPI_COMM_WORLD, &stat); + /* wait for request */ + MPI_Recv(&req, 1, MPI_INT, MPI_ANY_SOURCE, REQ_TAG, MPI_COMM_WORLD, &stat); - /* get request source */ - source = stat.MPI_SOURCE; + /* get request source */ + source = stat.MPI_SOURCE; - DEBUG(printf( "node %d got request %d from %d\n", rank, req, source )); + DEBUG(printf("node %d got request %d from %d\n", rank, req, source)); + + if (req == -1) + ++no_fins; /* one more node finished requesting */ + + /* no more requests can arrive */ + if (no_fins == size) + break; - if (req == -1) ++no_fins; /* one more node finished requesting */ - - /* no more requests can arrive */ - if (no_fins == size) break; - } - DEBUG(printf( "node %d has stopped listener\n", rank )); + DEBUG(printf("node %d has stopped listener\n", rank)); return MTEST_THREAD_RETVAL_IGN; -} +} -int main(int argc, char* argv[]) { +int main(int argc, char *argv[]) +{ int buf = 0; long int i; - + MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided); if (provided != MPI_THREAD_MULTIPLE) { - printf( "This test requires MPI_THREAD_MULTIPLE\n" ); - MPI_Abort( MPI_COMM_WORLD, 1 ); + printf("This test requires MPI_THREAD_MULTIPLE\n"); + MPI_Abort(MPI_COMM_WORLD, 1); } MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); #ifdef USE_BARRIER - MPI_Barrier( MPI_COMM_WORLD ); + MPI_Barrier(MPI_COMM_WORLD); #endif /* create listener thread */ MTest_Start_thread(listener, NULL); /* no more requests to send - inform other in the group that we have finished */ + * inform other in the group that we have finished */ buf = -1; for (i = 0; i < size; ++i) { - MPI_Send(&buf, 1, MPI_INT, i, REQ_TAG, MPI_COMM_WORLD); + MPI_Send(&buf, 1, MPI_INT, i, REQ_TAG, MPI_COMM_WORLD); } /* and wait for others to do the same */ @@ -96,8 +99,8 @@ int main(int argc, char* argv[]) { /* This program works if it gets here */ if (rank == 0) { - printf( " No Errors\n" ); + printf(" No Errors\n"); } return 0; -} +} ----------------------------------------------------------------------- Summary of changes: test/mpi/threads/pt2pt/alltoall.c | 86 ++++++++++++++++++++----------------- 1 files changed, 46 insertions(+), 40 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org