From: Frederic Suter Date: Mon, 7 Mar 2016 20:51:51 +0000 (+0100) Subject: simplify scatter and remove blanks X-Git-Tag: v3_13~492^2~4 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/0ca76a50634ffa56e2bca3d5c46336f19c0e6599 simplify scatter and remove blanks --- diff --git a/teshsuite/smpi/coll-allreduce/coll-allreduce.c b/teshsuite/smpi/coll-allreduce/coll-allreduce.c index e2953f9e7e..37f1594e33 100644 --- a/teshsuite/smpi/coll-allreduce/coll-allreduce.c +++ b/teshsuite/smpi/coll-allreduce/coll-allreduce.c @@ -15,8 +15,6 @@ #define EXIT_FAILURE 1 #endif -//define MAXLEN 300000 - int main(int argc, char *argv[]) { int rank, size; @@ -52,7 +50,6 @@ int main(int argc, char *argv[]) printf("%d ", rb[i]); printf("]\n"); - if (rank == 0) { if (status != MPI_SUCCESS) { printf("all_to_all returned %d\n", status); diff --git a/teshsuite/smpi/coll-alltoall/coll-alltoall.c b/teshsuite/smpi/coll-alltoall/coll-alltoall.c index 8a9bd730cb..3e3f4c5f1f 100644 --- a/teshsuite/smpi/coll-alltoall/coll-alltoall.c +++ b/teshsuite/smpi/coll-alltoall/coll-alltoall.c @@ -47,7 +47,6 @@ int main(int argc, char *argv[]) printf("%d ", rb[i]); printf("]\n"); - if (rank == 0) { if (status != MPI_SUCCESS) { printf("all_to_all returned %d\n", status); diff --git a/teshsuite/smpi/coll-alltoallv/coll-alltoallv.c b/teshsuite/smpi/coll-alltoallv/coll-alltoallv.c index 23a3939d9e..c3e3798d1c 100644 --- a/teshsuite/smpi/coll-alltoallv/coll-alltoallv.c +++ b/teshsuite/smpi/coll-alltoallv/coll-alltoallv.c @@ -56,7 +56,6 @@ static void print_buffer_int(void *buf, int len, char *msg, int rank) free(msg); } - int main(int argc, char **argv) { MPI_Comm comm; diff --git a/teshsuite/smpi/coll-scatter/coll-scatter.c b/teshsuite/smpi/coll-scatter/coll-scatter.c index 268b38c225..89fd48cf1b 100644 --- a/teshsuite/smpi/coll-scatter/coll-scatter.c +++ b/teshsuite/smpi/coll-scatter/coll-scatter.c @@ -4,124 +4,51 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -/** - * MESSAGE PASSING INTERFACE TEST CASE SUITE - * - * Copyright IBM Corp. 1995 - * - * IBM Corp. hereby grants a non-exclusive license to use, copy, modify, and - *distribute this software for any purpose and without fee provided that the - *above copyright notice and the following paragraphs appear in all copies. - - * IBM Corp. makes no representation that the test cases comprising this - * suite are correct or are an accurate representation of any standard. - - * In no event shall IBM be liable to any party for direct, indirect, special - * incidental, or consequential damage arising out of the use of this software - * even if IBM Corp. has been advised of the possibility of such damage. - - * IBM CORP. SPECIFICALLY DISCLAIMS ANY WARRANTIES INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS AND IBM - * CORP. HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, - * ENHANCEMENTS, OR MODIFICATIONS. - **/ #include #include -static int ibm_test(int rank, int size) -{ - -#define MAXLEN 10000 - - int success = 1; - int root = 0; - int i, j, k; - int *out; - int *in; - - out = malloc(MAXLEN * 64 * sizeof(int)); - in = malloc(MAXLEN * sizeof(int)); - - for (j = 1; j <= MAXLEN; j *= 10) { - root = (root + 1) % size; - if (rank == root) - for (i = 0; i < j * size; i++) - out[i] = i; - - MPI_Scatter(out, j, MPI_INT, in, j, MPI_INT, root, MPI_COMM_WORLD); - - for (k = 0; k < j; k++) { - if (in[k] != k + rank * j) { - fprintf(stderr, "task %d bad answer (%d) at index %d k of %d (should be %d)",rank, in[k], k, j, (k + rank * j)); - return (0); - } - } - } - free(out); - free(in); - MPI_Barrier(MPI_COMM_WORLD); - return (success); -} - -/** small test: the root sends a single distinct double to other processes */ -static int small_test(int rank, int size) -{ - int success = 1; - int retval; - int sendcount = 1; // one double to each process - int recvcount = 1; - int i; - double *sndbuf = NULL; - double rcvd; - int root = 0; // arbitrary choice - - // on root, initialize sendbuf - if (root == rank) { - sndbuf = malloc(size * sizeof(double)); - for (i = 0; i < size; i++) { - sndbuf[i] = (double) i; - } - } - - retval = MPI_Scatter(sndbuf, sendcount, MPI_DOUBLE, &rcvd, recvcount, MPI_DOUBLE, root, MPI_COMM_WORLD); - if (root == rank) { - free(sndbuf); - } - if (retval != MPI_SUCCESS) { - fprintf(stderr, "(%s:%d) MPI_Scatter() returned retval=%d\n", __FILE__, __LINE__, retval); - return 0; - } - // verification - if ((double) rank != rcvd) { - fprintf(stderr, "[%d] has %f instead of %d\n", rank, rcvd, rank); - success = 0; - } - return (success); -} - int main(int argc, char **argv) { - int size, rank; - - MPI_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD, &size); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); + int size, rank; + int success = 1; + int retval; + int sendcount = 1; // one double to each process + int recvcount = 1; + int i; + double *sndbuf = NULL; + double rcvd; + int root = 0; // arbitrary choice + + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD, &size); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + // on root, initialize sendbuf + if (root == rank) { + sndbuf = malloc(size * sizeof(double)); + for (i = 0; i < size; i++) { + sndbuf[i] = (double) i; + } + } + + retval = MPI_Scatter(sndbuf, sendcount, MPI_DOUBLE, &rcvd, recvcount, MPI_DOUBLE, root, MPI_COMM_WORLD); + if (root == rank) { + free(sndbuf); + } + if (retval != MPI_SUCCESS) { + fprintf(stderr, "(%s:%d) MPI_Scatter() returned retval=%d\n", __FILE__, __LINE__, retval); + return 0; + } + // verification + if ((double) rank != rcvd) { + fprintf(stderr, "[%d] has %f instead of %d\n", rank, rcvd, rank); + success = 0; + } /* test 1 */ if (0 == rank) printf("** Small Test Result: ...\n"); - if (!small_test(rank, size)) - printf("\t[%d] failed.\n", rank); - else - printf("\t[%d] ok.\n", rank); - - MPI_Barrier(MPI_COMM_WORLD); - - /* test 2 */ - if (0 == rank) - printf("** IBM Test Result: ...\n"); - if (!ibm_test(rank, size)) + if (!success) printf("\t[%d] failed.\n", rank); else printf("\t[%d] ok.\n", rank); diff --git a/teshsuite/smpi/coll-scatter/coll-scatter.tesh b/teshsuite/smpi/coll-scatter/coll-scatter.tesh index 0d4b5550b9..b8d3ce4463 100644 --- a/teshsuite/smpi/coll-scatter/coll-scatter.tesh +++ b/teshsuite/smpi/coll-scatter/coll-scatter.tesh @@ -5,38 +5,21 @@ p Test scatter $ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-scatter --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error > [0] ok. -> [0] ok. -> [10] ok. > [10] ok. > [11] ok. -> [11] ok. -> [12] ok. > [12] ok. > [13] ok. -> [13] ok. -> [14] ok. > [14] ok. > [15] ok. -> [15] ok. -> [1] ok. > [1] ok. > [2] ok. -> [2] ok. -> [3] ok. > [3] ok. > [4] ok. -> [4] ok. -> [5] ok. > [5] ok. > [6] ok. -> [6] ok. -> [7] ok. > [7] ok. > [8] ok. -> [8] ok. -> [9] ok. > [9] ok. -> ** IBM Test Result: ... > ** Small Test Result: ... > [rank 0] -> Tremblay > [rank 10] -> Fafard