Skip to content

Commit

Permalink
Make HighFive patchable to allow PageBuffer in pHDF5. (#1784)
Browse files Browse the repository at this point in the history
* brion: update highfive dependency.

* Enable applying pagebuffer patch to highfive.
  • Loading branch information
1uc committed Jan 17, 2023
1 parent 5ab79fc commit be9b6c9
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 4 deletions.
3 changes: 2 additions & 1 deletion bluebrain/repo-bluebrain/packages/brion/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ class Brion(CMakePackage):
# TODO: bzip2 is a dependency of boost. Needed here because of linking
# issue (libboost_iostreams.so.1.68.0 not finding libbz2.so)
depends_on('bzip2')
depends_on('[email protected] +boost', when='@3.3.8:')
depends_on('highfive +boost', when='@3.3.9:')
depends_on('[email protected] +boost', when='@3.3.8')
depends_on('[email protected] +boost', when='@3.3.2:3.3.7')
depends_on('[email protected] +boost', when='@:3.3.1')
depends_on('mvdtool')
Expand Down
3 changes: 1 addition & 2 deletions bluebrain/repo-bluebrain/packages/morpho-kit/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ class MorphoKit(CMakePackage):
# The HighFive update is needed for paged HDF5 features. Unfortunately, the
# page buffer is artificially unsupported in pHDF5. Hence, we depend on a
# particular, patched version of HDF5.
depends_on('[email protected]:', when='@0.3.5:')
depends_on('[email protected]:+page_buffer_patch', when='@0.3.5:')
depends_on('[email protected]: +mpi+page_buffer_patch', when='@0.3.5:')

# MPI is needed for the morphology merger.
depends_on('mpi', when='@0.3.5:')
Expand Down
13 changes: 12 additions & 1 deletion bluebrain/repo-patches/packages/highfive/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,28 @@ class Highfive(CMakePackage):
variant('mpi', default=True, description='Support MPI')
variant('eigen', default=False, description='Support Eigen')
variant('xtensor', default=False, description='Support xtensor')
variant('page_buffer_patch', default=False, when="@2.6.2",
description='Allow using the pagebuffer with pHDF5.')

# Develop builds tests which require boost
conflicts('~boost', when='@develop')

depends_on('boost @1.41: +serialization+system', when='+boost')
depends_on('hdf5 ~mpi', when='~mpi')
depends_on('hdf5 +mpi', when='+mpi')
depends_on('hdf5 +mpi', when='+mpi~page_buffer_patch')

# Using the page buffer with pHDF5 requires HDF5 to be patched. This
# patch is currently only available for one version.
depends_on('[email protected] +page_buffer_patch+mpi', when='+mpi+page_buffer_patch')

depends_on('eigen', when='+eigen')
depends_on('xtensor', when='+xtensor')
depends_on('mpi', when='+mpi')

# Enables the `PageBufferSize` property list also when building against pHDF5.
patch('remove-page-buffer-phdf5-check_v2.6.2.patch', when="+page_buffer_patch+mpi",
sha256="72a74f603bc957a9069c8e20abe28f303c4cab36d5d0e23bdcd6c6636fefe1f0")

def cmake_args(self):
return [
'-DUSE_BOOST:Bool=' + str(self.spec.satisfies('+boost')),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
diff --git i/deps/catch2 w/deps/catch2
index 182c910..216713a 160000
--- i/deps/catch2
+++ w/deps/catch2
@@ -1 +1 @@
-Subproject commit 182c910b4b63ff587a3440e08f84f70497e49a81
+Subproject commit 216713a4066b79d9803d374f261ccb30c0fb451f
diff --git i/include/highfive/H5PropertyList.hpp w/include/highfive/H5PropertyList.hpp
index 916e903..b3848f7 100644
--- i/include/highfive/H5PropertyList.hpp
+++ w/include/highfive/H5PropertyList.hpp
@@ -327,7 +327,6 @@ class FileSpacePageSize {
hsize_t _page_size;
};

-#ifndef H5_HAVE_PARALLEL
/// \brief Set size of the page buffer.
///
/// Please, consult the upstream documentation of
@@ -360,7 +359,6 @@ class PageBufferSize {
unsigned _min_raw;
};
#endif
-#endif

/// \brief Set hints as to how many links to expect and their average length
///
diff --git i/include/highfive/bits/H5PropertyList_misc.hpp w/include/highfive/bits/H5PropertyList_misc.hpp
index a41707a..dcbba05 100644
--- i/include/highfive/bits/H5PropertyList_misc.hpp
+++ w/include/highfive/bits/H5PropertyList_misc.hpp
@@ -110,7 +110,6 @@ inline void FileSpacePageSize::apply(const hid_t list) const {
}
}

-#ifndef H5_HAVE_PARALLEL
inline PageBufferSize::PageBufferSize(size_t page_buffer_size,
unsigned min_meta_percent,
unsigned min_raw_percent)
@@ -124,7 +123,6 @@ inline void PageBufferSize::apply(const hid_t list) const {
}
}
#endif
-#endif

#ifdef H5_HAVE_PARALLEL

0 comments on commit be9b6c9

Please sign in to comment.