Applications & Modules
How do I use the module command
Please see the following video on how to use the module command on Mana
.
How are the module names formatted and why is it important
The layout of a module name takes the following format:
[category]/[software]/[version]{-compiler/toolchain}
The compiler or toolchain is appended so that when you select modules, you can select compatible modules. If, for instance, you select software compiled with two different compilers, what happens is some dependency modules will typically be swapped out. While in some cases this will work, it could lead to unexpected behavior.
Saying this, toolchains may contain one or more compilers. For example, the Intel-2018.5.274 toolchain has not only the Intel 2018 compiler, but GCC 6.3.0. This makes any module using either the intel 2018 toolchain or just the GCC 6.3.0 compiler compatible.
Another special case is in the instances where no compiler or toolchain is appended to a module name. In these cases, the module was built with what exists in the OS image used for all our computing nodes.
When I use the Vim module on a compute node and click with my mouse to highlight/copy text it changes my mode to “Visual” mode. This doesn’t happen on the login node, so how do I stop this behavior
In order to stop Vim from changing modes with a mouse click you will need to make a .vimrc file in your user home that contains ‘set mouse-=a ‘. This can be accomplished with the single line below:
echo “set mouse-=a” >> ~/.vimrc
Why am I having problems using modules or an application on the login nodes
The login nodes are not meant for anything but logging in and starting interactive or batch jobs. Users are able to use the module command on the login nodes, but the path to the software do not exist so the software referenced by each module will not work on the login nodes. To utilize the software loaded by a given module or installed in your directories, you will need to be on a compute node (batch or interactive). You can start an interactive session on the sandbox or other partition to load modules to compile and build applications. Users are encouraged to do all these actions using an interactive session by doing something like the following:
srun -p sandbox -c 2 --mem=6G -t 60 --pty /bin/bash
I have tried to install Anaconda/miniconda in my user directory, so why does it complain about bunzip2 not being found
The compute nodes all have bunzip2 installed so this error should only occur on the login nodes, which are not meant for users to compile/install code or to compress/decompress files on. Users are encouraged to do all these actions using an interactive session by doing something like the following:
srun -p sandbox -c 2 --mem=6G -t 60 --pty /bin/bash
How do I install R packages
Either within your SLURM submission script or after invoking an interactive session, you will need to load the R module. You can load it by running the following command:
Once the module is loaded a user can start the R environment and install packages with the
install.packages
command. The following is an example installation of package A3:Since users do not have write access to /opt/, they have to create a personal library in their home directory. Once they have confirmed that they want to create the library, the package install process continues normally asking the user to select the mirror to download the package from. Once the download completes, the package should be usable.
Once a user has installed the required R packages, we recommend finding the specific module that the packages were installed on and using the full name to load the module, so if we install a new version of R, the user doesn't have to reinstall the packages.
The user should copy the full name to be used the next time the R module is loaded:I get the following error when trying to generate a figure in R “unable to open connection to X11 display”. How do I fix this
For the X11 issue in R, execute the following within your R script.
An alternative would be to add this option to your ~/.Rprofile as described here: https://stackoverflow.com/a/19916865
How do I install Python packages
If you are attempting to install a python package outside of an anaconda environment, users are able to use the pip command to install python packages within their user home. To utilize the python packages installed of your home directory, you will need to first make sure to load the same python module prior to trying to use the python packages you previously installed.
I am installing something other than miniconda but need to modify my .bashrc, what can I do
In the case of miniconda, we recommend not installing your own miniconda, but utilize the anaconda modules that already exist on the cluster and creating a conda environment instead. This process does not require you to modify your .bashrc at all and only requires you to load the anaconda module and activate and deactivate the conda environments you have created.
Below is an example of how one would install and run ipyrad:
Installing/creating a ipyrad virtual environment
Loading & executing the ipyrad environment
NOTE: Contrary to what Anaconda might say after you create a new environment you need to use source activate and NOT conda activate on Mana.
How do I run MPI jobs on the cluster
Each user home should have a directory named “examples” which contains a template submission scripts to use. You may notice for the MPI examples, we have two different scripts. One shows how to setup properly for the QDR Infiniband (IB) network, another shows how to properly while the other is for systems that do not have access to the IB network.
My MPI job does something very odd and fails soon after submission. What am I doing wrong
In case you have an MPI job and you are getting odd failures as you start your job, please verify if you are submitting the job from a compute node via an interactive session or the login node. If you are submitting it via an interactive session from a compute node, you can first try and see if using the following parameter fixes your problem:
Setting the distribution parameter as shown will return it to the defaults, instead of trying to use the setting generated by SLURM for the interactive session. If this does not fix your submission problem, please email us so we can investigate your problem.
When I use a newer version of GCC to compile my code, it fails with an error about ld.gold. How do I fix this
The error you are encountering is due to ld.gold or just gold (the linker that is being used to finally build the executable) not supporting a flag your build process requires. By default, most if not all the GCCcore modules do not provide a newer linker/version of gold. The reason for this is because gold is not part of the compiler, but is provided by a separate package known as binutils. Since module for a newer version of binutils is not provided, the build process is using the default version of gold that comes with the operating system.
As a result, to fix this particular error, you would want to load a binutils module along side your choice of GCCcore.