Overview
All users on ASL (ASC Standard Linux), Red Hat or Ubuntu, have access to the ASC Environment Modules (LMOD). Environment modules allows users of Linux workstations and the Unity cluster to:
- Dynamically reconfigure their environment without any installation or configuration of packages
- Allow seamless switching between versions of software
- Load a known good software installation on any Linux workstation in the College.
- Maintain a collection of software that can be loaded onto your computer through one command or upon login.
The modules are maintained by ASCTech. Please request any software that you think should be available on the modules server via a ticket.
Contents
What is an Environment Module
Typically users initialize their environment when they log in by setting environment information for every application they will reference during the session. The Environment Modules package is a tool that simplify shell initialization and lets users easily modify their environment during the session with modulefiles.
Each modulefile contains the information needed to configure the shell for an application. Once the Modules package is initialized, the environment can be modified on a per-module basis using the module command which interprets modulefiles. Typically modulefiles instruct the module command to alter or set shell environment variables such as PATH, MANPATH, etc. modulefiles may be shared by many users on a system and users may have their own collection to supplement or replace the shared modulefiles.
Modules can be loaded and unloaded dynamically and atomically, in an clean fashion. All popular shells are supported, including bash, ksh, zsh, sh, csh, tcsh, fish, cmd as well as some scripting languages such as perl, ruby, tcl, python, cmake and R.
Modules are useful in managing different versions of applications. Modules can also be bundled into metamodules that will load an entire suite of different applications.
Source: https://modules.sourceforge.net/
Using Environment Modules
Seeing Available Modules
In order to load a module, it must have been created at some point by someone within ASCTech and then added to the modules path. There are easy commands to list out the available modules such as:
module avail
---------------------------------------------------------------------------------------------------------------------------------------------------------------------- /opt/modules/modulefiles/Core -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
R/3.5 chimera/1.13 fastqc/0.11 heasoft/6.30 maple/2018.0 matlab/r2021a octave/4.4.1 oneapi/dnnl/3.4.0 oneapi/oclfpga/2024.1.0 python/3.8.1 super-deduper/2.0 xvista.old/7-12f
abyss/2.1 ciao/4.12.1 flash/modified-1.2 heasoft/6.30.1 (D) maple/2023.0 (D) matlab/r2023b (D) oneapi/advisor/2024.1 oneapi/dpct/2024.1.0 oneapi/oneapi/2024.0.0 python/3.9 supernova/2.1 xvista/7-12f
apbs/1.5 ciao/4.14 (D) flash/1.2 (D) heasoft/6.33.2 (T) mathematica/11.3.0 mgltools/1.5.7 (T) oneapi/ccl/2021.12.0 oneapi/dpl/2022.5 oneapi/tbb/2021.12 python/3.12.3 test/1.0
apptainer/1.2.2 cmake/3.11 framedp/1.2 hhsuite/3.3 mathematica/12.0.0 mkl/17.1 oneapi/compiler-intel-llvm/2024.1.0 oneapi/ifort/2024.1.0 oneapi/tbb32/2021.12 rcorrector/1.0 texlive/2019
autodock-gpu/1.5.3 (T) cmake/3.16 gcc/4.8 iSpec/2020.10.01 mathematica/13.0 naccess/2.1.1 oneapi/compiler-intel-llvm32/2024.1.0 oneapi/ifort32/2024.1.0 oneapi/vtune/2024.1 seekr/1.0 texlive/2020 (D)
beast/2.5 cmake/3.24 (D) gcc/5.4 idl/8.7.2 mathematica/13.1 (D) namd-multi-cuda/2.12 oneapi/compiler-rt/2024.1.0 oneapi/intel_ipp_ia32/2021.11 pdb2pqr/2.1 seqtk/1.2 texlive/2021
bfc/1.0 cope/1.2 gcc/6.1 idl/8.8.1 (D) matlab/r2015b namd-multi-cuda/2.13 oneapi/compiler-rt32/2024.1.0 oneapi/intel_ipp_intel64/2021.11 perl/5.26.3 (D) skewer/0.2 vmd/1.9.3
blender/2.81a cuda/10.2 (T) gcc/6.3 intel/16.3 matlab/r2016b namd-multi-cuda/2.14 (D) oneapi/compiler/2024.1.0 oneapi/intel_ippcp_ia32/2021.11 perl/5.34.1 skycalc/6.3.1 wcstools/3.9.5
blender/3.0.1 (D) ds9/8.1 (D) gcc/7.3 (D) intel/17.1 matlab/r2017a namd-multi/2.12 oneapi/compiler32/2024.1.0 oneapi/intel_ippcp_intel64/2021.11 python/2.7 sm/2.4.38 wcstools/3.9.7 (D)
browndye/1.0 ds9/8.5 (T) gcc/13.3 (T) intel/18.2 (D) matlab/r2017b namd-multi/2.13 oneapi/dal/2024.0.0 oneapi/mkl/2024.1 python/3.6 source-extractor/2.25.0 xmm-sas/18.0.0
browndye/2.0 (D) exonerate/2.2 grace/5.1.25 intel/19.0.5 matlab/r2019a namd-multi/2.14 (D) oneapi/debugger/2024.1.0 oneapi/mkl32/2024.1 python/3.7 squashfs-tools/4.6.1 xmm-sas/21.0.0 (T,D)
cd-hit/4.6 fac/1.1.4 heasoft/6.28 iraf/2.17 matlab/r2020b novocraft/3.08 oneapi/dev-utilities/2024.0.0 oneapi/mpi/2021.12 python/3.8 (D) squashfuse/0.5.0 xplor-nih/3.2
------------------------------------------------------------------------------------------------------------------------------------------------------------------ /usr/share/lmod/lmod/modulefiles/Core -------------------------------------------------------------------------------------------------------------------------------------------------------------------
lmod settarg
Where:
T: Testing
D: Default Module
If the avail list is too long consider trying:
"module --default avail" or "ml -d av" to just list the default modules.
"module overview" or "ml ov" to display the number of modules for each name.
Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
Additional commands for listing out modules include
module overview
which gives a more compact view
module spider
which is a more complex readout and also allows for the retrieval of information specific to a module such as
module spider idl
Loading an Environment Module
Modules can be loaded with the following command provided they are available
module load (MODULENAME)
and modules can be unloaded with the command
module unload (MODULENAME)
In order to see modules currently loaded into the environment, please use
module list
Useful tips and tricks
The ml alias
The command ml
is a useful alias for much of the module command's functionality. Please consult the LMOD documentation for more info.
Dependencies
Often, modules can have dependencies on other modules. For instance, if
module load heasoft
is invoked and then the module list
command is used, you would notice that multiple modules are now loaded.
Currently Loaded Modules:
1) gcc/7.3 2) perl/5.26.3 3) heasoft/6.30.1
In this case, these specific versions of GCC and Perl are critical to the functionality of HEASoft.
Collections
The module save
command allows you to save the currently loaded environment. module save can be invoked to save as a default collection or you can provide a title for the collection.
More Information
More information can be found on the LMOD User Guide found here: User Guide for Lmod
Requesting Help with Modules
Please email asctech@osu.edu with questions, or issues encountered with using modules.
Requesting Modules
If you would like to request an addition or a different version of an existing module, please contact asctech@osu.edu. Prepending the subject line of your email with LMOD can assist with routing your request. You may be asked to provide links to the software you are requesting.
Some software may have optional features that need to be enabled at compile time. This could include functionality using newer CPU instruction sets for additional performance such as AVX, AVX2, or AVX512. It could also include parallel processing options such as OpenMPI or MPICH.
Additionally, many programs have options to compile GPU-Accelerated functions that can be invoked on machines with graphics cards. CUDA, ROCm, and OpenCL are often examples of this.
Please specify in your request to ASCTech of any additional functionality needed.