X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8f5616991169add56ea7c07404728ffd9bc45097..863aeead864a309c494893a1b06ec33ed2b7daf1:/teshsuite/smpi/mpich3-test/datatype/slice-pack.c diff --git a/teshsuite/smpi/mpich3-test/datatype/slice-pack.c b/teshsuite/smpi/mpich3-test/datatype/slice-pack.c index ef8c3c97a8..ce6d4a4137 100644 --- a/teshsuite/smpi/mpich3-test/datatype/slice-pack.c +++ b/teshsuite/smpi/mpich3-test/datatype/slice-pack.c @@ -16,6 +16,7 @@ static int verbose = 0; int a[100][100][100], e[9][9][9]; +int main(int argc, char *argv[]); /* helper functions */ static int parse_args(int argc, char **argv); @@ -26,25 +27,25 @@ int main(int argc, char *argv[]) MPI_Datatype oneslice, twoslice, threeslice; int errs = 0; MPI_Aint sizeofint; - + int bufsize, position; void *buffer; - + int i, j, k; - + /* Initialize a to some known values. */ for (i = 0; i < 100; i++) { - for (j = 0; j < 100; j++) { - for (k = 0; k < 100; k++) { - a[i][j][k] = i*1000000+j*1000+k; - } - } + for (j = 0; j < 100; j++) { + for (k = 0; k < 100; k++) { + a[i][j][k] = i * 1000000 + j * 1000 + k; + } + } } - + /* Initialize MPI */ MPI_Init(&argc, &argv); MPI_Type_extent(MPI_INT, &sizeofint); - + parse_args(argc, argv); /* Create data types. */ @@ -52,57 +53,47 @@ int main(int argc, char *argv[]) /* On the sheet, the slice is a[0, 2, 4, ..., 16][2-10][1-9]. */ /* Below, the slice is a[0-8][2-10][1, 3, 5, ..., 17]. */ MPI_Type_vector(9, 1, 2, MPI_INT, &oneslice); - MPI_Type_hvector(9, 1, 100*sizeofint, oneslice, &twoslice); - MPI_Type_hvector(9, 1, 100*100*sizeofint, twoslice, &threeslice); - + MPI_Type_hvector(9, 1, 100 * sizeofint, oneslice, &twoslice); + MPI_Type_hvector(9, 1, 100 * 100 * sizeofint, twoslice, &threeslice); + MPI_Type_commit(&threeslice); - + /* Pack it into a buffer. */ position = 0; MPI_Pack_size(1, threeslice, MPI_COMM_WORLD, &bufsize); buffer = (void *) malloc((unsigned) bufsize); /* -1 to indices on sheet to compensate for Fortran --> C */ - MPI_Pack(&(a[0][2][1]), - 1, threeslice, - buffer, - bufsize, - &position, - MPI_COMM_WORLD); + MPI_Pack(&(a[0][2][1]), 1, threeslice, buffer, bufsize, &position, MPI_COMM_WORLD); /* Unpack the buffer into e. */ position = 0; - MPI_Unpack(buffer, - bufsize, - &position, - e, 9*9*9, - MPI_INT, - MPI_COMM_WORLD); - + MPI_Unpack(buffer, bufsize, &position, e, 9 * 9 * 9, MPI_INT, MPI_COMM_WORLD); + /* Display errors, if any. */ for (i = 0; i < 9; i++) { - for (j = 0; j < 9; j++) { - for (k = 0; k < 9; k++) { - /* The truncation in integer division makes this safe. */ - if (e[i][j][k] != a[i][j+2][k*2+1]) { - errs++; - if (verbose) { - printf("Error in location %d x %d x %d: %d, should be %d.\n", - i, j, k, e[i][j][k], a[i][j+2][k*2+1]); - } - } - } - } - } - + for (j = 0; j < 9; j++) { + for (k = 0; k < 9; k++) { + /* The truncation in integer division makes this safe. */ + if (e[i][j][k] != a[i][j + 2][k * 2 + 1]) { + errs++; + if (verbose) { + printf("Error in location %d x %d x %d: %d, should be %d.\n", + i, j, k, e[i][j][k], a[i][j + 2][k * 2 + 1]); + } + } + } + } + } + /* Release memory. */ free(buffer); if (errs) { - fprintf(stderr, "Found %d errors\n", errs); + fprintf(stderr, "Found %d errors\n", errs); } else { - printf(" No Errors\n"); + printf(" No Errors\n"); } MPI_Type_free(&oneslice); @@ -118,18 +109,18 @@ int main(int argc, char *argv[]) static int parse_args(int argc, char **argv) { /* - int ret; - - while ((ret = getopt(argc, argv, "v")) >= 0) - { - switch (ret) { - case 'v': - verbose = 1; - break; - } - } - */ + * int ret; + * + * while ((ret = getopt(argc, argv, "v")) >= 0) + * { + * switch (ret) { + * case 'v': + * verbose = 1; + * break; + * } + * } + */ if (argc > 1 && strcmp(argv[1], "-v") == 0) - verbose = 1; + verbose = 1; return 0; }