Versions Compared

Key

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

...

Warning

Please keep in mind a "module" mechanism limitations: among the other, "module" doesn't allow to skip the begin or the middle of module name. Only the "tail" of module name can be skipped (defaulted)

So, e.g. exampleModule/1.0/requiredLib/2.0 cannot be called like exampleModule/requiredLib/2.0 (, but exampleModule/1.0 or just example module is OK

This feature influenced solutions described below.

 

A)  "Rolling module"

...

Code Block
titleExample call
 module load imasenv/intel/3.19.1/ 

...

B)  Descriptive but enormously long/strange module name

...

Code Block
module load imasenv/intel/3.17/libs/3.0/imas/3.19.1/ual/3.8.2/imaslibs/4.0

...

  • Module libs will  set up modules from group A and group B
  • Module imaslibs will set up modules from group D

...

(plus) Full flexibility of setting versions

 

C) Two modules to set environment

 

Solution C) Multiplication of modules

Environment configured by loading 4 modules.

module load intel[/12]

module load libs[/x.y]

module load imas[3.19.1/ual/3.8.2]

module load imasenv[/x.y]

As you can see - this solution is simplest, most configurable (versions can be specified or skipped to use defaults), every "factor" can be versioned

but.... 4 modules?

 

Waiting for your suggestions

Bartek

Solution C1 [simplification of C]

Only two modules

 

Module 1)

imaslibs/<comp_vendor>/<comp_ver>/<version of this module>

Setting up IMAS environment

To overcome disadvantages of solutions presented above, and keep a desired level of flexibility, user working environment can be set by two (meta)modules (warning)

Module imaslibs

 

 

Code Block
imaslibs/<compiler_vendor>/<compiler_version>/<version of this module>
e.g. imaslibs[/intel/17.0/1.0]

...

  <= part in brackets can be skipped to use defaults

 

  • Compiler (e.g. intel/17.0)
  • All components independent from IMAS/Data Dictionary (group B) , gathered together as a set of modules. Such set of modules will have its own version (e.g. 1.0 )

Module imasenv

 

Module will  load compiler plus third parties libraries gathered in some set (ver 1.0)

 

Code Block
imasenv/<imas_ver>/ual/

...

<engine_ver>/<version of this module>

...


e.g.

...


imasenv[/3.19.1/ual/3.8.2/1.0] <= part in brackets can be skipped to use defaults

Module will load  imas plus EF/IMAS libs gathered in some set (ver load

  • imas module  (e.g.imasenv[/3.19.1/ual/3.8.2 )
  • All components dependent on IMAS/Data Dictionary (group D), gathered together as a set of modules. Such set of modules will have its own version (e.g. 1.0 )