...
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
What Have We Seen
Note |
---|
Although on the login nodes we do have a We can see that R is not available, nor most of the applications that researchers will require. There are:
We can not provide a system that provides everything all at once. |
Info |
---|
What we need is a method to enable users to find and select that they specifically need, and a method to allow them to configure and setup their sessions/environment to allow them to perform their analysis and research. |
...
LMOD: An Environment Module System
ARCC: Lmod – Software
...
What do we have available?
Info |
---|
Check the MedicineBow Software Page. |
...
What is Available?
Info |
---|
MedicineBow is a brand new cluster (new OS and relates system libraries), and thus no existing Beartooth software will be automatically available nor transferred over. With this in mind ARCC will be providing a smaller
|
...
What’s available: Using the Module System
Info |
---|
Use |
Code Block |
---|
# GoModules back to your home foldercurrently loaded. [...]$ module cdlist ~ [~]$ cd intro_to_modules/ # Modules currently loaded. []$ ml Currently Currently Loaded Modules: 1) slurm/latest (S) 2) arcc/1.0 (S) # What's available within |
Info |
---|
Use |
Code Block |
---|
# What's available within my 'current' environment.
# With respect to what modules I 'currently' have loaded.
[]$ module avail
... |
...
Info |
---|
Modules have a name and a version: |
What’s available? Compiler tree
Info |
---|
Some software has to be built with respect to a compiler. By default we build using the GNU family of compilers for C/C++ and Fortran. |
Code Block |
---|
Note |
The two modules These make available various commands and scripts that ALL users require (such as Slurm commands). If you |
...
What’s available? Compiler tree
Info |
---|
Some software has to be built with respect to a compiler. By default we build using the GNU family of compilers for C/C++ and Fortran. |
Info |
---|
Some commands have shortcuts. Using |
Code Block |
---|
[]$ module load purge []$ module load gcc/1314.2.0 []$ ml Currently Loaded Modules: 1) slurm/latest (S) 3) gmp/6.2.1 (S) 5) mpc/1.3.1_x86_64 72) zstdarcc/1.5.50 2) arcc/1.0 (S) 46) mpfrzlib-ng/4.2.01.4_x86_64 63) zlib-nggmp/6.2.1.4_x86_64 7) zstd/1.5.5_x86_64__programs_True 84) gccmpfr/134.2.0 |
_x86_64 8) gcc/14.2.0 |
The gmp
, mpc
, mpfr
, zlib-ng
and zstd
are know as dependencies.
Info |
---|
There are libraries that need to be loaded for gcc to work. They are loaded automatically so you don’t have to. |
Code Block |
---|
[] module avail
# What has |
Info |
---|
Question What changed? |
We can now wee see all the modules available that have been compiled with |
Note |
---|
These are only available if/when the |
Change Compiler
Info |
---|
Let’s see what happens to our environment if we load a different compiler. |
Code Block | ||
---|---|---|
[]# module load nvhpc-sdk/24.3
Lmod is automatically replacing "gcc/13.2.0" with "nvhpc-sdk/24.3".
# What happened?
[]$ ml
Currently Loaded
|
Note |
---|
These are only available after the |
...
Change Compiler
Info |
---|
Let’s see what happens to our environment if we load a different compiler. |
Code Block |
---|
[]# module load nvhpc-sdk/24.3
Lmod is automatically replacing "gcc/14.2.0" with "nvhpc-sdk/24.3". |
Info |
---|
Again, what happened? |
Code Block |
---|
[]$ ml Currently Loaded Modules: 1) slurm/latest (S) 2) arcc/1.0 (S) 3) nvhpc-sdk/24.3 []$ module avail # Modules relating to |
Info |
---|
Only modules relating to are now available. |
Note |
---|
You can only have one module compiler loaded at a time. Compilers of the same name, but different versions ( |
...
Purge Your Modules
Info |
---|
Use the |
Code Block |
---|
[]$ module purge The #following modules Whatwere hasnot changed? []$ ml []$ module avail |
Info |
---|
Use the |
Note |
---|
The more modules you have loaded, the more dependencies you will have loaded and the more likely you are to forget what you have loaded… |
...
unloaded:
(Use "module --force purge" to unload all):
1) slurm/latest 2) arcc/1.0 |
Info |
---|
Again, what has changed? |
Code Block |
---|
[]$ moduleml purge[]$ The following modules were not unloaded: (Use "module --force purge" to unload all): 1) slurm/latest 2) arcc/1.0 []$ ml Currently Loaded Modules: 1) slurm/latest (S) 2) arcc/1.0 (S) Where: S: Module is Sticky, requires --force to unload or purgemodule avail |
Info |
---|
We are back to having the two modules |
Note |
---|
The more modules you have loaded, the more dependencies you will have loaded and the more likely you are to forget what you have loaded… |
Note |
---|
As mentioned earlier, do not use the |
...
Looking for Modules: module spider
Info |
---|
|
Code Block |
---|
Info |
If you have performed Calling |
Code Block |
---|
[]$ module spider openmpi ---------------------------------------------------------------------------- openmpi: openmpi/4.1.6 ---------------------------------------------------------------------------- OtherVersions: possible modules matches: openmpi/4.1.6 nvhpc-openmpi3 You will need to load all module(s) on any one of the lines below before the "openmpi/4.1.6" module is available to load. arcc/1.0 gcc/13.2.0 ... |
Module load/spider: Dependencies
Code Block |
---|
[]$ module load openmpi/4.1.6
Lmod has detected the following error: These module(s) or extension(s) exist
but cannot be loaded as requested: "openmpi/4.1.6"
Try: "module spider openmpi/4.1.6" to see how to load the module(s).
# What dependencies does openmpi have? And what is currently loaded?
[]$ module load gcc/13.2.0
[]$ module load openmpi/4.1.6
# What do you notice?
[]$ ml
[]$ module avail |
Info |
---|
Due to dependencies, there can be a hierarchy of core modules that need to be loaded to make other libraries and software available. and what is loaded. For example, some libraries, such as Typically their version number will be prefixed with Try: |
What’s different between these command-lines?
Code Block |
---|
[]$ module spider python/3.10.6
[]$ module spider python/3.12.0
[]$ module spider python2 |
What’s different between these command-lines? Dependencies
Code Block |
---|
[]$ module spider python/3.10.6 []$ module spider python/3.12.0 ... You will need to load all module(s) on any one of the lines below before the "python/3.12.0" module is available to load. arcc/1.0 gcc/13.2.0 []$ module spider python2 -------------------------------------openmpi/5.0.5 Other possible modules matches: nvhpc-openmpi3 ---------------------------------------------------------------------------- To find other possible module matches execute: $ module -r spider '.*openmpi.*' ---------------------------------------------------------------------------- For detailed information about a specific "openmpi" package (including how to load the modules) use the module's full name. Note that names that have a trailing (E) are extensions provided by other modules. For example: $ module spider openmpi/5.0.5 ---------------------------------------------------------------------------- |
...
Module load/spider: Dependencies
Info |
---|
If you |
Code Block |
---|
[]$ module spider openmpi/5.0.5
----------------------------------------------------------------------------
openmpi: openmpi/5.0.5
----------------------------------------------------------------------------
You will need to load all module(s) on any one of the lines below before the "openmpi/5.0.5" module is available to load.
arcc/1.0 gcc/14.2.0
Help:
An open source Message Passing Interface implementation. ... |
Note |
---|
Try loading before loading |
Code Block |
---|
[]$ module purge
[]$ module load openmpi/5.0.5
Lmod has detected the following error: These module(s) or extension(s) exist
but cannot be loaded as requested: "openmpi/5.0.5"
Try: "module spider openmpi/5.0.5" to see how to load the module(s). |
Info |
---|
Load the required dependencies, then re-try: |
Code Block |
---|
[]$ module load gcc/14.2.0
[]$ module load openmpi/5.0.5
[]$ |
Info |
---|
Let’s check everything has been loaded successfully: |
Code Block |
---|
[]$ which mpicc
/apps/u/opt/gcc/14.2.0/openmpi/5.0.5/bin/mpicc
[]$ mpicc --version
gcc (Spack GCC) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
...
OpenMPI Tree: What Do You Notice?
Info |
---|
After loading |
Code Block |
---|
[]$ ml
[]$ module avail |
Info |
---|
Notice we have opened up an additional set of modules: |
Code Block |
---|
---- /apps/s/lmod/mf/spack/linux-rhel9-x86_64/openmpi/5.0.5-jk3nxsx/gcc/14.2.0 ----
adios2/2.9.2-ompi netcdf-cxx4/4.3.1-ompi
...
ior/3.3.0-ompi wannier90/3.1.0-ompi
netcdf-c/4.9.2-ompi
... |
Info |
---|
Due to dependencies, there can be a hierarchy of core modules that need to be loaded to make other libraries and software available. For example, some libraries, such as Typically their version number will be prefixed with Try: |
...
What’s different between these command-lines?
Info |
---|
What do we notice about the required dependencies for the following versions of Python? |
Code Block |
---|
[]$ module spider python/3.10.6
[]$ module spider python/3.12.0
[]$ module spider python2 |
...
What’s different between these command-lines? Dependencies
Info |
---|
The two You need to choose which |
Code Block |
---|
[]$ module spider python/3.10.6
[]$ module spider python/3.12.0
...
You will need to load all module(s) on any one of the lines below before the "python/3.12.0" module is available to load.
arcc/1.0 gcc/13.2.0
arcc/1.0 gcc/14.2.0
... |
Even though python/3.10.6
has been built with different compilers, it is still running Python Version 3.10.6. Your related scripts should run with either variant. This is same with python/3.12.0
.
We recommend using the variant built with the latest compiler.
Info |
---|
The |
Code Block |
---|
[]$ module spider python2
----------------------------------------------------------------------------
python2: python2/2.7.18
----------------------------------------------------------------------------
You will need to load all module(s) on any one of the lines below before the "python2/2.7.18" module is available to load.
arcc/1.0 |
...
More module commands
Info |
---|
The |
Code Block |
---|
[]$ module Modules based on Lua: Version 8.7 2022-04-16 13:49 -05:00 by Robert McLay mclay@tacc.utexas.edu module [options] sub-command [args ...] Help sub-commands: --------------------------------------- python2: python2/2.7.18 -- help prints this message help module [...] print help message from module(s) Loading/Unloading sub-commands: -------------------------------------------------------------------------- You will need to load all module(s) on any one of the lines below before the "python2/2.7.18" module is available to load. arcc/1.0-- load | add module [...] load module(s) ... |
...
Prev | Workshop Home | Next |
...