Versions Compared

Key

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

...

  • Easybuild is installed and publicly available via module system
  • Your Easybuild configuration file exists and is properly configured
  • IMAS related receipts are downloaded from all repositories being used
  • Your TMP  directory is set up to use $ITMWORK


Software installation receipts

...

Downloading configuration (EB) files

SDCC: /work/imas/opt/EasyBuild/ebfiles_repo/ 

...

Code Block
languagetext
titleclone repo
https://gitlab.eufus.psnc.pl/g2pbloch/easybuild-files 
https://gitlab.eufus.psnc.pl/g2pbloch/easybuild-imas-files 

# [Bartek Palak] Probably only the ITER repository of EB receipts is required (ssh://git@git.iter.org/imex/easybuild-easyconfigs.git) To be checked.

Installation of Data Dictionary (DD)

Run the DD installation (in the easybuild-imas-files directory):

Code Block
languagebash
titleIMAS install
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"
TBD

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/

Code Block
languagepy
titleDD path
 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/ 

 and TBD  directories. 


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

Remember to change the --robot and pass paths to your easybuild-files  and easybuild-imas-files  directories. 


Installation of

...

IMAS

IMAS bundle

  • HLIs
  • 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/
      • Cpp
      • IMAS-AL-
      Core-5.3.0-foss-2023b.eb, /
      • Fortran
      • IMAS-AL-
      Core/
      • Java
      • IMAS-AL-
      Core-5.3.0-intel-2023b.eb ,  /
      • Matlab
      • 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`
    • Related modules:
      • IDStools
    • Clone repo with easyconfigs: TBD
    • Run  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>  --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> --accept-eula-for=Intel-oneAPI

    imasenv module

    How to use IMAS

    After installation you can load IMAS  modules i.e:

    ...

    • 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


    Installation of the 'production' version

    ...

    Code Block
    languageplain
    --prefix='/gw/swimas/easybuild/opt' 
    --installpath-modules='/gw/swimas/easybuild/etc'
    
    # TO BE DISCUSSED: Accessing sources while debugging. Should 'source' directory be public, as well? 
    
    # following modules must be installed 
    # pkgconfig
    # Cmake
    # IMAS_AL-Core receipt - to be checked!!!
        '-D Python3_ROOT_DIR=/gw/swimas/easybuild/opt/software/Python/3.11.5-GCCcore-13.2.0 '
        '-D Python3_EXECUTABLE=/gw/swimas/easybuild/opt/software/Python/3.11.5-GCCcore-13.2.0/bin/python3 '
        '-D Python_ROOT_DIR=/gw/swimas/easybuild/opt/software/Python/3.11.5-GCCcore-13.2.0 '
        '-D Python_EXECUTABLE=/gw/swimas/easybuild/opt/software/Python/3.11.5-GCCcore-13.2.0/bin/python3 '
    
    


    Adding software components to existing installation

    • Set  MODULEPATH system variable 
      Code Block
       export MODULEPATH=/gw/swimas/easybuild/etc/all
    • Add --use-existing-modules  switch to eb  command

    Useful tips

    Installing dependencies as hidden modules

    ...

    Warning

    EasyBuild requires no modules to be loaded ! 

    Please execute:

    Code Block
    module purge

     

    Change the default tmp

    ...

    directory 
    Anchor
    tmp_dir_change
    tmp_dir_change

    Easybuild produces a lot of temporary content (logs, intermediate build files, etc)

    ...

    Code Block
    languagebash
    # Run 'interactive' batch job using SLURM 'srun' command
    # -p gw                  : 'gw' queue offering the longer walltime than the default 'gwdebug'
    # --ntasks-per-node=48   : number of cores requested (1 node provides up to 48 cores)
    # --time=48:0:0          : walltime (documentation says that the default walltime in 'gw' queue is 48h but not explicitly specified is set to 1h - To Be Checked)
    # --x11                  : X11 forwarding (optional)
    # --pty /bin/bash        : pseudoterminal
    
    bash> srun -p gw --ntasks-per-node=48 --time=48:0:0 --pty /bin/bash

    ...

    Once resources are allocated, a new shell is being opened opens on the working node .  A usually reporting file system error is reported in most cases:

    Code Block
    bash: /afs/eufus.eu/user/g/g2<user>/.bashrc: Permission denied

    ...