Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin hdf5 and intel-oneapi-mkl package versions+ document required oneAPI compiler version #215

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

matt-graham
Copy link

@matt-graham matt-graham commented Nov 2, 2023

Description

Pins hdf5 package to 1.12.2 and intel-oneapi-mkl to 2022.1.0 and adds pin to version 2022.1.0 to instructions for installing intel-oneapi-compilers package using Spack in README.

Fixes #210 and fixes ExCALIBUR-NEPTUNE/NESO-Particles#37 (also related to issue in #202).

With the updated spec here, I can build locally on Ubuntu 20.04 using both gcc-11.3.0 and oneapi-2022.1.0 compilers.

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change)
  • New feature (non-breaking change which adds functionality)
  • API change (breaks downstream workflows and requires major semver bump)
  • Requires documentation updates

Testing

Please describe the tests that you ran to verify your changes and provide instructions for reproducibility. Please also list any relevant details for your test configuration.

  • Test Foo in /test/path/to/file_for_test_Foo.cpp
  • Description of test Foo
  • Test Bar in /test/path/to/file_for_test_Bar.cpp
  • Description of test Bar

Test Configuration:

  • OS:
  • SYCL implementation:
  • MPI details:
  • Hardware:

Checklist:

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any new dependencies are automatically built for users via cmake
  • I have used understandable variable names
  • I have run clang-format against my *.hpp and *.cpp changes
  • I have run cmake-format against my changes to CMakeLists.txt
  • I have run black against changes to *.py
  • I have made corresponding changes to the documentation
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings

@mbukaea
Copy link
Collaborator

mbukaea commented Nov 7, 2023

Given HDF5 version 1.14 added many new features which will be relevant to the Exascale, I don't think pinning hdf5 at version 1.12 is wise. In the case of some features 1.14 is not backwards compatible with 1.12, so if we was to design NESO to make use of 1.12, we would need a redesign in future if we used such features, when a later version of HDF5 was used. One such feature is mentioned briefly in the first bullet point of http://computer.org/csdl/journal/td/2022/04/09490299/1vmGU9IuFji

@matt-graham
Copy link
Author

Adding a pin here does not necessarily force a longer term limitation to HDF5 v1.12 though right? This can easily be updated again in future as and when NESO builds against newer HDF5 versions, but as described in ExCALIBUR-NEPTUNE/NESO-Particles#37 currently NESO does not appear to build with HDF5 v1.14. When I last tried without the pin in the spec, the HDF5 version pulled in by Spack is hdf5-1.14.1-2, and so currently NESO cannot be installed with Spack without manually editing the spack.specs entry in spack.yaml. This is just mean to address that issue so that at least in the interim NESO can be built with Spack.

@matt-graham
Copy link
Author

Just tried running spack install from current main (with gcc-11.3.0 and oneapi-2022.1.0) with concretized specs giving hdf5@1.14.1-2 and I get similar errors in neso: Executing phase: 'cmake' for both compilers:

Error: ProcessError: Command exited with status 1:
...
1 error found in build log:
     8     -- Git revision: 0d3c970d7e7c57ecd8598173ddd154f8ca6ebc23
     9     -- Git repo state: CLEAN
     10    -- Using NESO_PARTICLES_DEVICE_TYPE_CPU
     11    -- HDF5 found
     12    -- HDF5_IS_PARALLEL ON
     13    -- Configuring done (5.3s)
  >> 14    CMake Error at /home/matt/projects/spack/opt/spack/linux-ubuntu22.04-skylake/oneapi-2022.1.0/hdf5-1.14.1-2-yyy4j42jjm2rn6r7uomgiq3hxdu2zock/cmake/hdf5-targets.cmake:68 (set_target_properties):
     15      The link interface of target "hdf5-shared" contains:
     16
     17        MPI::MPI_C
     18
     19      but the target was not found.  Possible reasons include:
     20

and

Error: ProcessError: Command exited with status 1:
...
1 error found in build log:
     6     -- Git repo state: CLEAN
     7     -- Enable coverage: OFF
     8     -- Using NESO_PARTICLES_DEVICE_TYPE_CPU
     9     -- HDF5 found
     10    -- HDF5_IS_PARALLEL ON
     11    -- Configuring done (1.6s)
  >> 12    CMake Error at /home/matt/projects/spack/opt/spack/linux-ubuntu22.04-skylake/gcc-11.3.0/hdf5-1.14.1-2-gzlvytoytcsyeeqcta5psqzyvqdvrs5m/cmake/hdf5-targets.cmake:68 (set_target_properties):
     13      The link interface of target "hdf5-shared" contains:
     14
     15        MPI::MPI_C
     16
     17      but the target was not found.  Possible reasons include:
     18

which seems to be specifically hitting the issue in #202 but not ExCALIBUR-NEPTUNE/NESO-Particles#37 which possibly means the latter has been resolved by some of the changes in NESO-particles since I first raised that issue?

@cmacmackin
Copy link
Contributor

cmacmackin commented Nov 13, 2023

ExCALIBUR-NEPTUNE/NESO-Particles#47 should address the issue with recent versions of HDF5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants