Skip to content

Using Software

John Yocum edited this page Apr 6, 2021 · 11 revisions

On Brain there are 4 distinct ways of running software: Environment Modules, Conda Environments, System Software, "unmanaged software" and Singularity containers. Within these groupings, there are two types of software installs system-wide, and user/group. A system-wide install, is one available to every user of the cluster, and was installed by a system admin. In comparison, a user/group install, is an install that was performed by a user or group into their own directory.

Environment Modules

Listing available Environment Modules (available software):

module avail

List currently loaded Environment Modules:

module list

Loading an environment (adding the application or library to your path):

module load R/R-3.5.3

Unloading an environment (removing an application or library from your path):

module unload R/R-3.5.3

Viewing an Environment Module's help information (not all environments contain help information):

module help FishTaco/fishtaco-1.1.1

Group or User Specific (Installed by a User or Group)

If your group created their Enivronment Modules files in the standard location, /share/groups/GROUP/apps/modulefiles, loading them is easy. Simply run the following command:

module load groups/GROUP

Once loaded, you can list your group's modules with:

module avail

Conda Environments

System-wide (Installed by an Admin)

System-wide conda environments are advertised using Environment Modules. When loading the module, a help screen will be displayed providing guidance on how to activate the conda environment. For demonstration, let's load the fishtaco-1.1.1 environment:

module load FishTaco/fishtaco-1.1.1

The following help screen will appear:

        Activate Anaconda or Miniconda before using FishTaco

                module load Anaconda/Miniconda3-4.5.12

        Activate the FishTaco conda environment with:

                conda activate /share/apps/FishTaco/fishtaco-1.1.1

        Deactivate FishTaco before using other Python environments:
                deactivate
                module unload FishTaco/fishtaco-1.1.1

Based on the help screen, we know we'll need to load the Anaconda/Miniconda3-4.5.12 environment, and then use it to activate the fishtaco-1.1.1 conda environment. When done, we'll need to deactivate the conda environment, and for housekeeping purposes, unload the fishtaco-1.1.1 Environment Module.

If at any point you wish to review the above help message, you can access it with:

module help FishTaco/fishtaco-1.1.1

Group or User Specific (Installed by a User or Group)

If you are using the system-wide Miniconda install for building and managing your environments, load that first:

module load Anaconda/Miniconda3-4.5.12

By loading the system-wide Miniconda install, you have added the conda utility to your path. You can now activate the environment with:

conda activate /home/jtyocum/my-conda-environment

Once you are finished using the conda environment, you'll need to deactivate it:

deactivate

If you are done using conda for this session, unload Miniconda:

module unload Anaconda/Miniconda3-4.5.12

System Software

System software are applications or libraries installed within the global path or environment. They are always accessible, unless another environment overrides them. Using system software is easy, simply run the command. For example, to use the nano text editor:

nano test_file.txt

Unmanaged Software

Unmanaged software are applications or libraries that are installed outside of the global path, and not contained within an Environment Module or Conda Environment. Running these applications can vary, as they may depend on additional environment variables. However, for most applications, it's simply a matter of using their full path. For example:

/home/jtyocum/local_R/R-3.4.0/bin/R

Singularity Containers

Singularity enables the use of container based software distribution, including the ability to run Docker containers. With container technology, you can package scripts, applications, and their dependencies into a single read only file. For more information, see the Singularity user guide at https://sylabs.io/guides/3.7/user-guide/.