From 0c7f2f3df46960fc7110d7b817a4cb2d0d806855 Mon Sep 17 00:00:00 2001 From: Hui Zhou Date: Sat, 18 Dec 2021 23:20:26 -0600 Subject: [PATCH] test: convert some coll tests to test function Convert all tests used in testlist.cvar to mpitests framework. --- test/mpi/coll/Makefile.am | 3 +- test/mpi/coll/allgather2.c | 15 ++++--- test/mpi/coll/allgather3.c | 15 ++++--- test/mpi/coll/allgatherv2.c | 15 ++++--- test/mpi/coll/allgatherv3.c | 15 ++++--- test/mpi/coll/allgatherv4.c | 29 +++++++------ test/mpi/coll/allred.c | 22 ++++------ test/mpi/coll/allred2.c | 16 ++++---- test/mpi/coll/allred3.c | 20 ++++----- test/mpi/coll/allred5.c | 17 ++++---- test/mpi/coll/allred6.c | 19 ++++----- test/mpi/coll/allredmany.c | 12 +++--- test/mpi/coll/alltoall1.c | 17 ++++---- test/mpi/coll/alltoallv.c | 14 +++---- test/mpi/coll/alltoallv0.c | 14 +++---- test/mpi/coll/alltoallw1.c | 27 ++++++------ test/mpi/coll/alltoallw2.c | 17 ++++---- test/mpi/coll/alltoallw_zeros.c | 16 +++----- test/mpi/coll/bcasttest.c | 23 ++++++----- test/mpi/coll/bcastzerotype.c | 13 +++--- test/mpi/coll/gather.c | 15 ++++--- test/mpi/coll/gather2.c | 15 ++++--- test/mpi/coll/gatherv.c | 13 +++--- test/mpi/coll/neighb_allgather.c | 16 ++++---- test/mpi/coll/neighb_allgatherv.c | 16 ++++---- test/mpi/coll/neighb_alltoall.c | 16 ++++---- test/mpi/coll/neighb_alltoallv.c | 16 ++++---- test/mpi/coll/neighb_alltoallw.c | 16 ++++---- test/mpi/coll/op_coll.c | 34 +++++++-------- test/mpi/coll/p_allgather.c | 15 ++++--- test/mpi/coll/p_allgatherv.c | 15 ++++--- test/mpi/coll/p_allred.c | 15 ++++--- test/mpi/coll/p_alltoall.c | 25 ++++------- test/mpi/coll/p_alltoallv.c | 14 +++---- test/mpi/coll/p_alltoallw.c | 27 ++++++------ test/mpi/coll/p_bcast.c | 20 ++++----- test/mpi/coll/p_bcast2.c | 19 ++++----- test/mpi/coll/p_gather.c | 15 ++++--- test/mpi/coll/p_gatherv.c | 13 +++--- test/mpi/coll/p_neighb_allgather.c | 16 ++++---- test/mpi/coll/p_neighb_allgatherv.c | 16 ++++---- test/mpi/coll/p_neighb_alltoall.c | 16 ++++---- test/mpi/coll/p_neighb_alltoallv.c | 16 ++++---- test/mpi/coll/p_neighb_alltoallw.c | 16 ++++---- test/mpi/coll/p_red.c | 26 ++++-------- test/mpi/coll/p_red_scat_block.c | 14 +++---- test/mpi/coll/p_redscat.c | 14 +++---- test/mpi/coll/p_scan.c | 17 ++++---- test/mpi/coll/p_scatter.c | 16 ++++---- test/mpi/coll/p_scatterv.c | 25 ++++++----- test/mpi/coll/red3.c | 18 ++++---- test/mpi/coll/red4.c | 18 ++++---- test/mpi/coll/red_scat_block.c | 14 +++---- test/mpi/coll/red_scat_block2.c | 24 +++++------ test/mpi/coll/redscat.c | 18 ++++---- test/mpi/coll/redscat2.c | 24 +++++------ test/mpi/coll/redscat3.c | 18 ++++---- test/mpi/coll/redscatblk3.c | 16 ++++---- test/mpi/coll/reduce.c | 16 ++++---- test/mpi/coll/scantst.c | 17 ++++---- test/mpi/coll/scatter2.c | 16 ++++---- test/mpi/coll/scatter3.c | 16 ++++---- test/mpi/coll/scattern.c | 16 ++++---- test/mpi/coll/scatterv.c | 26 ++++++------ test/mpi/maint/all_mpitests.txt | 64 +++++++++++++++++++++++++++++ 65 files changed, 576 insertions(+), 611 deletions(-) diff --git a/test/mpi/coll/Makefile.am b/test/mpi/coll/Makefile.am index cf93a951b2a..066c3108e47 100644 --- a/test/mpi/coll/Makefile.am +++ b/test/mpi/coll/Makefile.am @@ -4,6 +4,7 @@ ## include $(top_srcdir)/Makefile_single.mtest +include Makefile_mpitests.mk EXTRA_DIST = testlist.in @@ -143,8 +144,6 @@ noinst_PROGRAMS = \ allgather_gpu \ allgatherv_gpu -allgatherv4_LDADD = $(LDADD) -lm - bcast_CPPFLAGS = $(AM_CPPFLAGS) bcast_SOURCES = bcast.c diff --git a/test/mpi/coll/allgather2.c b/test/mpi/coll/allgather2.c index 78f20a2adf5..84ab0517548 100644 --- a/test/mpi/coll/allgather2.c +++ b/test/mpi/coll/allgather2.c @@ -3,14 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_allgather2 +int run(const char *arg); +#endif /* Tests Allgather on array of doubles. Use IN_PLACE */ -int main(int argc, char **argv) +int run(const char *arg) { double *vecout; MPI_Comm comm; @@ -18,8 +20,6 @@ int main(int argc, char **argv) int i, errs = 0; int rank, size; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -48,6 +48,5 @@ int main(int argc, char **argv) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allgather3.c b/test/mpi/coll/allgather3.c index c2f66277a8f..3c1b4fd7e0a 100644 --- a/test/mpi/coll/allgather3.c +++ b/test/mpi/coll/allgather3.c @@ -3,15 +3,17 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_allgather3 +int run(const char *arg); +#endif /* Tests Allgather on array of doubles. Same as allgather2 test * but without MPI_IN_PLACE. */ -int main(int argc, char **argv) +int run(const char *arg) { double *vecout, *invec; MPI_Comm comm; @@ -19,8 +21,6 @@ int main(int argc, char **argv) int i, errs = 0; int rank, size; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -54,6 +54,5 @@ int main(int argc, char **argv) /* Do a zero byte gather */ MPI_Allgather(MPI_IN_PLACE, -1, MPI_DATATYPE_NULL, NULL, 0, MPI_BYTE, MPI_COMM_WORLD); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allgatherv2.c b/test/mpi/coll/allgatherv2.c index f794978b731..23c9b4f4a95 100644 --- a/test/mpi/coll/allgatherv2.c +++ b/test/mpi/coll/allgatherv2.c @@ -3,16 +3,18 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_allgatherv2 +int run(const char *arg); +#endif /* Test Allgatherv on array of doubles. Use IN_PLACE. This is the trivial version based on the allgather2 test (allgatherv but with constant data sizes) */ -int main(int argc, char **argv) +int run(const char *arg) { double *vecout; MPI_Comm comm; @@ -21,8 +23,6 @@ int main(int argc, char **argv) int rank, size; int *displs, *recvcounts; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -61,6 +61,5 @@ int main(int argc, char **argv) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allgatherv3.c b/test/mpi/coll/allgatherv3.c index cd675016643..24522b59ec1 100644 --- a/test/mpi/coll/allgatherv3.c +++ b/test/mpi/coll/allgatherv3.c @@ -3,16 +3,18 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_allgatherv3 +int run(const char *arg); +#endif /* Test Allgatherv on array of doubles, same as allgatherv2 but without * MPI_IN_PLACE. This is the trivial version based on the allgather3 * test (allgatherv but with constant data sizes) */ -int main(int argc, char **argv) +int run(const char *arg) { double *vecout, *invec; MPI_Comm comm; @@ -21,8 +23,6 @@ int main(int argc, char **argv) int rank, size; int *displs, *recvcounts; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -61,6 +61,5 @@ int main(int argc, char **argv) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allgatherv4.c b/test/mpi/coll/allgatherv4.c index 3e296665a0e..8c016f3f4a1 100644 --- a/test/mpi/coll/allgatherv4.c +++ b/test/mpi/coll/allgatherv4.c @@ -3,10 +3,7 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include #ifdef HAVE_SYS_TIME_H #include #endif @@ -14,6 +11,11 @@ #include #include +#ifdef MULTI_TESTS +#define run coll_allgatherv4 +int run(const char *arg); +#endif + /* FIXME: What is this test supposed to accomplish? */ #define START_BUF (1) @@ -23,9 +25,9 @@ #define MAX_BUF (128 * 1024 * 1024) #define LOOPS 10 -char *sbuf, *rbuf; -int *recvcounts, *displs; -int errs = 0; +static char *sbuf, *rbuf; +static int *recvcounts, *displs; +static int errs = 0; typedef enum { REGULAR, @@ -36,15 +38,14 @@ typedef enum { BELL_CURVE } test_t; -void comm_tests(MPI_Comm comm); -double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double *max_time); +static void comm_tests(MPI_Comm comm); +static double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double *max_time); -int main(int argc, char **argv) +int run(const char *arg) { int comm_size, comm_rank; MPI_Comm comm; - MTest_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &comm_size); MPI_Comm_rank(MPI_COMM_WORLD, &comm_rank); @@ -118,12 +119,10 @@ int main(int argc, char **argv) free(displs); fn_exit: - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } -void comm_tests(MPI_Comm comm) +static void comm_tests(MPI_Comm comm) { int comm_size, comm_rank; double rtime, max_time; @@ -169,7 +168,7 @@ void comm_tests(MPI_Comm comm) } } -double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double *max_time) +static double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double *max_time) { int i, j; int comm_size, comm_rank; diff --git a/test/mpi/coll/allred.c b/test/mpi/coll/allred.c index 11298d62fae..b44807f6696 100644 --- a/test/mpi/coll/allred.c +++ b/test/mpi/coll/allred.c @@ -9,14 +9,6 @@ */ #include "mpitest.h" -#include "mpi.h" -#include -#include -#include -#ifdef HAVE_STDINT_H -#include -#endif - #include "mtest_dtp.h" /* For simplicity, we precalculate solutions in integers. Use "long" type * to prevent intermediate overflows, especially during get_pow(). On the @@ -25,6 +17,11 @@ */ #define LONG long long +#ifdef MULTI_TESTS +#define run coll_allred +int run(const char *arg); +#endif + struct int_test { int a; int b; @@ -705,12 +702,10 @@ static int test_allred(mtest_mem_type_e evenmem, mtest_mem_type_e oddmem) return errs; } -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; - MTest_Init(&argc, &argv); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -720,13 +715,12 @@ int main(int argc, char **argv) } struct dtp_args dtp_args; - dtp_args_init(&dtp_args, MTEST_COLL_COUNT, argc, argv); + dtp_args_init_arg(&dtp_args, MTEST_COLL_COUNT, arg); while (dtp_args_get_next(&dtp_args)) { count = dtp_args.count; errs += test_allred(dtp_args.u.coll.evenmem, dtp_args.u.coll.oddmem); } dtp_args_finalize(&dtp_args); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allred2.c b/test/mpi/coll/allred2.c index cc55dd1a3c7..69cb9c07cb8 100644 --- a/test/mpi/coll/allred2.c +++ b/test/mpi/coll/allred2.c @@ -4,11 +4,13 @@ */ #include "mpitest.h" -#include "mpi.h" -#include -#include #include "mtest_dtp.h" +#ifdef MULTI_TESTS +#define run coll_allred2 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "Test MPI_Allreduce with MPI_IN_PLACE"; */ @@ -76,18 +78,16 @@ static int test_allred(mtest_mem_type_e oddmem, mtest_mem_type_e evenmem) return errs; } -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; - MTest_Init(&argc, &argv); struct dtp_args dtp_args; - dtp_args_init(&dtp_args, MTEST_COLL_NOCOUNT, argc, argv); + dtp_args_init_arg(&dtp_args, MTEST_COLL_NOCOUNT, arg); while (dtp_args_get_next(&dtp_args)) { errs += test_allred(dtp_args.u.coll.evenmem, dtp_args.u.coll.oddmem); } dtp_args_finalize(&dtp_args); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allred3.c b/test/mpi/coll/allred3.c index e1708aff6a4..217cf54271b 100644 --- a/test/mpi/coll/allred3.c +++ b/test/mpi/coll/allred3.c @@ -3,12 +3,14 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" #include +#ifdef MULTI_TESTS +#define run coll_allred3 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "Test MPI_Allreduce with non-commutative user-defined operations"; */ @@ -16,7 +18,7 @@ static char MTEST_Descrip[] = "Test MPI_Allreduce with non-commutative user-defi /* We make the error count global so that we can easily control the output of error information (in particular, limiting it after the first 10 errors */ -int errs = 0; +static int errs = 0; /* This implements a simple matrix-matrix multiply. This is an associative but not commutative operation. The matrix size is set in matSize; @@ -27,8 +29,7 @@ int errs = 0; #define MAXCOL 256 static int matSize = 0; /* Must be < MAXCOL */ static int max_offset = 0; -void uop(void *, void *, int *, MPI_Datatype *); -void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) +static void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) { const int *cin = (const int *) cinPtr; int *cout = (int *) coutPtr; @@ -147,7 +148,7 @@ static int isIdentity(MPI_Comm comm, int mat[]) return lerrs; } -int main(int argc, char *argv[]) +int run(const char *arg) { int size; int minsize = 2, count; @@ -156,8 +157,6 @@ int main(int argc, char *argv[]) MPI_Op op; MPI_Datatype mattype; - MTest_Init(&argc, &argv); - MPI_Op_create(uop, 0, &op); while (MTestGetIntracommGeneral(&comm, minsize, 1)) { @@ -202,6 +201,5 @@ int main(int argc, char *argv[]) MPI_Op_free(&op); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allred5.c b/test/mpi/coll/allred5.c index 8269766116f..eee72ae0c54 100644 --- a/test/mpi/coll/allred5.c +++ b/test/mpi/coll/allred5.c @@ -3,12 +3,14 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" #include +#ifdef MULTI_TESTS +#define run coll_allred5 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "Test MPI_Allreduce with count greater than the number of processes"; */ @@ -16,16 +18,14 @@ static char MTEST_Descrip[] = "Test MPI_Allreduce with count greater than the nu /* We make the error count global so that we can easily control the output of error information (in particular, limiting it after the first 10 errors */ -int errs = 0; +static int errs = 0; -int main(int argc, char *argv[]) +int run(const char *arg) { MPI_Comm comm; MPI_Datatype dtype; int count, *bufin, *bufout, size, i, minsize = 1; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) { continue; @@ -57,6 +57,5 @@ int main(int argc, char *argv[]) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allred6.c b/test/mpi/coll/allred6.c index 1ad1c2b9cfb..d592e79b9ad 100644 --- a/test/mpi/coll/allred6.c +++ b/test/mpi/coll/allred6.c @@ -3,11 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_allred6 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "Test MPI_Allreduce with apparent non-commutative operators"; */ @@ -16,9 +18,7 @@ static char MTEST_Descrip[] = "Test MPI_Allreduce with apparent non-commutative various message lengths. Other tests check truly non-commutative operators */ -void mysum(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype); - -void mysum(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) +static void mysum(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) { const int *cin = (const int *) cinPtr; int *cout = (int *) coutPtr; @@ -27,7 +27,7 @@ void mysum(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) cout[i] += cin[i]; } -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int rank, size; @@ -36,8 +36,6 @@ int main(int argc, char *argv[]) MPI_Op op; int *buf, i; - MTest_Init(&argc, &argv); - MPI_Op_create(mysum, 0, &op); while (MTestGetIntracommGeneral(&comm, minsize, 1)) { @@ -68,6 +66,5 @@ int main(int argc, char *argv[]) } MPI_Op_free(&op); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/allredmany.c b/test/mpi/coll/allredmany.c index 11cacb8b355..4149028c0af 100644 --- a/test/mpi/coll/allredmany.c +++ b/test/mpi/coll/allredmany.c @@ -3,21 +3,23 @@ * See COPYRIGHT in top-level directory */ -#include -#include "mpi.h" #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_allredmany +int run(const char *arg); +#endif + /* * This example should be run with 2 processes and tests the ability of the * implementation to handle a flood of one-way messages. */ -int main(int argc, char **argv) +int run(const char *arg) { double wscale = 10.0, scale; int numprocs, myid, i; - MTest_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myid); @@ -25,7 +27,5 @@ int main(int argc, char **argv) MPI_Allreduce(&wscale, &scale, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); } - MTest_Finalize(0); - return 0; } diff --git a/test/mpi/coll/alltoall1.c b/test/mpi/coll/alltoall1.c index 4333b9dfaf2..70d051bffc6 100644 --- a/test/mpi/coll/alltoall1.c +++ b/test/mpi/coll/alltoall1.c @@ -3,17 +3,19 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include #include "mpitest.h" -#include #include "mpicolltest.h" +#ifdef MULTI_TESTS +#define run coll_alltoall1 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = ""; */ -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int rank, size; @@ -24,11 +26,9 @@ int main(int argc, char *argv[]) int i, j; MPI_Datatype sendtype, recvtype; - MTest_Init(&argc, &argv); - int is_blocking = 1; - MTestArgList *head = MTestArgListCreate(argc, argv); + MTestArgList *head = MTestArgListCreate_arg(arg); if (MTestArgListGetInt_with_default(head, "nonblocking", 0)) { is_blocking = 0; } @@ -125,6 +125,5 @@ int main(int argc, char *argv[]) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/alltoallv.c b/test/mpi/coll/alltoallv.c index b18a621c712..84b4226d086 100644 --- a/test/mpi/coll/alltoallv.c +++ b/test/mpi/coll/alltoallv.c @@ -3,12 +3,14 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include #include +#ifdef MULTI_TESTS +#define run coll_alltoallv +int run(const char *arg); +#endif + /* This program tests MPI_Alltoallv by having processor i send different amounts of data to each processor. @@ -22,7 +24,7 @@ that use point-to-point operations */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Comm comm; @@ -31,7 +33,6 @@ int main(int argc, char **argv) int *sendcounts, *recvcounts, *rdispls, *sdispls; int i, j, *p, errs; - MTest_Init(&argc, &argv); errs = 0; while (MTestGetIntracommGeneral(&comm, 2, 1)) { @@ -129,6 +130,5 @@ int main(int argc, char **argv) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/alltoallv0.c b/test/mpi/coll/alltoallv0.c index 14efdfb1023..3fe64b325f7 100644 --- a/test/mpi/coll/alltoallv0.c +++ b/test/mpi/coll/alltoallv0.c @@ -3,10 +3,12 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_alltoallv0 +int run(const char *arg); +#endif /* This program tests MPI_Alltoallv by having processor each process @@ -20,7 +22,7 @@ that use point-to-point operations */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Comm comm; @@ -30,7 +32,6 @@ int main(int argc, char **argv) int i, *p, errs; int left, right, length; - MTest_Init(&argc, &argv); errs = 0; while (MTestGetIntracommGeneral(&comm, 2, 1)) { @@ -128,6 +129,5 @@ int main(int argc, char **argv) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/alltoallw1.c b/test/mpi/coll/alltoallw1.c index 675a1d7f82b..dbe1c010189 100644 --- a/test/mpi/coll/alltoallw1.c +++ b/test/mpi/coll/alltoallw1.c @@ -14,17 +14,18 @@ /* Specify the maximum number of errors to report. */ #define MAX_ERRORS 10 -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_alltoallw1 +int run(const char *arg); +#endif #define MAX_SIZE 64 -MPI_Datatype transpose_type(int M, int m, int n, MPI_Datatype type); -MPI_Datatype submatrix_type(int N, int m, int n, MPI_Datatype type); -void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm); -void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm) +static MPI_Datatype transpose_type(int M, int m, int n, MPI_Datatype type); +static MPI_Datatype submatrix_type(int N, int m, int n, MPI_Datatype type); +static void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm) /* transpose MxN matrix A that is block distributed (1-D) on processes of comm onto block distributed matrix B */ { @@ -101,7 +102,7 @@ void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm) /* Define an n x m submatrix in a n x M local matrix (this is the destination in the transpose matrix */ -MPI_Datatype submatrix_type(int M, int m, int n, MPI_Datatype type) +static MPI_Datatype submatrix_type(int M, int m, int n, MPI_Datatype type) /* computes a datatype for an mxn submatrix within an MxN matrix with entries of type type */ { @@ -138,7 +139,7 @@ MPI_Datatype submatrix_type(int M, int m, int n, MPI_Datatype type) /* Extract an m x n submatrix within an m x N matrix and transpose it. Assume storage by rows; the defined datatype accesses by columns */ -MPI_Datatype transpose_type(int N, int m, int n, MPI_Datatype type) +static MPI_Datatype transpose_type(int N, int m, int n, MPI_Datatype type) /* computes a datatype for the transpose of an mxn matrix with entries of type type */ { @@ -172,14 +173,13 @@ MPI_Datatype transpose_type(int N, int m, int n, MPI_Datatype type) /* -- CUT HERE -- */ -int main(int argc, char *argv[]) +int run(const char *arg) { int gM, gN, lm, lmlast, ln, lnlast, i, j, errs = 0; int size, rank; float *localA, *localB; MPI_Comm comm; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -255,8 +255,5 @@ int main(int argc, char *argv[]) free(localA); free(localB); - MTest_Finalize(errs); - - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/alltoallw2.c b/test/mpi/coll/alltoallw2.c index 529861abb02..cb0a641290c 100644 --- a/test/mpi/coll/alltoallw2.c +++ b/test/mpi/coll/alltoallw2.c @@ -3,12 +3,14 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include #include +#ifdef MULTI_TESTS +#define run coll_alltoallw2 +int run(const char *arg); +#endif + /* This program tests MPI_Alltoallw by having processor i send different amounts of data to each processor. This is just the MPI_Alltoallv test, @@ -23,15 +25,11 @@ that use point-to-point operations */ -static int test_noinplace(MPI_Comm comm); -static int test_inplace(MPI_Comm comm, bool sametype); - -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; MPI_Comm comm; - MTest_Init(&argc, &argv); while (MTestGetIntracommGeneral(&comm, 2, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -45,8 +43,7 @@ int main(int argc, char **argv) MTestFreeComm(&comm); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } static int test_noinplace(MPI_Comm comm) diff --git a/test/mpi/coll/alltoallw_zeros.c b/test/mpi/coll/alltoallw_zeros.c index e03e3ae07cc..9eb6103153b 100644 --- a/test/mpi/coll/alltoallw_zeros.c +++ b/test/mpi/coll/alltoallw_zeros.c @@ -13,14 +13,14 @@ /* TODO test intercommunicators as well */ -#include -#include - -#include - #include "mpitest.h" -int main(int argc, char *argv[]) +#ifdef MULTI_TESTS +#define run coll_alltoallw_zeros +int run(const char *arg); +#endif + +int run(const char *arg) { int sendbuf, recvbuf; int *sendcounts; @@ -35,8 +35,6 @@ int main(int argc, char *argv[]) int i; - MTest_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -113,7 +111,5 @@ int main(int argc, char *argv[]) if (sendtypes) free(sendtypes); - MTest_Finalize(0); - return 0; } diff --git a/test/mpi/coll/bcasttest.c b/test/mpi/coll/bcasttest.c index c9055569250..91958c9019a 100644 --- a/test/mpi/coll/bcasttest.c +++ b/test/mpi/coll/bcasttest.c @@ -3,17 +3,19 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include -#include #include "mpitest.h" +#include + +#ifdef MULTI_TESTS +#define run coll_bcasttest +int run(const char *arg); +#endif #define ROOT 0 #define NUM_REPS 5 #define NUM_SIZES 4 -int main(int argc, char **argv) +int run(const char *arg) { int *buf; int i, rank, reps, n; @@ -21,13 +23,13 @@ int main(int argc, char **argv) int sizes[NUM_SIZES] = { 100, 64 * 1024, 128 * 1024, 1024 * 1024 }; int errs = 0; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); - if (argc > 1) { - if (strcmp(argv[1], "-novalidate") == 0 || strcmp(argv[1], "-noverify") == 0) - bVerify = 0; + MTestArgList *head = MTestArgListCreate_arg(arg); + if (MTestArgListGetInt_with_default(head, "noverify", 0)) { + bVerify = 0; } + MTestArgListDestroy(head); buf = (int *) malloc(sizes[NUM_SIZES - 1] * sizeof(int)); memset(buf, 0, sizes[NUM_SIZES - 1] * sizeof(int)); @@ -81,6 +83,5 @@ int main(int argc, char **argv) free(buf); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/bcastzerotype.c b/test/mpi/coll/bcastzerotype.c index 4607a4fe021..e6eb66bb3de 100644 --- a/test/mpi/coll/bcastzerotype.c +++ b/test/mpi/coll/bcastzerotype.c @@ -3,23 +3,23 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include #include -#include -#include +#ifdef MULTI_TESTS +#define run coll_bcastzerotype +int run(const char *arg); +#endif /* test broadcast behavior with non-zero counts but zero-sized types */ -int main(int argc, char *argv[]) +int run(const char *arg) { int i, type_size; MPI_Datatype type = MPI_DATATYPE_NULL; char *buf = NULL; int wrank, wsize; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -49,7 +49,6 @@ int main(int argc, char *argv[]) free(buf); MPI_Type_free(&type); - MTest_Finalize(0); return 0; } diff --git a/test/mpi/coll/gather.c b/test/mpi/coll/gather.c index aa1c4876f59..9b7ce670fe8 100644 --- a/test/mpi/coll/gather.c +++ b/test/mpi/coll/gather.c @@ -3,14 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_gather +int run(const char *arg); +#endif /* Gather data from a vector to contiguous */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; MPI_Comm comm; @@ -19,8 +21,6 @@ int main(int argc, char **argv) int root, i, n, stride, errs = 0; int rank, size; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -66,6 +66,5 @@ int main(int argc, char **argv) /* do a zero length gather */ MPI_Gather(NULL, 0, MPI_BYTE, NULL, 0, MPI_BYTE, 0, MPI_COMM_WORLD); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/gather2.c b/test/mpi/coll/gather2.c index b69d6e93d7e..46614a42b0b 100644 --- a/test/mpi/coll/gather2.c +++ b/test/mpi/coll/gather2.c @@ -3,14 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_gather2 +int run(const char *arg); +#endif /* Gather data from a vector to contiguous. Use IN_PLACE */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; double *vecin, *vecout; @@ -19,8 +21,6 @@ int main(int argc, char **argv) int root, i, n, stride, errs = 0; int rank, size; - MTest_Init(&argc, &argv); - while (MTestGetIntracommGeneral(&comm, minsize, 1)) { if (comm == MPI_COMM_NULL) continue; @@ -78,6 +78,5 @@ int main(int argc, char **argv) MPI_Gather(NULL, 0, MPI_BYTE, NULL, 0, MPI_BYTE, 0, MPI_COMM_WORLD); } - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/gatherv.c b/test/mpi/coll/gatherv.c index 8e5e40a913d..35b87906d5a 100644 --- a/test/mpi/coll/gatherv.c +++ b/test/mpi/coll/gatherv.c @@ -3,13 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_gatherv +int run(const char *arg); +#endif + #define MAX_PROCESSES 10 -int main(int argc, char **argv) +int run(const char *arg) { int rank, size, i, j; int table[MAX_PROCESSES][MAX_PROCESSES]; @@ -18,7 +21,6 @@ int main(int argc, char **argv) int displs[MAX_PROCESSES]; int recv_counts[MAX_PROCESSES]; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -85,6 +87,5 @@ int main(int argc, char **argv) } } - MTest_Finalize(errors); - return MTestReturnValue(errors); + return errors; } diff --git a/test/mpi/coll/neighb_allgather.c b/test/mpi/coll/neighb_allgather.c index eb114da9ea0..f8f2d5cdcd1 100644 --- a/test/mpi/coll/neighb_allgather.c +++ b/test/mpi/coll/neighb_allgather.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_neighb_allgather +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -34,7 +35,6 @@ int main(int argc, char *argv[]) int recvbuf[2] = { 0xdeadbeef, 0xdeadbeef }; MPI_Comm cart; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -60,7 +60,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/neighb_allgatherv.c b/test/mpi/coll/neighb_allgatherv.c index b6168970380..baa941819e5 100644 --- a/test/mpi/coll/neighb_allgatherv.c +++ b/test/mpi/coll/neighb_allgatherv.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_neighb_allgatherv +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -37,7 +38,6 @@ int main(int argc, char *argv[]) int displs[2] = { 1, 0 }; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -63,7 +63,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/neighb_alltoall.c b/test/mpi/coll/neighb_alltoall.c index 5ac930f0fc0..b2a36de435d 100644 --- a/test/mpi/coll/neighb_alltoall.c +++ b/test/mpi/coll/neighb_alltoall.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_neighb_alltoall +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,14 +26,13 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; int periods[1] = { 0 }; MPI_Comm cart; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -62,7 +62,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/neighb_alltoallv.c b/test/mpi/coll/neighb_alltoallv.c index b0646223281..322cfcbf9ad 100644 --- a/test/mpi/coll/neighb_alltoallv.c +++ b/test/mpi/coll/neighb_alltoallv.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_neighb_alltoallv +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -38,7 +39,6 @@ int main(int argc, char *argv[]) int rdispls[2] = { 1, 0 }; MPI_Comm cart; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -67,7 +67,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/neighb_alltoallw.c b/test/mpi/coll/neighb_alltoallw.c index 7d64601791c..9bc4a5ed1ed 100644 --- a/test/mpi/coll/neighb_alltoallw.c +++ b/test/mpi/coll/neighb_alltoallw.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_neighb_alltoallw +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -40,7 +41,6 @@ int main(int argc, char *argv[]) MPI_Datatype sendtypes[2] = { MPI_INT, MPI_INT }; MPI_Datatype recvtypes[2] = { MPI_INT, MPI_INT }; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -69,7 +69,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/op_coll.c b/test/mpi/coll/op_coll.c index 24838e4472d..bf234a0e695 100644 --- a/test/mpi/coll/op_coll.c +++ b/test/mpi/coll/op_coll.c @@ -6,11 +6,13 @@ /* A test of all op-based collectives with support for GPU buffers */ #include "mpitest.h" -#include "mpi.h" -#include -#include #include "mtest_dtp.h" +#ifdef MULTI_TESTS +#define run coll_op_coll +int run(const char *arg); +#endif + #define COUNT (10) #define my_assert(cond_) \ @@ -21,15 +23,15 @@ } \ } while (0) -int *buf; -int *buf_h; -int *recvbuf; -int *recvbuf_h; -int *recvcounts; -MPI_Request req; -mtest_mem_type_e memtype; +static int *buf; +static int *buf_h; +static int *recvbuf; +static int *recvbuf_h; +static int *recvcounts; +static MPI_Request req; +static mtest_mem_type_e memtype; -void test_op_coll_with_root(int rank, int size, int root); +static void test_op_coll_with_root(int rank, int size, int root); static int run_test(mtest_mem_type_e oddmem, mtest_mem_type_e evenmem) { @@ -61,23 +63,21 @@ static int run_test(mtest_mem_type_e oddmem, mtest_mem_type_e evenmem) return 0; } -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; - MTest_Init(&argc, &argv); struct dtp_args dtp_args; - dtp_args_init(&dtp_args, MTEST_COLL_NOCOUNT, argc, argv); + dtp_args_init_arg(&dtp_args, MTEST_COLL_NOCOUNT, arg); while (dtp_args_get_next(&dtp_args)) { errs += run_test(dtp_args.u.coll.evenmem, dtp_args.u.coll.oddmem); } dtp_args_finalize(&dtp_args); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } -void test_op_coll_with_root(int rank, int size, int root) +static void test_op_coll_with_root(int rank, int size, int root) { int i, j; diff --git a/test/mpi/coll/p_allgather.c b/test/mpi/coll/p_allgather.c index 8c32e0754a3..8209f7760c4 100644 --- a/test/mpi/coll/p_allgather.c +++ b/test/mpi/coll/p_allgather.c @@ -8,10 +8,12 @@ * proposed MPI-4 is present in the library and take arguments as expected. This test * does not check for progress or matching issues. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_allgather +int run(const char *arg); +#endif #define NUM_INTS (2) @@ -23,7 +25,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int i; @@ -34,8 +36,6 @@ int main(int argc, char **argv) int count = 10; int j = 0; - MTest_Init(&argc, &argv); - comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -81,6 +81,5 @@ int main(int argc, char **argv) free(sendbuf); free(recvbuf); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_allgatherv.c b/test/mpi/coll/p_allgatherv.c index 5e60fc8962b..c4dccd5995e 100644 --- a/test/mpi/coll/p_allgatherv.c +++ b/test/mpi/coll/p_allgatherv.c @@ -13,10 +13,12 @@ * proposed MPI-4 is present in the library and take arguments as expected. This test * does not check for progress or matching issues. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_allgatherv +int run(const char *arg); +#endif #define NUM_INTS (2) @@ -28,7 +30,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int i; @@ -41,8 +43,6 @@ int main(int argc, char **argv) int count = 10; int j = 0; - MTest_Init(&argc, &argv); - comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -100,6 +100,5 @@ int main(int argc, char **argv) free(recvcounts); free(displs); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_allred.c b/test/mpi/coll/p_allred.c index e83448893c7..6dbbca53a11 100644 --- a/test/mpi/coll/p_allred.c +++ b/test/mpi/coll/p_allred.c @@ -7,10 +7,12 @@ * proposed MPI-4 is present in the library and take arguments as expected. This test * does not check for progress or matching issues. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_allred +int run(const char *arg); +#endif #define NUM_INTS (2) @@ -22,7 +24,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int i; @@ -33,8 +35,6 @@ int main(int argc, char **argv) int count = 10; int j = 0; - MTest_Init(&argc, &argv); - comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -77,6 +77,5 @@ int main(int argc, char **argv) free(sbuf); free(rbuf); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_alltoall.c b/test/mpi/coll/p_alltoall.c index 8bc486d07ff..82dd1593661 100644 --- a/test/mpi/coll/p_alltoall.c +++ b/test/mpi/coll/p_alltoall.c @@ -1,22 +1,18 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* - * (C) 2010 by Argonne National Laboratory. - * See COPYRIGHT in top-level directory. - * - * Portions of this code were written by Intel Corporation. - * Copyright (C) 2011-2019 Intel Corporation. Intel provides this material - * Argonne National Laboratory subject to Software Grant and Corporate - * Contributor License Agreement dated February 8, 2012. + * Copyright (C) by Argonne National Laboratory + * See COPYRIGHT in top-level directory */ /* This is a very weak sanity test that persistent Alltoall collectives specified by * proposed MPI-4 is present in the library and take arguments as expected. This test * does not check for progress or matching issues. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_alltoall +int run(const char *arg); +#endif #define my_assert(cond_) \ do { \ @@ -26,7 +22,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int i; @@ -38,8 +34,6 @@ int main(int argc, char **argv) int j = 0; int count = 1; /* sendcount and recvcount. */ - MTest_Init(&argc, &argv); - comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -85,6 +79,5 @@ int main(int argc, char **argv) free(sbuf); free(rbuf); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_alltoallv.c b/test/mpi/coll/p_alltoallv.c index d8f49109a64..8e79761d4a2 100644 --- a/test/mpi/coll/p_alltoallv.c +++ b/test/mpi/coll/p_alltoallv.c @@ -3,10 +3,12 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_alltoallv +int run(const char *arg); +#endif /* This program tests MPI_Alltoallv_init by having processor each process @@ -20,7 +22,7 @@ that use point-to-point operations */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Comm comm; @@ -32,7 +34,6 @@ int main(int argc, char **argv) MPI_Info info; MPI_Request req; - MTest_Init(&argc, &argv); errs = 0; MPI_Info_create(&info); @@ -140,6 +141,5 @@ int main(int argc, char **argv) MPI_Info_free(&info); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_alltoallw.c b/test/mpi/coll/p_alltoallw.c index e71a1a3b567..5cba7a25ad9 100644 --- a/test/mpi/coll/p_alltoallw.c +++ b/test/mpi/coll/p_alltoallw.c @@ -14,17 +14,18 @@ /* Specify the maximum number of errors to report. */ #define MAX_ERRORS 10 -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_alltoallw +int run(const char *arg); +#endif #define MAX_SIZE 64 -MPI_Datatype transpose_type(int M, int m, int n, MPI_Datatype type); -MPI_Datatype submatrix_type(int N, int m, int n, MPI_Datatype type); -void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm); -void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm) +static MPI_Datatype transpose_type(int M, int m, int n, MPI_Datatype type); +static MPI_Datatype submatrix_type(int N, int m, int n, MPI_Datatype type); +static void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm) /* transpose MxN matrix A that is block distributed (1-D) on processes of comm onto block distributed matrix B */ { @@ -109,7 +110,7 @@ void Transpose(float *localA, float *localB, int M, int N, MPI_Comm comm) /* Define an n x m submatrix in a n x M local matrix (this is the destination in the transpose matrix */ -MPI_Datatype submatrix_type(int M, int m, int n, MPI_Datatype type) +static MPI_Datatype submatrix_type(int M, int m, int n, MPI_Datatype type) /* computes a datatype for an mxn submatrix within an MxN matrix with entries of type type */ { @@ -146,7 +147,7 @@ MPI_Datatype submatrix_type(int M, int m, int n, MPI_Datatype type) /* Extract an m x n submatrix within an m x N matrix and transpose it. Assume storage by rows; the defined datatype accesses by columns */ -MPI_Datatype transpose_type(int N, int m, int n, MPI_Datatype type) +static MPI_Datatype transpose_type(int N, int m, int n, MPI_Datatype type) /* computes a datatype for the transpose of an mxn matrix with entries of type type */ { @@ -180,14 +181,13 @@ MPI_Datatype transpose_type(int N, int m, int n, MPI_Datatype type) /* -- CUT HERE -- */ -int main(int argc, char *argv[]) +int run(const char *arg) { int gM, gN, lm, lmlast, ln, lnlast, i, j, errs = 0; int size, rank; float *localA, *localB; MPI_Comm comm; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -263,8 +263,5 @@ int main(int argc, char *argv[]) free(localA); free(localB); - MTest_Finalize(errs); - - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_bcast.c b/test/mpi/coll/p_bcast.c index dd79340de91..04fd7e7bd22 100644 --- a/test/mpi/coll/p_bcast.c +++ b/test/mpi/coll/p_bcast.c @@ -1,17 +1,18 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* - * (C) 2010 by Argonne National Laboratory. - * See COPYRIGHT in top-level directory. + * Copyright (C) by Argonne National Laboratory + * See COPYRIGHT in top-level directory */ /* This is a very weak sanity test that persistent broadcast collectives specified by * proposed MPI-4 is present in the library and take arguments as expected. This test * does not check for progress or matching issues. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_bcast +int run(const char *arg); +#endif #define NUM_INTS (10) @@ -23,7 +24,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int i; @@ -34,8 +35,6 @@ int main(int argc, char **argv) int j; int root = 0; - MTest_Init(&argc, &argv); - comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -80,6 +79,5 @@ int main(int argc, char **argv) free(sbuf); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_bcast2.c b/test/mpi/coll/p_bcast2.c index 6a65141a1bb..755cc521f4a 100644 --- a/test/mpi/coll/p_bcast2.c +++ b/test/mpi/coll/p_bcast2.c @@ -1,17 +1,18 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* - * (C) 2011 by Argonne National Laboratory. - * See COPYRIGHT in top-level directory. + * Copyright (C) by Argonne National Laboratory + * See COPYRIGHT in top-level directory */ /* A basic test of persistent broadcast collective operation specified by the * propsoed MPI-4 standard. It only exercises the intracommunicator functionality, * and only transmits/receives simple integer types with relatively small counts. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_bcast2 +int run(const char *arg); +#endif #define COUNT (10) #define PRIME (17) @@ -24,7 +25,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int i; int errs = 0; @@ -32,7 +33,6 @@ int main(int argc, char **argv) int *buf = NULL; signed char *buf_alias = NULL; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -90,6 +90,5 @@ int main(int argc, char **argv) free(buf); MPI_Info_free(&info); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_gather.c b/test/mpi/coll/p_gather.c index b301520df51..f9787a95995 100644 --- a/test/mpi/coll/p_gather.c +++ b/test/mpi/coll/p_gather.c @@ -3,14 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_gather +int run(const char *arg); +#endif /* Gather data from a vector to contiguous */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; MPI_Comm comm; @@ -22,8 +24,6 @@ int main(int argc, char **argv) MPI_Request req; MPI_Info info; - MTest_Init(&argc, &argv); - MPI_Info_create(&info); while (MTestGetIntracommGeneral(&comm, minsize, 1)) { @@ -83,6 +83,5 @@ int main(int argc, char **argv) MPI_Info_free(&info); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_gatherv.c b/test/mpi/coll/p_gatherv.c index c0dc515f9c5..eb567e0cefb 100644 --- a/test/mpi/coll/p_gatherv.c +++ b/test/mpi/coll/p_gatherv.c @@ -3,13 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_gatherv +int run(const char *arg); +#endif + #define MAX_PROCESSES 10 -int main(int argc, char **argv) +int run(const char *arg) { int rank, size, i, j, iter; int table[MAX_PROCESSES][MAX_PROCESSES]; @@ -21,7 +24,6 @@ int main(int argc, char **argv) MPI_Request *reqs; MPI_Info info; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -109,6 +111,5 @@ int main(int argc, char **argv) free(reqs); MPI_Info_free(&info); - MTest_Finalize(errors); - return MTestReturnValue(errors); + return errors; } diff --git a/test/mpi/coll/p_neighb_allgather.c b/test/mpi/coll/p_neighb_allgather.c index cd2ce1da034..05ecba5d254 100644 --- a/test/mpi/coll/p_neighb_allgather.c +++ b/test/mpi/coll/p_neighb_allgather.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_neighb_allgather +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -36,7 +37,6 @@ int main(int argc, char *argv[]) MPI_Info info; MPI_Request req; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -70,7 +70,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_neighb_allgatherv.c b/test/mpi/coll/p_neighb_allgatherv.c index a228c0906c8..3fccb35c3ae 100644 --- a/test/mpi/coll/p_neighb_allgatherv.c +++ b/test/mpi/coll/p_neighb_allgatherv.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_neighb_allgatherv +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -39,7 +40,6 @@ int main(int argc, char *argv[]) MPI_Request req; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -73,7 +73,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_neighb_alltoall.c b/test/mpi/coll/p_neighb_alltoall.c index 5a7ffbecf2a..9d580416ada 100644 --- a/test/mpi/coll/p_neighb_alltoall.c +++ b/test/mpi/coll/p_neighb_alltoall.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_neighb_alltoall +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -34,7 +35,6 @@ int main(int argc, char *argv[]) MPI_Info info; MPI_Request req; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -71,7 +71,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_neighb_alltoallv.c b/test/mpi/coll/p_neighb_alltoallv.c index 12d3eb0092c..f899f869e65 100644 --- a/test/mpi/coll/p_neighb_alltoallv.c +++ b/test/mpi/coll/p_neighb_alltoallv.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_neighb_alltoallv +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -40,7 +41,6 @@ int main(int argc, char *argv[]) MPI_Info info; MPI_Request req; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -76,7 +76,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_neighb_alltoallw.c b/test/mpi/coll/p_neighb_alltoallw.c index 913ef5de118..1a3f69ac623 100644 --- a/test/mpi/coll/p_neighb_alltoallw.c +++ b/test/mpi/coll/p_neighb_alltoallw.c @@ -3,12 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include -#include +#include "mpitest.h" #include -#include -#include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_neighb_alltoallw +int run(const char *arg); +#endif #if !defined(USE_STRICT_MPI) && defined(MPICH) #define TEST_NEIGHB_COLL 1 @@ -25,7 +26,7 @@ } \ } while (0) -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int wrank, wsize; @@ -42,7 +43,6 @@ int main(int argc, char *argv[]) MPI_Info info; MPI_Request req; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Comm_size(MPI_COMM_WORLD, &wsize); @@ -78,7 +78,5 @@ int main(int argc, char *argv[]) MPI_Comm_free(&cart); #endif /* defined(TEST_NEIGHB_COLL) */ - MTest_Finalize(errs); - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_red.c b/test/mpi/coll/p_red.c index a53ae7b017a..328726a9f38 100644 --- a/test/mpi/coll/p_red.c +++ b/test/mpi/coll/p_red.c @@ -1,23 +1,18 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* - * (C) 2010 by Argonne National Laboratory. - * See COPYRIGHT in top-level directory. - * - * Portions of this code were written by Intel Corporation. - * Copyright (C) 2011-2019 Intel Corporation. Intel provides this material - * to Argonne National Laboratory subject to Software Grant and Corporate - * Contributor License Agreement dated February 8, 2012. - * + * Copyright (C) by Argonne National Laboratory + * See COPYRIGHT in top-level directory */ /* This is a very weak sanity test that persistent Reduce collectives specified by * proposed MPI-4 is present in the library and take arguments as expected. This test * does not check for progress or matching issues. */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_p_red +int run(const char *arg); +#endif #define NUM_INTS (2) @@ -29,7 +24,7 @@ } \ } while (0) -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int i; @@ -41,8 +36,6 @@ int main(int argc, char **argv) int j = 0; int root = 1; - MTest_Init(&argc, &argv); - comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -85,6 +78,5 @@ int main(int argc, char **argv) free(sbuf); free(rbuf); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/p_red_scat_block.c b/test/mpi/coll/p_red_scat_block.c index e7146e70761..83115028ad8 100644 --- a/test/mpi/coll/p_red_scat_block.c +++ b/test/mpi/coll/p_red_scat_block.c @@ -12,12 +12,14 @@ * Can be called with any number of processes. */ -#include "mpi.h" #include "mpitest.h" -#include -#include -int main(int argc, char **argv) +#ifdef MULTI_TESTS +#define run coll_p_red_scat_block +int run(const char *arg); +#endif + +int run(const char *arg) { int err = 0; int size, rank, i, sumval; @@ -25,7 +27,6 @@ int main(int argc, char **argv) int *recvbuf; MPI_Comm comm; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -86,7 +87,6 @@ int main(int argc, char **argv) MPI_Info_free(&info); #endif - MTest_Finalize(err); - return MTestReturnValue(err); + return err; } diff --git a/test/mpi/coll/p_redscat.c b/test/mpi/coll/p_redscat.c index 5354fbbc07d..2fea0609cb6 100644 --- a/test/mpi/coll/p_redscat.c +++ b/test/mpi/coll/p_redscat.c @@ -12,12 +12,14 @@ * Can be called with any number of processors. */ -#include "mpi.h" -#include -#include #include "mpitest.h" -int main(int argc, char **argv) +#ifdef MULTI_TESTS +#define run coll_p_redscat +int run(const char *arg); +#endif + +int run(const char *arg) { int err = 0; int *sendbuf, recvbuf, *recvcounts; @@ -27,7 +29,6 @@ int main(int argc, char **argv) MPI_Request req; MPI_Info info; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -62,7 +63,6 @@ int main(int argc, char **argv) free(sendbuf); free(recvcounts); - MTest_Finalize(err); - return MTestReturnValue(err); + return err; } diff --git a/test/mpi/coll/p_scan.c b/test/mpi/coll/p_scan.c index feff575ba58..48857a8a89f 100644 --- a/test/mpi/coll/p_scan.c +++ b/test/mpi/coll/p_scan.c @@ -3,14 +3,14 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include #include "mpitest.h" -void addem(int *, int *, int *, MPI_Datatype *); -void assoc(int *, int *, int *, MPI_Datatype *); +#ifdef MULTI_TESTS +#define run coll_p_scan +int run(const char *arg); +#endif -void addem(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) +static void addem(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) { int i; for (i = 0; i < *len; i++) @@ -26,7 +26,7 @@ void addem(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) Note that the computation is in process rank (in the communicator) order, independent of the root. */ -void assoc(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) +static void assoc(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) { int i; for (i = 0; i < *len; i++) { @@ -40,7 +40,7 @@ void assoc(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) } } -int main(int argc, char **argv) +int run(const char *arg) { int rank, size, i; int data; @@ -52,7 +52,6 @@ int main(int argc, char **argv) MPI_Info info; MPI_Request req; - MTest_Init(&argc, &argv); MPI_Op_create((MPI_User_function *) assoc, 0, &op_assoc); MPI_Op_create((MPI_User_function *) addem, 1, &op_addem); @@ -133,7 +132,5 @@ int main(int argc, char **argv) MPI_Op_free(&op_assoc); MPI_Op_free(&op_addem); - MTest_Finalize(errors); - return errors; } diff --git a/test/mpi/coll/p_scatter.c b/test/mpi/coll/p_scatter.c index b3ae823d1d9..ac68bc605d5 100644 --- a/test/mpi/coll/p_scatter.c +++ b/test/mpi/coll/p_scatter.c @@ -3,14 +3,16 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_p_scatter +int run(const char *arg); +#endif + /* This example sends a vector and receives individual elements */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; double *vecin, *vecout, ivalue; @@ -20,8 +22,6 @@ int main(int argc, char **argv) MPI_Info info; MPI_Request *reqs; - MTest_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -67,6 +67,6 @@ int main(int argc, char **argv) MPI_Info_free(&info); MPI_Type_free(&vec); - MTest_Finalize(errs); - return MTestReturnValue(errs); + + return errs; } diff --git a/test/mpi/coll/p_scatterv.c b/test/mpi/coll/p_scatterv.c index 09e3e2a9588..5e08c55d9c4 100644 --- a/test/mpi/coll/p_scatterv.c +++ b/test/mpi/coll/p_scatterv.c @@ -3,14 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" -/* Prototypes for picky compilers */ -void SetData(double *, double *, int, int, int, int, int, int); -int CheckData(double *, int, int, int, int, int, int); +#ifdef MULTI_TESTS +#define run coll_p_scatterv +int run(const char *arg); +#endif + /* This is an example of using scatterv to send a matrix from one process to all others, with the matrix stored in Fortran order. @@ -22,8 +21,8 @@ int CheckData(double *, int, int, int, int, int, int); */ -void SetData(double *sendbuf, double *recvbuf, int nx, int ny, - int myrow, int mycol, int nrow, int ncol) +static void SetData(double *sendbuf, double *recvbuf, int nx, int ny, + int myrow, int mycol, int nrow, int ncol) { int coldim, i, j, m, k; double *p; @@ -46,7 +45,8 @@ void SetData(double *sendbuf, double *recvbuf, int nx, int ny, recvbuf[i] = -1.0; } -int CheckData(double *recvbuf, int nx, int ny, int myrow, int mycol, int nrow, int expect_no_value) +static int CheckData(double *recvbuf, int nx, int ny, int myrow, int mycol, int nrow, + int expect_no_value) { int coldim, m, k; double *p, val; @@ -79,7 +79,7 @@ int CheckData(double *recvbuf, int nx, int ny, int myrow, int mycol, int nrow, i return errs; } -int main(int argc, char **argv) +int run(const char *arg) { int rank, size, myrow, mycol, nx, ny, stride, cnt, i, j, errs, errs_in_place; double *sendbuf, *recvbuf; @@ -92,7 +92,6 @@ int main(int argc, char **argv) MPI_Info info; MPI_Request req1, req2; - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -190,6 +189,6 @@ int main(int argc, char **argv) MPI_Info_free(&info); MPI_Type_free(&block); MPI_Comm_free(&comm2d); - MTest_Finalize(errs); - return MTestReturnValue(errs); + + return errs; } diff --git a/test/mpi/coll/red3.c b/test/mpi/coll/red3.c index 25692ffa0a3..b3ce9e6df9c 100644 --- a/test/mpi/coll/red3.c +++ b/test/mpi/coll/red3.c @@ -3,11 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_red3 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "Test MPI_Reduce with non-commutative user-define operations"; */ @@ -27,8 +29,7 @@ static char MTEST_Descrip[] = "Test MPI_Reduce with non-commutative user-define */ #define MAXCOL 256 static int matSize = 0; /* Must be < MAXCOL */ -void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype); -void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) +static void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) { const int *cin = (const int *) cinPtr; int *cout = (int *) coutPtr; @@ -131,7 +132,7 @@ static int isShiftLeft(MPI_Comm comm, int mat[]) return errs; } -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int rank, size, root; @@ -141,8 +142,6 @@ int main(int argc, char *argv[]) MPI_Op op; MPI_Datatype mattype; - MTest_Init(&argc, &argv); - MPI_Op_create(uop, 0, &op); while (MTestGetIntracommGeneral(&comm, minsize, 1)) { @@ -196,6 +195,5 @@ int main(int argc, char *argv[]) MPI_Op_free(&op); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/red4.c b/test/mpi/coll/red4.c index ab56fa45f58..96a5ef2fe0d 100644 --- a/test/mpi/coll/red4.c +++ b/test/mpi/coll/red4.c @@ -3,11 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_red4 +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "Test MPI_Reduce with non-commutative user-define operations and arbitrary root"; */ @@ -29,8 +31,7 @@ static char MTEST_Descrip[] = "Test MPI_Reduce with non-commutative user-define #define MAXCOL 256 static int matSize = 0; /* Must be < MAXCOL */ -void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype); -void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) +static void uop(void *cinPtr, void *coutPtr, int *count, MPI_Datatype * dtype) { const int *cin; int *cout; @@ -179,7 +180,7 @@ static int isPermutedIdentity(MPI_Comm comm, int mat[]) return errs; } -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; int rank, size, root; @@ -189,8 +190,6 @@ int main(int argc, char *argv[]) MPI_Op op; MPI_Datatype mattype; - MTest_Init(&argc, &argv); - MPI_Op_create(uop, 0, &op); while (MTestGetIntracommGeneral(&comm, minsize, 1)) { @@ -247,6 +246,5 @@ int main(int argc, char *argv[]) MPI_Op_free(&op); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/red_scat_block.c b/test/mpi/coll/red_scat_block.c index 04343814e2a..c1d2dc462f9 100644 --- a/test/mpi/coll/red_scat_block.c +++ b/test/mpi/coll/red_scat_block.c @@ -12,12 +12,14 @@ * Can be called with any number of processes. */ -#include "mpi.h" #include "mpitest.h" -#include -#include -int main(int argc, char **argv) +#ifdef MULTI_TESTS +#define run coll_red_scat_block +int run(const char *arg); +#endif + +int run(const char *arg) { int err = 0; int size, rank, i, sumval; @@ -25,7 +27,6 @@ int main(int argc, char **argv) int *recvbuf; MPI_Comm comm; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -68,7 +69,6 @@ int main(int argc, char **argv) } free(recvbuf); #endif - MTest_Finalize(err); - return MTestReturnValue(err); + return err; } diff --git a/test/mpi/coll/red_scat_block2.c b/test/mpi/coll/red_scat_block2.c index 9716a6d0176..c6c5cfe4b3a 100644 --- a/test/mpi/coll/red_scat_block2.c +++ b/test/mpi/coll/red_scat_block2.c @@ -12,16 +12,17 @@ * Can be called with any number of processors. */ -#include "mpi.h" -#include -#include #include "mpitest.h" -int err = 0; +#ifdef MULTI_TESTS +#define run coll_red_scat_block2 +int run(const char *arg); +#endif + +static int err = 0; /* left(x,y) ==> x */ -void left(void *a, void *b, int *count, MPI_Datatype * type); -void left(void *a, void *b, int *count, MPI_Datatype * type) +static void left(void *a, void *b, int *count, MPI_Datatype * type) { int *in = a; int *inout = b; @@ -35,8 +36,7 @@ void left(void *a, void *b, int *count, MPI_Datatype * type) } /* right(x,y) ==> y */ -void right(void *a, void *b, int *count, MPI_Datatype * type); -void right(void *a, void *b, int *count, MPI_Datatype * type) +static void right(void *a, void *b, int *count, MPI_Datatype * type) { int *in = a; int *inout = b; @@ -51,8 +51,7 @@ void right(void *a, void *b, int *count, MPI_Datatype * type) /* Just performs a simple sum but can be marked as non-commutative to potentially trigger different logic in the implementation. */ -void nc_sum(void *a, void *b, int *count, MPI_Datatype * type); -void nc_sum(void *a, void *b, int *count, MPI_Datatype * type) +static void nc_sum(void *a, void *b, int *count, MPI_Datatype * type) { int *in = a; int *inout = b; @@ -65,7 +64,7 @@ void nc_sum(void *a, void *b, int *count, MPI_Datatype * type) #define MAX_BLOCK_SIZE 256 -int main(int argc, char **argv) +int run(const char *arg) { int *sendbuf; int block_size; @@ -74,7 +73,6 @@ int main(int argc, char **argv) MPI_Comm comm; MPI_Op left_op, right_op, nc_sum_op; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -122,7 +120,5 @@ int main(int argc, char **argv) MPI_Op_free(&nc_sum_op); #endif - MTest_Finalize(err); - return err; } diff --git a/test/mpi/coll/redscat.c b/test/mpi/coll/redscat.c index 9d44c39b672..f24fc9e67a7 100644 --- a/test/mpi/coll/redscat.c +++ b/test/mpi/coll/redscat.c @@ -12,13 +12,15 @@ * Can be called with any number of processors. */ -#include "mpi.h" -#include -#include -#include "mpicolltest.h" #include "mpitest.h" +#include "mpicolltest.h" + +#ifdef MULTI_TESTS +#define run coll_redscat +int run(const char *arg); +#endif -int main(int argc, char **argv) +int run(const char *arg) { int err = 0; int *sendbuf, recvbuf, *recvcounts; @@ -27,13 +29,12 @@ int main(int argc, char **argv) int is_blocking = 1; - MTestArgList *head = MTestArgListCreate(argc, argv); + MTestArgList *head = MTestArgListCreate_arg(arg); if (MTestArgListGetInt_with_default(head, "nonblocking", 0)) { is_blocking = 0; } MTestArgListDestroy(head); - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -57,7 +58,6 @@ int main(int argc, char **argv) free(sendbuf); free(recvcounts); - MTest_Finalize(err); - return MTestReturnValue(err); + return err; } diff --git a/test/mpi/coll/redscat2.c b/test/mpi/coll/redscat2.c index c24bf5714aa..5529b9f1f18 100644 --- a/test/mpi/coll/redscat2.c +++ b/test/mpi/coll/redscat2.c @@ -12,16 +12,17 @@ * Can be called with any number of processors. */ -#include "mpi.h" -#include -#include #include "mpitest.h" -int err = 0; +#ifdef MULTI_TESTS +#define run coll_redscat2 +int run(const char *arg); +#endif + +static int err = 0; /* left(x,y) ==> x */ -void left(void *a, void *b, int *count, MPI_Datatype * type); -void left(void *a, void *b, int *count, MPI_Datatype * type) +static void left(void *a, void *b, int *count, MPI_Datatype * type) { int *in = a; int *inout = b; @@ -35,8 +36,7 @@ void left(void *a, void *b, int *count, MPI_Datatype * type) } /* right(x,y) ==> y */ -void right(void *a, void *b, int *count, MPI_Datatype * type); -void right(void *a, void *b, int *count, MPI_Datatype * type) +static void right(void *a, void *b, int *count, MPI_Datatype * type) { int *in = a; int *inout = b; @@ -51,8 +51,7 @@ void right(void *a, void *b, int *count, MPI_Datatype * type) /* Just performs a simple sum but can be marked as non-commutative to potentially trigger different logic in the implementation. */ -void nc_sum(void *a, void *b, int *count, MPI_Datatype * type); -void nc_sum(void *a, void *b, int *count, MPI_Datatype * type) +static void nc_sum(void *a, void *b, int *count, MPI_Datatype * type) { int *in = a; int *inout = b; @@ -65,7 +64,7 @@ void nc_sum(void *a, void *b, int *count, MPI_Datatype * type) #define MAX_BLOCK_SIZE 256 -int main(int argc, char **argv) +int run(const char *arg) { int *sendbuf, *recvcounts; int block_size; @@ -74,7 +73,6 @@ int main(int argc, char **argv) MPI_Comm comm; MPI_Op left_op, right_op, nc_sum_op; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -122,7 +120,5 @@ int main(int argc, char **argv) MPI_Op_free(&right_op); MPI_Op_free(&nc_sum_op); - MTest_Finalize(err); - return err; } diff --git a/test/mpi/coll/redscat3.c b/test/mpi/coll/redscat3.c index 481cbe2a52e..949e9a2c043 100644 --- a/test/mpi/coll/redscat3.c +++ b/test/mpi/coll/redscat3.c @@ -13,16 +13,18 @@ * Can be called with any number of processors. */ -#include "mpi.h" -#include -#include #include "mpitest.h" #include "mpicolltest.h" +#ifdef MULTI_TESTS +#define run coll_redscat3 +int run(const char *arg); +#endif + /* Limit the number of error reports */ #define MAX_ERRORS 10 -int main(int argc, char **argv) +int run(const char *arg) { int errs = 0; int *sendbuf, *recvbuf, *recvcounts; @@ -31,13 +33,12 @@ int main(int argc, char **argv) int is_blocking = 1; - MTestArgList *head = MTestArgListCreate(argc, argv); + MTestArgList *head = MTestArgListCreate_arg(arg); if (MTestArgListGetInt_with_default(head, "nonblocking", 0)) { is_blocking = 0; } MTestArgListDestroy(head); - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -105,8 +106,5 @@ int main(int argc, char **argv) free(recvbuf); free(recvcounts); - MTest_Finalize(errs); - - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/redscatblk3.c b/test/mpi/coll/redscatblk3.c index bbe4b5655ac..2862fb174c5 100644 --- a/test/mpi/coll/redscatblk3.c +++ b/test/mpi/coll/redscatblk3.c @@ -13,12 +13,14 @@ * Can be called with any number of processors. */ -#include "mpi.h" -#include -#include #include "mpitest.h" -int main(int argc, char **argv) +#ifdef MULTI_TESTS +#define run coll_redscatblk3 +int run(const char *arg); +#endif + +int run(const char *arg) { int errs = 0; int *sendbuf, *recvbuf; @@ -26,7 +28,6 @@ int main(int argc, char **argv) MPI_Comm comm; - MTest_Init(&argc, &argv); comm = MPI_COMM_WORLD; MPI_Comm_size(comm, &size); @@ -81,8 +82,5 @@ int main(int argc, char **argv) free(sendbuf); free(recvbuf); - MTest_Finalize(errs); - - - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/reduce.c b/test/mpi/coll/reduce.c index 0a24dfefb60..0df043bc9b8 100644 --- a/test/mpi/coll/reduce.c +++ b/test/mpi/coll/reduce.c @@ -4,11 +4,13 @@ */ #include "mpitest.h" -#include "mpi.h" -#include -#include #include "mtest_dtp.h" +#ifdef MULTI_TESTS +#define run coll_reduce +int run(const char *arg); +#endif + /* static char MTEST_Descrip[] = "A simple test of Reduce with all choices of root process"; */ @@ -112,18 +114,16 @@ static int test_reduce(mtest_mem_type_e oddmem, mtest_mem_type_e evenmem) return errs; } -int main(int argc, char *argv[]) +int run(const char *arg) { int errs = 0; - MTest_Init(&argc, &argv); struct dtp_args dtp_args; - dtp_args_init(&dtp_args, MTEST_COLL_NOCOUNT, argc, argv); + dtp_args_init_arg(&dtp_args, MTEST_COLL_NOCOUNT, arg); while (dtp_args_get_next(&dtp_args)) { errs += test_reduce(dtp_args.u.coll.evenmem, dtp_args.u.coll.oddmem); } dtp_args_finalize(&dtp_args); - MTest_Finalize(errs); - return MTestReturnValue(errs); + return errs; } diff --git a/test/mpi/coll/scantst.c b/test/mpi/coll/scantst.c index fae47f20d2c..63f1d10373a 100644 --- a/test/mpi/coll/scantst.c +++ b/test/mpi/coll/scantst.c @@ -3,14 +3,14 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include #include "mpitest.h" -void addem(int *, int *, int *, MPI_Datatype *); -void assoc(int *, int *, int *, MPI_Datatype *); +#ifdef MULTI_TESTS +#define run coll_scantst +int run(const char *arg); +#endif -void addem(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) +static void addem(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) { int i; for (i = 0; i < *len; i++) @@ -26,7 +26,7 @@ void addem(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) Note that the computation is in process rank (in the communicator) order, independent of the root. */ -void assoc(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) +static void assoc(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) { int i; for (i = 0; i < *len; i++) { @@ -40,7 +40,7 @@ void assoc(int *invec, int *inoutvec, int *len, MPI_Datatype * dtype) } } -int main(int argc, char **argv) +int run(const char *arg) { int rank, size, i; int data; @@ -50,7 +50,6 @@ int main(int argc, char **argv) MPI_Op op_assoc, op_addem; MPI_Comm comm = MPI_COMM_WORLD; - MTest_Init(&argc, &argv); MPI_Op_create((MPI_User_function *) assoc, 0, &op_assoc); MPI_Op_create((MPI_User_function *) addem, 1, &op_addem); @@ -101,7 +100,5 @@ int main(int argc, char **argv) MPI_Op_free(&op_assoc); MPI_Op_free(&op_addem); - MTest_Finalize(errors); - return errors; } diff --git a/test/mpi/coll/scatter2.c b/test/mpi/coll/scatter2.c index 55dd2b6cb2a..eb04329dbd1 100644 --- a/test/mpi/coll/scatter2.c +++ b/test/mpi/coll/scatter2.c @@ -3,15 +3,17 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_scatter2 +int run(const char *arg); +#endif /* This example sends a vector and receives individual elements, but the root process does not receive any data */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; double *vecin, *vecout, ivalue; @@ -19,8 +21,6 @@ int main(int argc, char **argv) int rank, size; MPI_Aint vextent, tmp_lb; - MTest_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -65,6 +65,6 @@ int main(int argc, char **argv) free(vecin); free(vecout); MPI_Type_free(&vec); - MTest_Finalize(errs); - return MTestReturnValue(errs); + + return errs; } diff --git a/test/mpi/coll/scatter3.c b/test/mpi/coll/scatter3.c index ed5813fc827..0e2df026ca8 100644 --- a/test/mpi/coll/scatter3.c +++ b/test/mpi/coll/scatter3.c @@ -3,10 +3,12 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" #include "mpitest.h" -#include -#include + +#ifdef MULTI_TESTS +#define run coll_scatter3 +int run(const char *arg); +#endif /* This example sends contiguous data and receives a vector on some nodes and contiguous data on others. There is some evidence that some @@ -14,7 +16,7 @@ test checks for that case */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; double *vecin, *vecout, ivalue; @@ -22,8 +24,6 @@ int main(int argc, char **argv) int rank, size; MPI_Aint vextent, tmp_lb; - MTest_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -79,6 +79,6 @@ int main(int argc, char **argv) free(vecin); free(vecout); MPI_Type_free(&vec); - MTest_Finalize(errs); - return MTestReturnValue(errs); + + return errs; } diff --git a/test/mpi/coll/scattern.c b/test/mpi/coll/scattern.c index c2563d462ea..ac8fa84b7f4 100644 --- a/test/mpi/coll/scattern.c +++ b/test/mpi/coll/scattern.c @@ -3,22 +3,22 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" +#ifdef MULTI_TESTS +#define run coll_scattern +int run(const char *arg); +#endif + /* This example sends a vector and receives individual elements */ -int main(int argc, char **argv) +int run(const char *arg) { MPI_Datatype vec; double *vecin, *vecout, ivalue; int root, i, n, stride, errs = 0; int rank, size; - MTest_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -48,6 +48,6 @@ int main(int argc, char **argv) free(vecin); free(vecout); MPI_Type_free(&vec); - MTest_Finalize(errs); - return MTestReturnValue(errs); + + return errs; } diff --git a/test/mpi/coll/scatterv.c b/test/mpi/coll/scatterv.c index e153e6d377e..97642cbbe81 100644 --- a/test/mpi/coll/scatterv.c +++ b/test/mpi/coll/scatterv.c @@ -3,14 +3,13 @@ * See COPYRIGHT in top-level directory */ -#include "mpi.h" -#include -#include #include "mpitest.h" -/* Prototypes for picky compilers */ -void SetData(double *, double *, int, int, int, int, int, int); -int CheckData(double *, int, int, int, int, int, int); +#ifdef MULTI_TESTS +#define run coll_scatterv +int run(const char *arg); +#endif + /* This is an example of using scatterv to send a matrix from one process to all others, with the matrix stored in Fortran order. @@ -22,8 +21,8 @@ int CheckData(double *, int, int, int, int, int, int); */ -void SetData(double *sendbuf, double *recvbuf, int nx, int ny, - int myrow, int mycol, int nrow, int ncol) +static void SetData(double *sendbuf, double *recvbuf, int nx, int ny, + int myrow, int mycol, int nrow, int ncol) { int coldim, i, j, m, k; double *p; @@ -46,7 +45,8 @@ void SetData(double *sendbuf, double *recvbuf, int nx, int ny, recvbuf[i] = -1.0; } -int CheckData(double *recvbuf, int nx, int ny, int myrow, int mycol, int nrow, int expect_no_value) +static int CheckData(double *recvbuf, int nx, int ny, int myrow, int mycol, int nrow, + int expect_no_value) { int coldim, m, k; double *p, val; @@ -79,7 +79,7 @@ int CheckData(double *recvbuf, int nx, int ny, int myrow, int mycol, int nrow, i return errs; } -int main(int argc, char **argv) +int run(const char *arg) { int rank, size, myrow, mycol, nx, ny, stride, cnt, i, j, errs, errs_in_place; double *sendbuf, *recvbuf; @@ -89,8 +89,6 @@ int main(int argc, char **argv) int dims[2], periods[2], coords[2], lcoords[2]; int *sendcounts; - - MTest_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); @@ -170,6 +168,6 @@ int main(int argc, char **argv) free(scdispls); MPI_Type_free(&block); MPI_Comm_free(&comm2d); - MTest_Finalize(errs); - return MTestReturnValue(errs); + + return errs; } diff --git a/test/mpi/maint/all_mpitests.txt b/test/mpi/maint/all_mpitests.txt index 8af9f7123a3..f48a8277690 100644 --- a/test/mpi/maint/all_mpitests.txt +++ b/test/mpi/maint/all_mpitests.txt @@ -40,3 +40,67 @@ attr/keyval_double_free_comm attr/keyval_double_free_type attr/keyval_double_free_win attr/fkeyvaltype + +coll/allgather2 +coll/allgather3 +coll/allgatherv2 +coll/allgatherv3 +coll/allgatherv4 -lm +coll/allred +coll/allred2 +coll/allred3 +coll/allred5 +coll/allred6 +coll/allredmany +coll/alltoall1 +coll/alltoallv +coll/alltoallv0 +coll/alltoallw1 +coll/alltoallw2 +coll/alltoallw_zeros +coll/bcasttest +coll/bcastzerotype +coll/gather +coll/gather2 +coll/gatherv +coll/neighb_allgather +coll/neighb_allgatherv +coll/neighb_alltoall +coll/neighb_alltoallv +coll/neighb_alltoallw +coll/op_coll +coll/p_allgather +coll/p_allgatherv +coll/p_allred +coll/p_alltoall +coll/p_alltoallv +coll/p_alltoallw +coll/p_bcast +coll/p_bcast2 +coll/p_gather +coll/p_gatherv +coll/p_neighb_allgather +coll/p_neighb_allgatherv +coll/p_neighb_alltoall +coll/p_neighb_alltoallv +coll/p_neighb_alltoallw +coll/p_red +coll/p_red_scat_block +coll/p_redscat +coll/p_scan +coll/p_scatter +coll/p_scatterv +coll/red3 +coll/red4 +coll/red_scat_block +coll/red_scat_block2 +coll/redscat +coll/redscat2 +coll/redscat3 +coll/redscatblk3 +coll/reduce +coll/scantst +coll/scatter2 +coll/scatter3 +coll/scattern +coll/scatterv