Applications & Modules


  1. How do I use the module command

    Please see the following video on how to use the module command on Mana

    .
  2. 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 compiler.  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 in the instances where no compiler or toolchain is appended to a module name.  In these cases, the module was built with what exist in the OS image used for all our computing nodes. 


  3. I am able to use my text editor of choice on the login node, but on the compute nodes I get “command not found”. How to I edit my files on a compute node

    The compute nodes are stripped down to minimize the amount of size the image takes in memory.  As a result, text editors and many other simple applications when needed on the compute nodes are accessed by loading a module.  Users can search the module list using something like the following: (i) module spider vim (ii) module --show_hidden vim .  The cluster has the following text editors as modules:

    module load tools/Vim
    module load tools/Emacs
    module load tools/nano
  4. 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
  5. 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
  6. 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
  7. 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:


    module load lang/R

    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:

    [user@login002 ~]$ srun -I30 -p sandbox -c 1 --mem=6g -t 60 --pty /bin/bash
    [user@node-0002 ~]$ module load lang/R
    [user@node-0002 ~]$ R
    
    R version 3.5.1 (2018-07-02) -- "Feather Spray"
    Copyright (C) 2018 The R Foundation for Statistical Computing
    Platform: x86_64-pc-linux-gnu (64-bit)
    
    > install.packages("A3")
    > Warning in install.packages("A3") :
    'lib = "/opt/apps/software/lang/R/3.5.1-intel-2018.5.274-Python-2.7.15/lib64/R/library"' is not writable
    > Would you like to use a personal library instead? (yes/No/cancel) yes
    > Would you like to create a personal library
    ‘~/R/x86_64-pc-linux-gnu-library/3.5’
    to install packages into? (yes/No/cancel) yes

    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.

    [user@node-0005 ~]$ module avail lang/R/
    
    ------------------------------------------------------------------------------- /opt/apps/modules/all --------------------------------------------------------------------------------
    lang/R/3.5.1-intel-2018.5.274-Python-2.7.15 (L)
    
    Where:
    L: Module is loaded
    
    Use "module spider" to find all possible modules.
    Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".


    The user should copy the full name to be used the next time the R module is loaded:

    module load lang/R/3.5.1-intel-2018.5.274-Python-2.7.15
  8. 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.

    > options(bitmapType='cairo')

    An alternative would be to add this option to your ~/.Rprofile as described here: https://stackoverflow.com/a/19916865


  9. 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.

    srun  -p sandbox --mem=6G -c 2 -t 60 --pty /bin/bash 
    module load lang/Python/3.7.2-intel-2018.5.274 
    pip install --user numpy

  10. 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

    srun -p sandbox --mem=6G -c 2 -t 60 --pty /bin/bash 
    module load lang/Anaconda2 
    conda create -n ipyrad -c ipyrad ipyrad

    Loading & executing the ipyrad environment

    srun -p sandbox --mem=6G -c 2 -t 60 --pty /bin/bash 
    module load lang/Anaconda2 
    source activate ipyrad 
    export HOME=/tmp/ (ipyrad specific)
    ipcluster start --n ${SLURM_CPUS_PER_TASK} --daemonize (ipyrad specific) 
    sleep 200 (ipyrad specific) 
    ipyrad -p params.txt -s 1234567 -c ${SLURM_CPUS_PER_TASK} --ipcluster (ipyrad specific)

    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.


  11. 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.


  12. 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:

    #SBATCH --distribution=”*:*:*” .

    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.

  13. 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.

    [user@node-0004 ~]$ module load   tools/binutils compiler/GCCcore/9.3.0
    [user@node-0004 ~]$