Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-nvompi-2024.09.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name = 'HDF5'
# Note: Odd minor releases are only RCs and should not be used.
version = '1.14.5'

homepage = 'https://portal.hdfgroup.org/display/support'
description = """HDF5 is a data model, library, and file format for storing and managing data.
It supports an unlimited variety of datatypes, and is designed for flexible
and efficient I/O and for high volume and complex data."""

toolchain = {'name': 'nvompi', 'version': '2024.9'}
toolchainopts = {'pic': True, 'usempi': True}


source_urls = ['https://github.com/HDFGroup/hdf5/archive']
sources = ['hdf5_%(version)s.tar.gz']
patches = ['HDF5-1.14.5_nvompi_fix_use_mpi.patch']
checksums = [
'c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350', # hdf5_1.14.5.tar.gz
'60ef02bdd12ae62d3f284d2434728dc6b9bad61ecacc7ab9320001ce3c337df4', # HDF5-1.14.5_nvompi_fix_use_mpi.patch
]

dependencies = [
('zlib', '1.3.1'),
('Szip', '2.1.1'),
]

postinstallcmds = [
'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5c++',
'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5pcc',
]

moduleclass = 'data'
88 changes: 88 additions & 0 deletions easybuild/easyconfigs/h/HDF5/HDF5-1.14.5_nvompi_fix_use_mpi.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Author: maxim-masterov (SURF)
# What: Align MPI version with other source files from `testpar` and don't use MPI_F08
diff -Nru hdf5-hdf5_1.14.5.orig/fortran/testpar/async.F90 hdf5-hdf5_1.14.5/fortran/testpar/async.F90
--- hdf5-hdf5_1.14.5.orig/fortran/testpar/async.F90 2025-05-26 18:01:40.435743000 +0200
+++ hdf5-hdf5_1.14.5/fortran/testpar/async.F90 2025-05-26 18:28:22.228635794 +0200
@@ -17,11 +17,7 @@

MODULE test_async_APIs

-#ifdef H5_HAVE_MPI_F08
- USE MPI_F08
-#else
USE MPI
-#endif
USE HDF5
USE TH5_MISC
USE TH5_MISC_GEN
@@ -390,12 +386,7 @@

INTEGER :: error ! Error flags
INTEGER(KIND=MPI_INTEGER_KIND) :: mpierror ! MPI error flag
-#ifdef H5_HAVE_MPI_F08
- TYPE(MPI_COMM) :: comm
- TYPE(MPI_INFO) :: info
-#else
INTEGER(KIND=MPI_INTEGER_KIND) :: comm, info
-#endif
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_size, mpi_rank

comm = MPI_COMM_WORLD
@@ -595,12 +586,7 @@

INTEGER :: error
INTEGER(KIND=MPI_INTEGER_KIND) :: mpierror ! MPI error flag
-#ifdef H5_HAVE_MPI_F08
- TYPE(MPI_COMM) :: comm
- TYPE(MPI_INFO) :: info
-#else
INTEGER(KIND=MPI_INTEGER_KIND) :: comm, info
-#endif
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_size, mpi_rank

comm = MPI_COMM_WORLD
@@ -728,12 +714,7 @@

INTEGER :: error ! Error flags
INTEGER(KIND=MPI_INTEGER_KIND) :: mpierror ! MPI error flag
-#ifdef H5_HAVE_MPI_F08
- TYPE(MPI_COMM) :: comm
- TYPE(MPI_INFO) :: info
-#else
INTEGER(KIND=MPI_INTEGER_KIND) :: comm, info
-#endif
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_size, mpi_rank

comm = MPI_COMM_WORLD
@@ -839,11 +820,7 @@

INTEGER :: error ! Error flags
INTEGER(KIND=MPI_INTEGER_KIND) :: mpierror ! MPI error flag
-#ifdef H5_HAVE_MPI_F08
- TYPE(MPI_COMM) :: comm
-#else
INTEGER(KIND=MPI_INTEGER_KIND) :: comm
-#endif
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_size, mpi_rank

INTEGER(SIZE_T) :: count
@@ -1267,6 +1244,7 @@
PROGRAM async_test
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_INT64_T
USE test_async_APIs
+ USE MPI

IMPLICIT NONE

@@ -1275,11 +1253,7 @@
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_size ! number of processes in the group of communicator
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_rank ! rank of the calling process in the communicator
INTEGER(KIND=MPI_INTEGER_KIND) :: required, provided
-#ifdef H5_HAVE_MPI_F08
- TYPE(MPI_DATATYPE) :: mpi_int_type
-#else
INTEGER(KIND=MPI_INTEGER_KIND) :: mpi_int_type
-#endif

INTEGER(HID_T) :: vol_id
INTEGER :: hdferror
Loading