Skip to content

Commit

Permalink
Merge pull request #927 from climbfuji/bugfix/rel160_hercules
Browse files Browse the repository at this point in the history
Update site configs and documentation for spack-stack-1.6.0 for:

Hercules
Nautilus
Narwhal (Intel only so far)
S4
Discover
Also: submodule pointer update for spack for a PR required to build on these platforms (spack PR JCSDA/spack#386 already merged).

Note the workaround for Narwhal that uses an external node.js that is supplied via the compiler config while the correct solution (for after release 1.6.0) is being worked on.
  • Loading branch information
climbfuji authored Jan 3, 2024
2 parents b76ed22 + 22f2cdd commit 412b4a4
Show file tree
Hide file tree
Showing 10 changed files with 113 additions and 54 deletions.
4 changes: 0 additions & 4 deletions configs/sites/discover/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,6 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
libtool:
externals:
- spec: [email protected]
prefix: /usr
libxpm:
externals:
- spec: [email protected]
Expand Down
5 changes: 4 additions & 1 deletion configs/sites/hercules/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ compilers:
target: x86_64
modules:
- intel-oneapi-compilers/2023.1.0
environment: {}
environment:
set:
# https://github.com/ufs-community/ufs-weather-model/issues/2015#issuecomment-1864438186
I_MPI_EXTRA_FILESYSTEM: 'ON'
extra_rpaths: []
- compiler:
spec: [email protected]
Expand Down
11 changes: 4 additions & 7 deletions configs/sites/hercules/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ packages:
- mvapich2/2.3.7

### Modifications of common packages
# DH* TRY IF THIS IS STILL TRUE # Version 2.0.8 doesn't compile on Hercules
# DH* TRY IF THIS IS STILL TRUE wgrib2:
# DH* TRY IF THIS IS STILL TRUE version:: ['3.1.1']

### All other external packages listed alphabetically
autoconf:
Expand Down Expand Up @@ -84,10 +81,6 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
libtool:
externals:
- spec: [email protected]
prefix: /usr
m4:
externals:
- spec: [email protected]
Expand All @@ -109,6 +102,10 @@ packages:
prefix: /apps/spack-managed/gcc-11.3.1/qt-5.15.8-d47tsna6f5dylcpblkfgw4gpn2cucihd
modules:
- qt/5.15.8
sed:
externals:
- spec: [email protected]
prefix: /usr
subversion:
externals:
- spec: [email protected]
Expand Down
2 changes: 2 additions & 0 deletions configs/sites/narwhal/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ compilers::
modules:
- PrgEnv-intel/8.3.2
- intel-classic/2021.4.0
- node.js/20.10.0
environment:
prepend_path:
PATH: '/opt/cray/pe/gcc/10.3.0/snos/bin'
Expand All @@ -31,6 +32,7 @@ compilers::
modules:
- PrgEnv-gnu/8.3.2
- gcc/10.3.0
- node.js/20.10.0
environment:
prepend_path:
LD_LIBRARY_PATH: '/opt/cray/pe/libsci/22.08.1.1/GNU/9.1/x86_64/lib'
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/narwhal/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ packages:
prefix: /p/app/projects/NEPTUNE/spack-stack/qt-5.15.2/5.15.2/gcc_64
modules:
- qt/5.15.2
sed:
externals:
- spec: [email protected]
prefix: /usr
subversion:
externals:
- spec: [email protected]
Expand Down
8 changes: 4 additions & 4 deletions configs/sites/nautilus/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,6 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
libtool:
externals:
- spec: [email protected]
prefix: /usr
m4:
externals:
- spec: [email protected]
Expand All @@ -125,6 +121,10 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
sed:
externals:
- spec: [email protected]
prefix: /usr
tar:
externals:
- spec: [email protected]
Expand Down
23 changes: 23 additions & 0 deletions doc/modulefile_templates/node.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#%Module1.0

module-whatis "Provides an node.js-20.10.0 installation for use with spack."

# Only allow one instance of compiler to load
conflict ecflow

proc ModulesHelp { } {
puts stderr "Provides an node.js-20.10.0 installation for use with spack."
}

if { [ module-info mode load ] && ![ is-loaded gcc/10.3.0 ] } {
module load gcc/10.3.0
}

# Set this value
set NODEJS_PATH "/p/app/projects/NEPTUNE/spack-stack/node-js-20.10.0/gcc-10.3.0"

prepend-path PATH "${NODEJS_PATH}/bin"
prepend-path LD_LIBRARY_PATH "${NODEJS_PATH}/lib"
prepend-path LIBRARY_PATH "${NODEJS_PATH}/lib"
prepend-path CPATH "${NODEJS_PATH}/include"
prepend-path CMAKE_PREFIX_PATH "${NODEJS_PATH}"
22 changes: 21 additions & 1 deletion doc/source/MaintainersSection.rst
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ mysql
NAVY HPCMP Narwhal
------------------------------

On Narwhal, ``git-lfs``, ``qt``, ``ecflow``, and ``mysql`` need to be installed as a one-off before spack can be used.
On Narwhal, ``git-lfs``, ``qt``, ``ecflow``, and ``mysql`` need to be installed as a one-off before spack can be used. Also, temporarily it is necessary to install ``node.js`` as an external package to work around build errors for ``py-jupyter-server`` (see https://github.com/JCSDA/spack-stack/issues/928 and https://github.com/spack/spack/issues/41899).

git-lfs
The following instructions install ``git-lfs`` in ``/p/app/projects/NEPTUNE/spack-stack/git-lfs-2.10.0``. Version 2.10.0 is the default version for Narwhal. First, download the ``git-lfs`` RPM on a system with full internet access (e.g., Derecho) using ``wget https://download.opensuse.org/repositories/openSUSE:/Leap:/15.2/standard/x86_64/git-lfs-2.10.0-lp152.1.2.x86_64.rpm`` and copy this file to ``/p/app/projects/NEPTUNE/spack-stack/git-lfs-2.10.0/src``. Then switch to Narwhal and run the following commands.
Expand Down Expand Up @@ -397,6 +397,26 @@ ecflow
mysql
``mysql`` must be installed separately from ``spack`` using a binary tarball provided by the MySQL community. Follow the instructions in :numref:`Section %s <MaintainersSection_MySQL>` to install ``mysql`` in ``/p/app/projects/NEPTUNE/spack-stack/mysql-8.0.31``.

node.js
``node.js`` is difficult to install via ``spack``, but is needed to install certain Python packages. The complication is that when using a newer ``gcc`` compiler (either directly or as backend for ``icc`` etc.), the OS ``node.js`` errors out with unresolved symbols in the ``libstdc++`` library. Therefore, we need to install ``node.js`` with ``[email protected]`` loaded, and create modulefile ``node.js/20.10.0`` from template ``modulefiles/node.js``.

.. code-block:: console
module unload PrgEnv-cray
module load PrgEnv-gnu/8.3.2
module unload gcc
module load gcc/10.3.0
mkdir -p node-js-20.10.0/src && cd node-js-20.10.0/src
wget https://nodejs.org/dist/v20.10.0/node-v20.10.0.tar.gz
tar -xvzf node-v20.10.0.tar.gz
cd node-v20.10.0/
./configure --partly-static \
--prefix=/p/app/projects/NEPTUNE/spack-stack/node-js-20.10.0/gcc-10.3.0 \
2>&1 | tee log.config
make 2>&1 | tee log.make
make install 2>&1 | tee log.install
.. _MaintainersSection_Nautilus:

------------------------------
Expand Down
Loading

0 comments on commit 412b4a4

Please sign in to comment.