Versions Compared

Key

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

...

  • Easybuild is installed and publicly available via module system

  • Easybuild configuration file exists and is properly configured

  • IMAS related receipts are downloaded 

  • All modules are purged and EasyBuild module is the only module loaded:

    Code Block
    module purge
    module load EasyBuild
  • $EASYCONFIG_PATHS

    system

    variable

    is

    set

    to

    point

    to

    all

    directories

    with

    easyconfig

    files 

  • Your TMP  directory is set up to use $ITMWORK

Downloading easyconfigs

To allow the users to seamlessly switch between EUROfusion and ITER clusters, the environment that is built on the Gateway mimics (to some extent) the one of the ITER SDCC machines. 

To achieve this a receipts from the ITER cluster are utilised to install software on the GW.This simple mechanism will be replaced with a more complex one, where receipts would be maintained in GIT repositories.

Downloading configuration (EB) files

...

Code Block
languagetext
titleclone repo
export EASYCONFIGS_PATH=`pwd`/iter-receipts


Warning

This simple mechanism will be replaced with a more complex one, where receipts would be maintained in GIT repositories.


Installation of Installation of software components

Searching for receipts

...

Info
 --robot-paths=<path1>:<path2>  configuration option supports prepending or appending to the default robot search path:
  • To prepend one or more paths, a list of paths followed by a ‘:’ should be specified.
  • To append one or more paths, a list of paths preceded by a ‘:’ should be specified.
See EasyBuild documentation for details and examples

A

...

<software_name> 

...

could

...

be

...

only

...

part

...

of

...

the

...

name

...

being

...

searched.

...

Additionally

...

EasyBuild

...

search

...

is

...

case

...

insensitive.

...

E.g.

...

"dox" 

...

string

...

can

...

be

...

provided

...

while

...

looking

...

for

...

"Doxygen" 

Code Block
shell> eb --search dox --robot=$EASYCONFIG_PATHS

== found valid index for /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs, so using it...
 * /afs/eufus.eu/user/g/g2bpalak/work/easybuild/all_iter/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
 * /afs/eufus.eu/user/g/g2bpalak/work/easybuild/all_iter/Doxygen/Doxygen-1.13.2-GCCcore-13.2.0.eb
...
 * /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
 * /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb  

Usually

...

receipt

...

name

...

uses

...

following

...

syntax:

Code Block
<software name>-<software version>-<toolchain>-<toolchain version>

e.g.:
Doxygen-1.9.8-GCCcore-13.2.0.eb

...

Code Block
languagebash
titleIMAS
eb <receipt name>.eb --robot= --robot-paths=$EASYCONFIG_PATHS

e.g.:
eb Doxygen-1.9.8-GCCcore-13.2.0.eb --robot --robot-paths=$EASYCONFIGS_PATHS 

Info
 --robot/-r command line option enables dependency resolution
See EasyBuild documentation for details
https://docs.easybuild.io/version-specific/eb-help 
Info
titleHints
  •  --robot/-r command line option enables dependency resolution See EasyBuild documentation for details
  • It is strongly advised to change temporary directories to use $ITMWORK

  • recommended to run It is recommended to run before actual installation:
    • eb with option -missing-modules/-M  to check what dependencies will be installed

    • eb  with option

    {{
    • --dry-run/-

    D.     with option
    • D  or --extended-dry-run

     or 
    • /-x,  to check what and how will be installed

  • All 'massive' builds should be performed on the worker nodes 
  • See EB See https://docs.easybuild.io/version-specific/eb- help for the other useful eb switches

Installation of

...

IMAS bundle

The IMAS bundle is (usually) provided by ITER and loads all IMAS High Level Interfaces and related modules:

  • IMAS High Level Interfaces
    • IMAS-AL-Cpp
    • IMAS-AL-Fortran
    • IMAS-AL-Java
    • IMAS-AL-Matlab
    • IMAS-AL-Python
  • Related modules:
    • IDStools
  • Run installation: 
    Code Block
    eb IMAS-3.42.0-2024.08.1-foss-2023b.eb --robot=$EASYCONFIG_PATHS 
    eb IMAS-3.42.0-2024.08.1-intel-2023b.eb --robot=$EASYCONFIG_PATHS

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

Installation of the 'production' software

...

the 'production' software

To install the 'production' version of the software belonging to IMAS ecosystem, a few extra options have to be added to point out EB to the dedicated public directory /gw/swimas/easybuild  


Code Block
languageplain
--prefix='/gw/swimas/easybuild/opt' 
--installpath-modules='/gw/swimas/easybuild/etc'
--ignore-checksums (optional)


# TO BE DISCUSSED: Accessing sources while debugging. Should 'source' directory be public, as well? 

Installation of the IMAS bundle

The IMAS bundle is (usually) provided by ITER and loads all IMAS High Level Interfaces and related modules:

Content of IMAS bundle

IMAS bundle consist of:

  • IMAS High Level Interfaces
    • IMAS-AL-Cpp 
    • IMAS-AL-Fortran 
    • IMAS-AL-Java 
    • IMAS-AL-Matlab 
    • IMAS-AL-Python 
  • Related modules:
    • IDStools 

IMAS bundle receipts

Code Block
shell> eb --search dox --robot=$EASYCONFIG_PATHS

== found valid index for /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs, so using it...
 * /afs/eufus.eu/user/g/g2bpalak/work/easybuild/all_iter/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
 * /afs/eufus.eu/user/g/g2bpalak/work/easybuild/all_iter/Doxygen/Doxygen-1.13.2-GCCcore-13.2.0.eb
...
 * /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
 * /gw/swimas/easybuild/opt/software/EasyBuild/5.0.0/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb  

aa

Warning

Every IMAS High Level Interface depends on the IMAS Access Layer Core ( IMAS-AL-Core

Make sure that all IMAS HLIs use exactly the same version of  IMAS-AL-Core and other common dependencies !!!



Installation


  • Run installation: 
    Code Block
    eb IMAS-3.42.0-2024.08.1-foss-2023b.eb --robot=$EASYCONFIG_PATHS 
    eb IMAS-3.42.0-2024.08.1-intel-2023b.eb --robot=$EASYCONFIG_PATHS

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
Code Block
languageplain
--prefix='/gw/swimas/easybuild/opt' 
--installpath-modules='/gw/swimas/easybuild/etc'
--use-existing-modules 
--ignore-checksums (optional)
--allow-modules-tool-mismatch

# TO BE DISCUSSED: Accessing sources while debugging. Should 'source' directory be public, as well? 

# following modules must be installed 
# pkgconfig
# Cmake



imasenv module

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

...