...
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. This feature influenced solutions described below. |
A) "Rolling module"
...
Code Block | ||
---|---|---|
| ||
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 fromgroup A
andgroup B
- Module
imaslibs
will set up modules fromgroup D
...
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
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
)