Software on MonARCH
MonARCH uses a modular system to manage software.
Modules​
MonARCH supports a wide range of software packages. The Linux environment module utility is used to load and unload different software packages. When a module is loaded, it sets specific environment variables (e.g., PATH, LD_LIBRARY_PATH, etc.) to the appropriate pathnames where the software is installed. Environment Modules There may be occasions where you need to use different compilers and/or libraries from those found in your usual environment, and you therefore need to adjust your environment variables accordingly. The module command makes this easy. Some examples of its use are:
Module available | Shows what modules are available on the system |
---|---|
module whatis | Shows what they do |
module load openmpi-intel | Makes Intel MPI libraries and Intel Fortran compiler available |
module purge | Unloads all of them |
module list | Shows which module are loaded |
module unload openmpi-intel intel | Unloads Intel MPI and Intel Fortran modules |
module display [modulefile] | Use this command to see exactly what a given modulefile will do to your environment, such as what will be added to the PATH, MANPATH, etc. environment variables |
'module load' example​
Here is an example of how to load the GNU C/C++ compiler.
module load gcc/4.9.1
That's all! Now here we put some extra Linux commands to show that, by loading the module, we override the default System compiler.
# show that we have the default compiler
#
which gcc
/usr/bin/gcc
gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
--with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
#
# load a different compiler
#
module load gcc/4.3.5
#
# check that we have a new version
#
which gcc
/opt/sw/gcc-4.3.5/bin/gcc
gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.3.5/configure --prefix=/opt/sw/gcc-4.3.5
Thread model: posix
gcc version 4.3.5 (GCC)
Suppose we wanted to know more about a module we wanted to load? That can be done via the 'show' command.
'module show' example​
module show gcc/4.3.5
-------------------------------------------------------------------
/opt/sw/Modules/modulefiles/gcc/4.3.5:
module-whatis GNU Compiler Collection is ...
conflict gcc/4.8.0
conflict gcc/4.4.4
conflict gcc/4.5.3
conflict intel/10.0.025
conflict intelC/10.0.025
prepend-path
PATH /opt/sw/gcc-4.3.5/bin:/opt/sw/gcc-4.3.5/libexec/gcc/x86_64-unknown-linux-gnu/4.3.5
prepend-path LD_LIBRARY_PATH /opt/sw/gcc-4.3.5/lib64:/opt/sw/gcc-4.3.5/lib
prepend-path MANPATH /opt/sw/gcc-4.3.5/man
-------------------------------------------------------------------
'module unload' example​
After loading a gcc module, suppose we wanted to use the system compiler again. All you do is unload the module.
module unload gcc/4.3.5
#
# unload compiler
#
$ module unload gcc/4.3.5
#
# show that we have the default compiler
#
which gcc
/usr/bin/gcc
gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib
--enable-__cxa_atexit --disable-libunwind-exceptions
--enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
Example of module conflict​
module load gcc/4.3.5
module load gcc/4.2.3
gcc/4.2.3(15):ERROR:150: Module 'gcc/4.2.3' conflicts with the currently loaded module(s) 'gcc/4.3.5'
gcc/4.2.3(15):ERROR:102: Tcl command execution failed: conflict gcc/4.3.5
Docker based workflows​
Many fields are beginning to distribute fully self contained pieces of software in a container format known as docker. Unfortunately docker is unsuited as a container format for shared user systems, however it is relatively easy to convert most docker containers for scientific work flows to the Singularity format. If you wish to run software based on a Docker container, please email mcc-help@monash.edu and let us know where we can obtain the container and we will be happy to convert it for you.
Installed Software​
Please use 'module avail' on a login node for a full list of installed software. Here are some examples of how to run some commonly used software.
Software Deprecation​
30 September 2020
Please be advised of upcoming changes to the Java software modules on the system. We have originally scheduled this for the 16th of September.
On Thursday, the 15th of October, 2020, we will be removing these two java software modules:
java/1.7.0_67
java/1.8.0_77
This change is necessary as critical security vulnerabilities are present in these two versions of Java.
In their place, please use:
java/openjdk-1.8.0_242
java/openjdk-1.14.02
This change requires updating the java version that underpins the following 26 specific versions of software modules:
Module Name | Version |
---|---|
beagle | 2.1.2 |
beagle | 3.1.2 |
fastqc | 0.11.7 |
gatk | 3.4 |
gatk | 3.7 |
gatk | 4.0.1.1 |
gatk | 4.0.11.0 |
gatk | 4.1.2.0 |
gem | 3.3 |
juicer | 1.6.2 |
mauve | 20150213 |
maven | 3.3.9 |
nighres | 1.1.0b1 |
nilearn | 0.6.2 |
picard | 2.9.2 |
picard | 2.19.0 |
R | 3.5.1 |
R | 3.5.2-openblas |
R | 3.5.3-mkl |
R | 3.6.0-mkl |
R | 3.6.2-mkl |
R | 4.0.0-openblas |
snpeff | 4.3t |
swig | 3.0.12 |
swig | 4.0.1 |
xnat-desktop | 1.0.40 |
Ahead of the removal of these older java
modules, on October 8, 2020
(Thursday), these modules will be updated to use
java/openjdk-1.8.0_242
. As the difference of this java is the patch
number (from the old _77
to the updated _242
), we do not expect this
to affect the correct operation of these modules. We have conducted
simple tests to ensure that the commands for each of these modules work
under the patched java.
Please advise us if there are any issues: mcc-help@monash.edu
Requesting an install​
If you require additional software please email mcc-help@monash.edu
with the following details:
- software
- version
- URL for download
- urgency
- if there are any licensing restrictions we need to impose