From a1cb46df807b8423fcd3bcf28f00b738e291f7a1 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 11:06:05 -0500 Subject: [PATCH 1/7] Make the h5fuse.sh utility available to parallel subfiling tests so h5fuse testing is not skipped. --- configure.ac | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index fadd1c1f47c..15f7bb4e69e 100644 --- a/configure.ac +++ b/configure.ac @@ -4206,6 +4206,11 @@ AC_CONFIG_FILES([Makefile hl/fortran/examples/run-hlfortran-ex.sh]) AC_CONFIG_FILES([utils/subfiling_vfd/h5fuse.sh], [chmod +x utils/subfiling_vfd/h5fuse.sh]) +if test -n "$TESTPARALLEL"; then + if test "X$SUBFILING_VFD" = "Xyes"; then + AC_CONFIG_LINKS([testpar/h5fuse.sh:utils/subfiling_vfd/h5fuse.sh]) + fi +fi AC_CONFIG_COMMANDS([.classes], [], [$MKDIR_P java/src/.classes; $MKDIR_P java/test/.classes; From 91c77d0311e04b59be8fdbb44fc46c7a0c76a6e8 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 11:32:38 -0500 Subject: [PATCH 2/7] enable building subfiling with building parallel --- .github/workflows/linux-nvhpc.yml | 2 +- .github/workflows/main-auto-par.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux-nvhpc.yml b/.github/workflows/linux-nvhpc.yml index 7a24b07c3eb..0599a834738 100644 --- a/.github/workflows/linux-nvhpc.yml +++ b/.github/workflows/linux-nvhpc.yml @@ -50,7 +50,7 @@ jobs: export OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvfortran export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/cuda/12.2/lib64:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/lib export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH - cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON + cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_SUBFILING_VFD:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON cat build/CMakeCache.txt cmake --build build ctest --test-dir build --output-on-failure diff --git a/.github/workflows/main-auto-par.yml b/.github/workflows/main-auto-par.yml index 5f92836595e..790b20ae3fe 100644 --- a/.github/workflows/main-auto-par.yml +++ b/.github/workflows/main-auto-par.yml @@ -54,6 +54,7 @@ jobs: --with-default-api-version=v114 \ --enable-shared \ --enable-parallel \ + --enable-subfiling-vfd \ --disable-cxx \ --disable-fortran \ --disable-java \ @@ -111,6 +112,7 @@ jobs: --with-default-api-version=v114 \ --enable-shared \ --enable-parallel \ + --enable-subfiling-vfd \ --disable-cxx \ --disable-fortran \ --disable-java \ From 82bc7497364c04914c281a1c7081008fd9a7a147 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 11:34:09 -0500 Subject: [PATCH 3/7] rm dup. --- .github/workflows/linux-nvhpc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux-nvhpc.yml b/.github/workflows/linux-nvhpc.yml index 0599a834738..9227a64f35b 100644 --- a/.github/workflows/linux-nvhpc.yml +++ b/.github/workflows/linux-nvhpc.yml @@ -50,7 +50,7 @@ jobs: export OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvfortran export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/cuda/12.2/lib64:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/lib export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH - cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_SUBFILING_VFD:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON + cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_SUBFILING_VFD:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON cat build/CMakeCache.txt cmake --build build ctest --test-dir build --output-on-failure From 2ab0710511c85349880d8c5ea2abfc297314d44d Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 12:58:22 -0500 Subject: [PATCH 4/7] addressed unused variable --- src/H5FDsubfiling/H5FDsubfile_int.c | 1 + src/H5FDsubfiling/H5FDsubfiling_priv.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/H5FDsubfiling/H5FDsubfile_int.c b/src/H5FDsubfiling/H5FDsubfile_int.c index 68deb832adf..cb210b6e4a6 100644 --- a/src/H5FDsubfiling/H5FDsubfile_int.c +++ b/src/H5FDsubfiling/H5FDsubfile_int.c @@ -347,6 +347,7 @@ H5FD__subfiling__get_real_eof(hid_t context_id, int64_t *logical_eof_ptr) assert(ioc_rank >= 0); assert(ioc_rank < n_io_concentrators); + CANBE_UNUSED(ioc_rank); assert(sf_eofs[i] == -1); sf_eofs[i] = recv_msg[(3 * i) + 1]; diff --git a/src/H5FDsubfiling/H5FDsubfiling_priv.h b/src/H5FDsubfiling/H5FDsubfiling_priv.h index 08fef7d1a01..9cc32f14abf 100644 --- a/src/H5FDsubfiling/H5FDsubfiling_priv.h +++ b/src/H5FDsubfiling/H5FDsubfiling_priv.h @@ -63,4 +63,6 @@ H5_DLL herr_t H5FD__subfiling__get_real_eof(hid_t context_id, int64_t *logical_e } #endif +#define CANBE_UNUSED(X) (void)(X) + #endif /* H5FDsubfiling_priv_H */ From 4d0a544e1f9395420c454cde71e62ecc7b6c47f0 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 13:41:22 -0500 Subject: [PATCH 5/7] addressed unused variable --- src/H5FDsubfiling/H5FDioc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/H5FDsubfiling/H5FDioc.c b/src/H5FDsubfiling/H5FDioc.c index 0dfcc3607d9..cff80c7829d 100644 --- a/src/H5FDsubfiling/H5FDioc.c +++ b/src/H5FDsubfiling/H5FDioc.c @@ -32,6 +32,8 @@ #include "H5MMprivate.h" /* Memory management */ #include "H5Pprivate.h" /* Property lists */ +#define CANBE_UNUSED(X) (void)(X) + /* The driver identification number, initialized at runtime */ static hid_t H5FD_IOC_g = H5I_INVALID_HID; @@ -1223,6 +1225,7 @@ H5FD__ioc_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUS H5FD_IOC_LOG_CALL(__func__); assert(file && file->pub.cls); + CANBE_UNUSED(file); assert(buf); /* Check for overflow conditions */ From 6996e7ddb6007faf72feef398932ff9b47e35304 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 14:17:14 -0500 Subject: [PATCH 6/7] remove adding actions for subfiling with Nvidia --- .github/workflows/linux-nvhpc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux-nvhpc.yml b/.github/workflows/linux-nvhpc.yml index 9227a64f35b..06fd40a7c4f 100644 --- a/.github/workflows/linux-nvhpc.yml +++ b/.github/workflows/linux-nvhpc.yml @@ -50,7 +50,7 @@ jobs: export OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvfortran export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/cuda/12.2/lib64:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/lib export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH - cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_SUBFILING_VFD:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON + cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON cat build/CMakeCache.txt cmake --build build ctest --test-dir build --output-on-failure From ff7da7478bd91b6da2eececdc1c490b1808669c2 Mon Sep 17 00:00:00 2001 From: Scot Breitenfeld Date: Wed, 20 Sep 2023 16:16:29 -0500 Subject: [PATCH 7/7] warning clean-up: replaced assert with GOTO_ERROR --- src/H5FDsubfiling/H5subfiling_common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/H5FDsubfiling/H5subfiling_common.c b/src/H5FDsubfiling/H5subfiling_common.c index 50ca6afcb31..0362ab40d89 100644 --- a/src/H5FDsubfiling/H5subfiling_common.c +++ b/src/H5FDsubfiling/H5subfiling_common.c @@ -1365,7 +1365,8 @@ init_app_layout(sf_topology_t *app_topology, MPI_Comm comm, MPI_Comm node_comm) if (app_layout->layout[i].node_local_rank == 0) app_layout->node_count++; - assert(app_layout->node_count > 0); + if (app_layout->node_count <= 0) + H5_SUBFILING_GOTO_ERROR(H5E_VFL, H5E_CANTGET, FAIL, "node count less than or equal to zero"); if (NULL == (app_layout->node_ranks = malloc((size_t)app_layout->node_count * sizeof(*app_layout->node_ranks))))