From 6d2d92ddec5aac301d70541aca5b6fc5b94f19e9 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Fri, 20 Dec 2019 06:30:23 -0700 Subject: [PATCH] added new tests to cmake, also additional test development --- nc_test4/CMakeLists.txt | 1 + nc_test4/run_par_test.sh.in | 5 +++ nc_test4/tst_parallel_zlib2.c | 77 +++++++++++++++++------------------ 3 files changed, 43 insertions(+), 40 deletions(-) diff --git a/nc_test4/CMakeLists.txt b/nc_test4/CMakeLists.txt index 524312681..48a017eba 100644 --- a/nc_test4/CMakeLists.txt +++ b/nc_test4/CMakeLists.txt @@ -86,6 +86,7 @@ IF(TEST_PARALLEL4) build_bin_test(tst_parallel4) build_bin_test(tst_parallel5) build_bin_test(tst_parallel_zlib) + build_bin_test(tst_parallel_zlib2) build_bin_test(tst_nc4perf) build_bin_test(tst_mode) build_bin_test(tst_simplerw_coll_r) diff --git a/nc_test4/run_par_test.sh.in b/nc_test4/run_par_test.sh.in index cd789f237..4fcb680df 100644 --- a/nc_test4/run_par_test.sh.in +++ b/nc_test4/run_par_test.sh.in @@ -45,3 +45,8 @@ echo echo "Parallel I/O test with zlib." @MPIEXEC@ -n 1 ./tst_parallel_zlib @MPIEXEC@ -n 4 ./tst_parallel_zlib + +echo +echo "Parallel I/O more tests with zlib." +@MPIEXEC@ -n 1 ./tst_parallel_zlib2 +@MPIEXEC@ -n 4 ./tst_parallel_zlib2 diff --git a/nc_test4/tst_parallel_zlib2.c b/nc_test4/tst_parallel_zlib2.c index 999a20cf2..104511e3c 100644 --- a/nc_test4/tst_parallel_zlib2.c +++ b/nc_test4/tst_parallel_zlib2.c @@ -11,7 +11,7 @@ Ed Hartnett, 12/19/2019 #include "err_macros.h" #include -#define FILE "tst_parallel_zlib2.nc" +#define FILE_NAME "tst_parallel_zlib2.nc" #define NDIMS 3 #define DIMSIZE 24 #define QTR_DATA (DIMSIZE * DIMSIZE / 4) @@ -32,68 +32,65 @@ main(int argc, char **argv) int i, res; int slab_data[DIMSIZE * DIMSIZE / 4]; /* one slab */ - char file_name[NC_MAX_NAME + 1]; /* Initialize MPI. */ MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); - if (mpi_rank == 0) - { - printf("\n*** Testing parallel writes with zlib some more.\n"); - printf("*** testing simple write with zlib..."); - } - /* Create phony data. We're going to write a 24x24 array of ints, in 4 sets of 144. */ for (i = 0; i < DIMSIZE * DIMSIZE / 4; i++) slab_data[i] = mpi_rank; - /* Create a parallel netcdf-4 file. */ - /*nc_set_log_level(3);*/ - /* sprintf(file_name, "%s/%s", TEMP_LARGE, FILE); */ - sprintf(file_name, "%s", FILE); - if ((res = nc_create_par(file_name, NC_NETCDF4, comm, info, &ncid))) ERR; + if (!mpi_rank) + { + printf("\n*** Testing parallel writes with zlib some more.\n"); + printf("*** testing simple write with zlib..."); + } + { + /* Create a parallel netcdf-4 file. */ + if ((res = nc_create_par(FILE_NAME, NC_NETCDF4, comm, info, &ncid))) ERR; - /* Create three dimensions. */ - if (nc_def_dim(ncid, "d1", DIMSIZE, dimids)) ERR; - if (nc_def_dim(ncid, "d2", DIMSIZE, &dimids[1])) ERR; - if (nc_def_dim(ncid, "d3", NUM_SLABS, &dimids[2])) ERR; + /* Create three dimensions. */ + if (nc_def_dim(ncid, "d1", DIMSIZE, dimids)) ERR; + if (nc_def_dim(ncid, "d2", DIMSIZE, &dimids[1])) ERR; + if (nc_def_dim(ncid, "d3", NUM_SLABS, &dimids[2])) ERR; - /* Create one var. */ - if ((res = nc_def_var(ncid, "v1", NC_INT, NDIMS, dimids, &v1id))) ERR; - if ((res = nc_def_var_deflate(ncid, 0, 0, 1, 1))) ERR; + /* Create one var. Turn on deflation. */ + if ((res = nc_def_var(ncid, "v1", NC_INT, NDIMS, dimids, &v1id))) ERR; + if ((res = nc_def_var_deflate(ncid, 0, 0, 1, 1))) ERR; - /* Write metadata to file. */ - if ((res = nc_enddef(ncid))) ERR; + /* Write metadata to file. */ + if ((res = nc_enddef(ncid))) ERR; - /* Set up slab for this process. */ - start[0] = mpi_rank * DIMSIZE/mpi_size; - start[1] = 0; - count[0] = DIMSIZE/mpi_size; - count[1] = DIMSIZE; - count[2] = 1; - /*printf("mpi_rank=%d start[0]=%d start[1]=%d count[0]=%d count[1]=%d\n", - mpi_rank, start[0], start[1], count[0], count[1]);*/ + /* Set up slab for this process. */ + start[0] = mpi_rank * DIMSIZE/mpi_size; + start[1] = 0; + count[0] = DIMSIZE/mpi_size; + count[1] = DIMSIZE; + count[2] = 1; + /*printf("mpi_rank=%d start[0]=%d start[1]=%d count[0]=%d count[1]=%d\n", + mpi_rank, start[0], start[1], count[0], count[1]);*/ - if (nc_var_par_access(ncid, v1id, NC_COLLECTIVE)) ERR; + if (nc_var_par_access(ncid, v1id, NC_COLLECTIVE)) ERR; /* if (nc_var_par_access(ncid, v1id, NC_INDEPENDENT)) ERR;*/ - /* Write slabs of phoney data. */ - for (start[2] = 0; start[2] < NUM_SLABS; start[2]++) - if (nc_put_vara_int(ncid, v1id, start, count, slab_data)) ERR; + /* Write slabs of data. */ + for (start[2] = 0; start[2] < NUM_SLABS; start[2]++) + if (nc_put_vara_int(ncid, v1id, start, count, slab_data)) ERR; - /* Close the netcdf file. */ - if ((res = nc_close(ncid))) ERR; + /* Close the netcdf file. */ + if ((res = nc_close(ncid))) ERR; + } + if (!mpi_rank) + SUMMARIZE_ERR; /* Shut down MPI. */ MPI_Finalize(); - if (mpi_rank == 0) - { - SUMMARIZE_ERR; + if (!mpi_rank) FINAL_RESULTS; - } + return 0; }