Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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).

...

You can use a different version of Python. Remember to purge all unnecessary modules that can cause conflicts with new modules created by EasyBuild.

ConfiguringEasyBuild

The configuration is located in the file $HOME/.config/easybuild/config.cfg. Create this file if it doesn't exist.

...

Code Block
languagetext
titlesecret.txt
Authorization: Bearer <token>

Downloading configuration (EB) files

Clone these repositories and  specify the paths to them in the --robot  in the next step.

Code Block
languagetext
titleclone repo
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):

...

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/

...

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

Code Block
languagebash
titleIMAS
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: 
    Code Block
    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:

Code Block
languagebash
titleLoad module
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

Increasing the length of error/warning message

Easybuild shows only the first 300 characters of error/warning message and cuts (usually the most interesting) remaining part of the message.

...

  1. Open <easybuild virtual env>/lib/python3.10/site-packages/easybuild/framework/easyblock.py 
  2. Look for value "300" (line 4295 in EB version 
    Code Block
    titleeasyblock.py
    except EasyBuildError as err:
            first_n = 300   # <=== HERE is the limit hardcoded 
            errormsg = "build failed (first %d chars): %s" % (first_n, err.msg[:first_n])  
            _log.warning(errormsg)
            result = False
  3. Increase the limit to bigger value (e.g. 3000) or remove the message cutting err.msg[:first_n])  ==> err.msg 
  4. Save the file    


Other

  • If you have compilation problems try adding the --parallel=1  option
  • If you have problem with Perl
    Code Block
    make[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)
    The reason may be the installation path starting with /afs . Try changing it.
  • If you have problem with cairo  and old ttx you can link old ttx  to /usr/bin/true .
  • Problem with IMAS modules → change easyblock to Bundle