summaryrefslogtreecommitdiffstats
path: root/testpar
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2022-04-21 05:24:35 (GMT)
committerGitHub <noreply@github.com>2022-04-21 05:24:35 (GMT)
commitec14985c8555bda02021568ea20295384a2cef7e (patch)
tree491c1f08a68d92e400d939d96fefdc7bfef57ddc /testpar
parentbc62da7eb911727497475d1cc90991230f33fa3d (diff)
downloadhdf5-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.c2
-rw-r--r--testpar/t_cache.c23
-rw-r--r--testpar/t_dset.c2
-rw-r--r--testpar/t_mpi.c38
-rw-r--r--testpar/t_prop.c14
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");
}
}