diff options
author | Dana Robinson <43805+derobins@users.noreply.github.com> | 2022-04-21 05:24:35 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-21 05:24:35 (GMT) |
commit | ec14985c8555bda02021568ea20295384a2cef7e (patch) | |
tree | 491c1f08a68d92e400d939d96fefdc7bfef57ddc /testpar | |
parent | bc62da7eb911727497475d1cc90991230f33fa3d (diff) | |
download | hdf5-ec14985c8555bda02021568ea20295384a2cef7e.zip hdf5-ec14985c8555bda02021568ea20295384a2cef7e.tar.gz hdf5-ec14985c8555bda02021568ea20295384a2cef7e.tar.bz2 |
VFD SWMR: Merges from develop (#1670)
* Cleans up SWMR test scripts (both legacy and VFD)
* Brings over format source changes for Java
* Normalization of HL, Fortran, C++, Java w/ develop
* Removes the STATIC flavor of FUNC_ENTER macros (#1622)
* Removes the STATIC flavor of FUNC_ENTER macros
* Remove H5_NO_ALIGNMENT_RESTRICTIONS (#1426)
* Do not conditionally compile code that uses a pointer dereference
and assignment to copy a potentially unaligned variable to aligned
automatic storage, or vice versa. Instead, always use naked `memcpy(3)`s.
Disassembling the generated code reveals that the `memcpy(3)`s optimize
(`-O3`) to a single `mov` instruction for x86_64, which is not strict
about alignment.
This change reduces the size of code and scripts by 143 lines, eases
our way to cross-compilation, and avoids invoking undefined behavior.
* Committing clang-format changes
* Per discussion, use HD and add comments.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Removes unused definitions from module headers (#1624)
* Misc stuff from develop (includes some parallel things)
* Brings over SWMR test quiet mode changes from develop
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'testpar')
-rw-r--r-- | testpar/t_2Gio.c | 2 | ||||
-rw-r--r-- | testpar/t_cache.c | 23 | ||||
-rw-r--r-- | testpar/t_dset.c | 2 | ||||
-rw-r--r-- | testpar/t_mpi.c | 38 | ||||
-rw-r--r-- | testpar/t_prop.c | 14 |
5 files changed, 60 insertions, 19 deletions
diff --git a/testpar/t_2Gio.c b/testpar/t_2Gio.c index 911be2c..79241c6 100644 --- a/testpar/t_2Gio.c +++ b/testpar/t_2Gio.c @@ -3644,7 +3644,7 @@ test_actual_io_mode(int selection_mode) /* Set the threshold number of processes per chunk to twice mpi_size. * This will prevent the threshold from ever being met, thus forcing * multi chunk io instead of link chunk io. - * This is via deault. + * This is via default. */ if (multi_chunk_io) { /* force multi-chunk-io by threshold */ diff --git a/testpar/t_cache.c b/testpar/t_cache.c index 70ada01..d889b3b 100644 --- a/testpar/t_cache.c +++ b/testpar/t_cache.c @@ -325,7 +325,7 @@ struct mssg_t { unsigned magic; }; -MPI_Datatype mpi_mssg_t; /* for MPI derived type created from mssg */ +MPI_Datatype mpi_mssg_t = MPI_DATATYPE_NULL; /* for MPI derived type created from mssg */ /*****************************************************************************/ /************************** function declarations ****************************/ @@ -565,8 +565,8 @@ set_up_file_communicator(void) int mpi_result; int num_excluded_ranks; int excluded_ranks[1]; - MPI_Group file_group; - MPI_Group world_group; + MPI_Group file_group = MPI_GROUP_NULL; + MPI_Group world_group = MPI_GROUP_NULL; if (success) { @@ -674,6 +674,12 @@ set_up_file_communicator(void) } } + if (file_group != MPI_GROUP_NULL) + MPI_Group_free(&file_group); + + if (world_group != MPI_GROUP_NULL) + MPI_Group_free(&world_group); + return (success); } /* set_up_file_communicator() */ @@ -1195,6 +1201,9 @@ takedown_derived_types(void) hbool_t success = TRUE; int result; + if (mpi_mssg_t == MPI_DATATYPE_NULL) + return (success); + result = MPI_Type_free(&mpi_mssg_t); if (result != MPI_SUCCESS) { @@ -6724,7 +6733,7 @@ smoke_check_6(int metadata_write_strategy) if (FALSE != entry_ptr->header.coll_access) { nerrors++; if (verbose) { - HDfprintf(stdout, "%d:%s: Entry inserted indepedently marked as collective.\n", + HDfprintf(stdout, "%d:%s: Entry inserted independently marked as collective.\n", world_mpi_rank, __func__); } } @@ -6780,7 +6789,7 @@ smoke_check_6(int metadata_write_strategy) if (FALSE != entry_ptr->header.coll_access) { nerrors++; if (verbose) { - HDfprintf(stdout, "%d:%s: Entry inserted indepedently marked as collective.\n", + HDfprintf(stdout, "%d:%s: Entry inserted independently marked as collective.\n", world_mpi_rank, __func__); } } @@ -7047,6 +7056,10 @@ finish: /* make sure all processes are finished before final report, cleanup * and exit. */ + + if (file_mpi_comm != MPI_COMM_NULL) + MPI_Comm_free(&file_mpi_comm); + MPI_Barrier(MPI_COMM_WORLD); if (MAINPROCESS) { /* only process 0 reports */ HDprintf("===================================\n"); diff --git a/testpar/t_dset.c b/testpar/t_dset.c index 8616bef..ee4438c 100644 --- a/testpar/t_dset.c +++ b/testpar/t_dset.c @@ -3202,7 +3202,7 @@ test_actual_io_mode(int selection_mode) /* Set the threshold number of processes per chunk to twice mpi_size. * This will prevent the threshold from ever being met, thus forcing * multi chunk io instead of link chunk io. - * This is via deault. + * This is via default. */ if (multi_chunk_io) { /* force multi-chunk-io by threshold */ diff --git a/testpar/t_mpi.c b/testpar/t_mpi.c index 96cbc4b..39d7722 100644 --- a/testpar/t_mpi.c +++ b/testpar/t_mpi.c @@ -768,6 +768,24 @@ test_mpio_derived_dtype(char *filename) return 1; } + if ((mpi_err = MPI_Type_free(&filetype)) != MPI_SUCCESS) { + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + HDprintf("MPI_Type_free failed (%s)\n", mpi_err_str); + return 1; + } + + if ((mpi_err = MPI_Type_free(&adv_filetype)) != MPI_SUCCESS) { + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + HDprintf("MPI_Type_free failed (%s)\n", mpi_err_str); + return 1; + } + + if ((mpi_err = MPI_Type_free(&filetypenew)) != MPI_SUCCESS) { + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + HDprintf("MPI_Type_free failed (%s)\n", mpi_err_str); + return 1; + } + if ((mpi_err = MPI_File_open(MPI_COMM_WORLD, filename, MPI_MODE_RDONLY, MPI_INFO_NULL, &fh)) != MPI_SUCCESS) { MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); @@ -848,7 +866,9 @@ test_mpio_special_collective(char *filename) { int mpi_size, mpi_rank; MPI_File fh; - MPI_Datatype etype, buftype, filetype; + MPI_Datatype etype; + MPI_Datatype filetype = MPI_BYTE; + MPI_Datatype buftype = MPI_BYTE; char mpi_err_str[MPI_MAX_ERROR_STRING]; int mpi_err_strlen; int mpi_err; @@ -906,10 +926,6 @@ test_mpio_special_collective(char *filename) return 1; } /* end if */ } /* end if */ - else { - filetype = MPI_BYTE; - buftype = MPI_BYTE; - } /* end else */ /* Open a file */ if ((mpi_err = MPI_File_open(MPI_COMM_WORLD, filename, MPI_MODE_RDWR | MPI_MODE_CREATE, MPI_INFO_NULL, @@ -931,6 +947,12 @@ test_mpio_special_collective(char *filename) return 1; } /* end if */ + if (filetype != MPI_BYTE && (mpi_err = MPI_Type_free(&filetype)) != MPI_SUCCESS) { + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + HDprintf("MPI_Type_free failed (%s)\n", mpi_err_str); + return 1; + } + /* Collectively write into the file */ if ((mpi_err = MPI_File_write_at_all(fh, mpi_off, writedata, bufcount, buftype, &mpi_stat)) != MPI_SUCCESS) { @@ -940,6 +962,12 @@ test_mpio_special_collective(char *filename) return 1; } /* end if */ + if (buftype != MPI_BYTE && (mpi_err = MPI_Type_free(&buftype)) != MPI_SUCCESS) { + MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); + HDprintf("MPI_Type_free failed (%s)\n", mpi_err_str); + return 1; + } + /* Close the file */ if ((mpi_err = MPI_File_close(&fh)) != MPI_SUCCESS) { MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen); diff --git a/testpar/t_prop.c b/testpar/t_prop.c index 606e100..930b895 100644 --- a/testpar/t_prop.c +++ b/testpar/t_prop.c @@ -535,10 +535,10 @@ external_links(void) for (i = 0; i < 2; i++) { - if (i == 0) { + comm = MPI_COMM_WORLD; + + if (i == 0) doIO = 1; - comm = MPI_COMM_WORLD; - } else { doIO = mpi_rank % 2; mrc = MPI_Comm_split(MPI_COMM_WORLD, doIO, mpi_rank, &comm); @@ -614,11 +614,11 @@ external_links(void) ret = H5Fclose(fid); VRFY((ret >= 0), "H5Fclose succeeded"); + } - if (i == 1) { - mrc = MPI_Comm_free(&comm); - VRFY((mrc == MPI_SUCCESS), "MPI_Comm_free succeeded"); - } + if (comm != MPI_COMM_WORLD) { + mrc = MPI_Comm_free(&comm); + VRFY((mrc == MPI_SUCCESS), "MPI_Comm_free succeeded"); } } |