ExCALIBUR-NEPTUNE / NESO

MIT License
4 stars 4 forks source link

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

Open matt-graham opened 1 year ago

matt-graham commented 1 year ago

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.

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 Configuration:

Checklist:

mbukaea commented 1 year ago

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 commented 1 year ago

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 https://github.com/ExCALIBUR-NEPTUNE/NESO-Particles/issues/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 commented 1 year ago

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 https://github.com/ExCALIBUR-NEPTUNE/NESO-Particles/issues/37 which possibly means the latter has been resolved by some of the changes in NESO-particles since I first raised that issue?

cmacmackin commented 1 year ago

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