Managing the Software Environment on SeaWulf

As with most High Performance Computing systems, SeaWulf employs Environment Modules for managing development environments and providing software to users. 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 simplifies shell initialization and lets users easily modify their environment during the session with modulefiles.

Audience: Faculty, Postdocs, Researchers, Staff and Students

This KB Article References: High Performance Computing
This Information is Intended for: Faculty, Postdocs, Researchers, Staff, Students
Last Updated: November 18, 2019


IMPORTANT: There are two directories where modules are stored, shared and local. Local modules are local to the login node while shared modules are used throughout the entire system. The local module is loaded by default by the scheduler but shared is not. Before loading any modules, also load the shared module:


module load shared


Each modulefile contains the information needed to configure the shell for an application. For example, there are many different flavors of MPI available, each with compiler wrappers: mpicc, mpicxx, mpif77 and mpif90 and launchers: mpirun, mpiexec, and mpiexec.hydra, which may have differences depending on the flavor of MPI. The commands specific to each flavor can be accessed by loading the respective module, i.e.:

Intel MPI:

module load intel/mpi/64/2018/18.0.1 


module load mvapich2/gcc/64/2.2rc1

Using Modules

After logging on to Seawulf, users setup their environment by loading modules as needed into the current shell. While many users will code this information directly into their .bashrc or .bash_profile, we tend to discourage users from doing this in order to fully utilize a modular environment. 

The module command is the primary tool used to setup your environment. To get an overview, execute:

module help

The most frequently used commands include:

module avail:  returns a list of the available modules

module load (or add):  adds module to the current environment

module list:  returns a list of all the currently loaded modules

module unload (or remove):  removes a module from the current environment

module purge: removes all loaded modules



Recommended Software Stacks

See the following articles for our recommended software stacks:




Submit a ticket

Additional Information

There are no additional resources available for this article.

Getting Help

The Division of Information Technology provides support on all of our services. If you require assistance please submit a support ticket through the IT Service Management system.

Submit A Ticket

Supported By

IACS Support System