How to install split IMAS using EasyBuild
This tutorial shows how to install IMAS (after repository split) using EasyBuild. The installation in this tutorial will be performed on the Gateway cluster but it can be done anywhere.
Install EasyBuild
You should install EasyBuild using Python and venv (virtual environment).
module load itm-python/3.10.13 python3 -m venv venv module purge source venv/bin/activate pip3 install easybuild
You can use a different version of Python. Remember to purge
all unnecessary modules that can cause conflicts with new modules created by EasyBuild.
Configuring EasyBuild
The configuration is located in the file $HOME/.config/easybuild/config.cfg
. Create this file if it doesn't exist.
[config] prefix=/pfs/work/g2pbloch/imasenv_eb modules-tool=EnvironmentModulesC module-syntax=Tcl [override] insecure-download=True
Change the prefix
to the path where do you want your installation.
Create a secret.txt
file in $HOME/.config/easybuild/
and paste the HTTPS ACCESS TOKEN
into ITER
repo (https://git.iter.org).
Authorization: Bearer <token>
Downloading configuration (EB) files
Clone these repositories and specify the paths to them in the --robot
in the next step.
https://gitlab.eufus.psnc.pl/g2pbloch/easybuild-files https://gitlab.eufus.psnc.pl/g2pbloch/easybuild-imas-files
Installation of Data Dictionary (DD)
Run the DD installation (in the easybuild-imas-files
directory):
eb Data-Dictionary/Data-Dictionary-3.40.1-GCCcore-10.2.0.eb --allow-modules-tool-mismatch --robot=/pfs/work/g2pbloch/test_instruction/easybuild-imas-files:/pfs/work/g2pbloch/test_instruction/eb_files_repo --http-header-fields-urlpat="^https://git.iter.org::$HOME/.config/easybuild/secret.txt"
Remember to change the --robot
and pass paths to your easybuild-files
and easybuild-imas-files
directories.
Configuring paths in IMAS configuration (EB) files
After DD installation change path in this line in the HLI easyconfigs to your {prefix}/software/Data-Dictionary/3.40.1-GCCcore-10.2.0/dd_3.40.1/
preconfigopts = 'export IMAS_VERSION="0.0.0" && export IMAS_PREFIX="/pfs/work/g2pbloch/test_instruction/software/Data-Dictionary/3.40.1-GCCcore-10.2.0/dd_3.40.1/" &&'
In Python configuration files IMAS-AL-Python, IMAS-AL-Python-Bindings
you have to change path
to python to $prefix/software/Python/3.8.6-GCCcore-10.2.0/
Installation of IMAS HLIs - 5.2.0dev
eb IMAS-AL-Cpp/IMAS-AL-Cpp-5.2.0dev-foss-2020b-DD-3.40.1.eb --allow-modules-tool-mismatch --robot=/pfs/work/g2pbloch/test_instruction/easybuild-imas-files:/pfs/work/g2pbloch/test_instruction/eb_files_repo --http-header-fields-urlpat="^https://git.iter.org::$HOME/.config/easybuild/secret.txt" eb IMAS-AL-Fortran/IMAS-AL-Fortran-5.2.0dev-foss-2020b-DD-3.40.1.eb --allow-modules-tool-mismatch --robot=/pfs/work/g2pbloch/test_instruction/easybuild-imas-files:/pfs/work/g2pbloch/test_instruction/eb_files_repo --http-header-fields-urlpat="^https://git.iter.org::$HOME/.config/easybuild/secret.txt" eb IMAS-AL-Java/IMAS-AL-Java-5.2.0dev-foss-2020b-Java-11-DD-3.40.1.eb --allow-modules-tool-mismatch --robot=/pfs/work/g2pbloch/test_instruction/easybuild-imas-files:/pfs/work/g2pbloch/test_instruction/eb_files_repo --http-header-fields-urlpat="^https://git.iter.org::$HOME/.config/easybuild/secret.txt" eb IMAS-AL-Python/IMAS-AL-Python-5.2.0dev-foss-2020b-DD-3.40.1.eb --allow-modules-tool-mismatch --robot=/pfs/work/g2pbloch/test_instruction/easybuild-imas-files:/pfs/work/g2pbloch/test_instruction/eb_files_repo --http-header-fields-urlpat="^https://git.iter.org::$HOME/.config/easybuild/secret.txt"
Remember to change the --robot
and pass paths to your easybuild-files
and easybuild-imas-files
directories.
Installation of IMAS/3.42.0-2024.08.1
- Clone repo with easyconfigs: `https://gitlab.eufus.psnc.pl/g2pbloch/ebfiles_repo
- Replace the paths to your python installed by easybuild in the files:
/IMAS-AL-Core/IMAS-AL-Core-5.3.0-foss-2023b.eb, /IMAS-AL-Core/IMAS-AL-Core-5.3.0-intel-2023b.eb ,
/IMAS-AL-Python/IMAS-AL-Python-5.3.0-foss-2023b-DD-3.42.0.eb
,`/IMAS-AL-Python/IMAS-AL-Python-5.3.0-intel-2023b-DD-3.42.0.eb` - Run installation:
eb ./ebfiles_repo/IMAS/IMAS-3.42.0-2024.08.1-foss-2023b.eb --allow-modules-tool-mismatch --robot=<path_to_ebfiles_repo> --http-header-fields-urlpat=^https://git.iter.org::/afs/eufus.eu/user/g/g2pbloch/.config/easybuild/secret.txt --accept-eula-for=Intel-oneAPI eb ./ebfiles_repo/IMAS/IMAS-3.42.0-2024.08.1-intel-2023b.eb --allow-modules-tool-mismatch --robot=<path_to_ebfiles_repo> --http-header-fields-urlpat=^https://git.iter.org::/afs/eufus.eu/user/g/g2pbloch/.config/easybuild/secret.txt --accept-eula-for=Intel-oneAPI
How to use IMAS
After installation you can load IMAS
modules i.e:
module use {prefix}/modules/all module load IMAS-AL-Cpp/5.2.0dev-foss-2020b-DD-3.40.1 module load IMAS-AL-Fortran/5.2.0dev-foss-2020b-DD-3.40.1 module load IMAS-AL-Java/5.2.0dev-foss-2020b-Java-11-DD-3.40.1 module load IMAS-AL-Python/5.2.0dev-foss-2020b-DD-3.40.1
How it works
- eb - EasyBuild
IMAS-AL-Cpp/IMAS-AL-Cpp-5.2.0dev-foss-2020b-DD-3.40.1.eb - path to EasyBuild configuration file
--allow-modules-tool-mismatch
- flag--robot
- paths to configuration files--http-header-fields-urlpat
- secret to downloading files from ITER repo
Useful tips
- If you have compilation problems try adding the
--parallel=1
option - If you have problem with
Perl
:The reason may be the installation path starting withmake[1]: Entering directory `/afs/gw/swimas/easybuild/opt/build/Perl/5.38.0/GCCcore-13.2.0/perl-5.38.0/utils' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/afs/gw/swimas/easybuild/opt/build/Perl/5.38.0/GCCcore-13.2.0/perl-5.38.0/utils' Everything is up to date. Type 'make test' to run test suite. ./perl -Ilib -I. installperl --destdir= mkdir /afs/.gw: Read-only file system at ./install_lib.pl line 146. make: *** [install-all] Error 30 (at easybuild/tools/run.py:682 in parse_cmd_output)
/afs
. Try changing it. - If you have problem with
cairo
and oldttx
you can link oldttx
to/usr/bin/true
. - Problem with IMAS modules → change