Detailed specification of the task, requirements and comments are here: https://trello.com/c/c5tyJ2ke
After task is finished, this page should contain step by step instruction for each and every installation
1. Installation of SPACK
Load GCC 7.3.0:
module load gnu/7.3.0
Prepare directories:
$: mkdir -p <ROOT_DIR>/{cache,libs,modules,spack,stage}-{<compiler_names>} $: mkdir -p <ROOT_DIR>/cache-{<compiler_names>}/{cache,var,test} $: tree <ROOT_DIR/ <ROOT_DIR>/ ├── cache-compiler_x │ ├── cache │ ├── test │ └── var ├── cache-compiler_y │ ├── cache │ ├── test │ └── var ├── libs-compiler_x ├── libs-compiler_y ├── modules-compiler_x ├── modules-compiler_y ├── spack-compiler_x ├── spack-compiler_y ├── stage-compiler_x └── stage-compiler_y
Clone spack repository to
spack-gcc
:git clone https://github.com/spack/spack.git spack-compiler_name
Go into
spack-gcc
directory:cd spack-compiler_name
Checkout desired version of
spack
:git checkout v0.19.0
Set-up
spack
configuration:Go to directory where default configuration files are stored (assuming you're still inside spack-compiler_name repository):
cd etc/spack/defaults/
Edit
config.yaml
:vim config.yaml
You need to change the root of the install_tree, projections for all, build_stage dir, test_stage dir, source_cache dir and misc_cache dir.
Example:root
of theinstall_tree
:config: # This is the path to the root of the Spack install tree. # You can use $spack here to refer to the root of the spack instance. install_tree: root: <path_prefix>/<ROOT_DIR>/libs-compiler_name
projections
:projections: all: "${PACKAGE}/${VERSION}/${COMPILERNAME}/${COMPILERVER}/${HASH}"
build_stage
:build_stage: - <path_prefix>/<ROOT_DIR>/stage-compiler_name
test_stage
:test_stage: <path_prefix>/<ROOT_DIR>/cache-compiler_name/test
source_cache
:source_cache: <path_prefix>/<ROOT_DIR>/cache-compiler_name/var/cache
misc_cache
:misc_cache: <path_prefix>/<ROOT_DIR>/cache-compiler_name/cache
Edit
modules.yaml
:vim modules.yaml
Change the roots for the tcl modules:
Example:
# These are configurations for the module set named "default" default: # Where to install modules roots: tcl: <path_prefix>/<ROOT_DIR>/modules-compiler_name
Edit
linux/modules.yaml
:vim linux/modules.yaml
Here you have to fill the whole body just to set the module structure projections:
modules: default: arch_folder: false tcl: projections: all: '{name}/{version}/{compiler.name}/{compiler.version}/sha' prefix_inspections: lib: - LD_LIBRARY_PATH lib64: - LD_LIBRARY_PATH
Change the directory to the top of the
spack
repository:cd ../../../
Source
spack
:source share/spack/setup-env.sh
Check the
spack
version - should be0.19.0
:spack --version
2. Marconi + SPACK + GNU
This instruction covers all actions and commands from logging into the Marconi
server to installing imasenv
.
Logging into the
Marconi
:ssh <USER_NAME>@login.marconi.cineca.it
Change location to
$WORK
directory, which should point to/marconi_work/FUSIO_HLST
:$: cd $WORK $: pwd /marconi_work/FUSIO_HLST
Load GCC 7.3.0:
module load gnu/7.3.0
Prepare directories:
$: mkdir -p IMAS_software/{cache,libs,modules,spack,stage}-{gcc,intel} $: mkdir -p IMAS_software/cache-{gcc,intel}/{cache,var,test} $: tree IMAS_software/ IMAS_software/ ├── cache-gcc │ ├── cache │ ├── test │ └── var ├── cache-intel │ ├── cache │ ├── test │ └── var ├── libs-gcc ├── libs-intel ├── modules-gcc ├── modules-intel ├── spack-gcc ├── spack-intel ├── stage-gcc └── stage-intel
Clone spack repository to
spack-gcc
:git clone https://github.com/spack/spack.git spack-gcc
Go into
spack-gcc
directory:cd spack-gcc
Checkout desired version of
spack
:git checkout v0.19.0
Set-up
spack
configuration:Go to directory where default configuration files are stored (assuming you're still inside spack-gcc repository):
cd etc/spack/defaults/
Edit
config.yaml
:vim config.yaml
You need to change the root of the install_tree, projections for all, build_stage dir, test_stage dir, source_cache dir and misc_cache dir.
Example:root
of theinstall_tree
:config: # This is the path to the root of the Spack install tree. # You can use $spack here to refer to the root of the spack instance. install_tree: root: /marconi_work/FUSIO_HLST/IMAS_software/libs-gcc
projections
:projections: all: "${PACKAGE}/${VERSION}/${COMPILERNAME}/${COMPILERVER}/${HASH}"
build_stage
:build_stage: - /marconi_work/FUSIO_HLST/IMAS_software/stage-gcc
test_stage
:test_stage: /marconi_work/FUSIO_HLST/IMAS_software/cache-gcc/test
source_cache
:source_cache: /marconi_work/FUSIO_HLST/IMAS_software/cache-gcc/var/cache
misc_cache
:misc_cache: /marconi_work/FUSIO_HLST/IMAS_software/cache-gcc/cache
Edit
modules.yaml
:vim modules.yaml
Change the roots for the tcl modules:
Example:
# These are configurations for the module set named "default" default: # Where to install modules roots: tcl: /marconi_work/FUSIO_HLST/IMAS_software/modules-gcc
Edit
linux/modules.yaml
:vim linux/modules.yaml
Here you have to fill the whole body just to set the module structure projections:
modules: default: arch_folder: false tcl: projections: all: '{name}/{version}/{compiler.name}/{compiler.version}/sha' prefix_inspections: lib: - LD_LIBRARY_PATH lib64: - LD_LIBRARY_PATH
Change the directory to the top of the
spack
repository:cd ../../../
Source
spack
:source share/spack/setup-env.sh
Check the
spack
version - should be0.19.0
:spack --version
Install
Lapack
:spack install netlib-lapack %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
Install
Blas
:spack install -j 1 netlib-xblas %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
Install
Python
withtkinter
support:spack install python@3.9.15 +tkinter %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
Install
py-scipy
:spack install --fail-fast py-scipy %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
Install
py-matplotlib
:spack install --fail-fast py-matplotlib backend=tkagg %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
Install
py-pyyaml
:spack install --fail-fast py-pyyaml %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
Install
hdf5
:spack install --fail-fast hdf5@1.12.2 %gcc@7.3.0 +threadsafe +cxx +fortran cflags="'-fPIC -pthread'" cxxflags="'-fPIC -pthread'" cppflags="'-fPIC -pthread'"
Install
boost
:spack install --fail-fast boost %gcc@7.3.0 +python +numpy cflags="'-fPIC -pthread'" cxxflags="'-fPIC -pthread'" cppflags="'-fPIC -pthread'"
Install
blitz
:spack install --fail-fast blitz@1.0.1 %gcc@7.3.0 cflags="'-fPIC -pthread'" cxxflags="'-fPIC -pthread'" cppflags="'-fPIC -pthread'"