Âé¶¹ÆÆ½â°æ

Skip to main content
Close menu Âé¶¹ÆÆ½â°æ

Environment Modules

 

IMPORTANT: 

We are transitioning to bash as the default shell for all new user accounts.   Users who are currently using tcsh may also switch to bash by submitting a support ticket.

bash is now the more common default shell on Linux systems and is more widely used in documentation, examples, scripting, and automation. For many users, this means that online instructions and sample scripts will work more directly in their login environment.

See the shell differences page for a summary of the most important differences between tcsh and bash, including interactive use, startup files, environment variables, aliases, loops, conditionals, and common scripting constructs.

We support bashas the primary shell environment for user accounts and applications. In order to meld disparate computing platforms into a cohesive user experience, as well as to manage the dozens of software packages which are available on the clusters, we employ a software package called Environment Modules in conjunction with a set of platform-specific shell configuration files.   You can request a bash environment, by emailing [[w|hpc-help]].   If you are using a tcsh environment, all of the rest of the documentation holds for .cshrc.* files.

When a new account is created, it is provisioned with the following set of bash configuration files:

module startup file names for Research Computing HPC clusters
.bashrc_profile recommended settings for login shells, sources your .bashrc for so interactive login shells get the same environment
.bashrc personal environment settings for all subclusters
.bashrc.kuro kuro
.bashrc.femto femto
.bashrc.bora bora & hima
.bashrc.astral astral
.bashrc.gust gust
.bashrc.gulf gulf
.bashrc.james james
.bashrc.potomac potomac
.bashrc.pamunkey pamunkey

On any sub-cluster front-end, ~/.bashrc.$PLATFORM refers to the relevant tcsh configuration file for that sub-cluster. Customize these files to meet your needs. The most recent versions of these files can be found in /usr/local/etc/templates (be sure to ls -a). A default set of environment modules is loaded at the end of the platform-specific .bashrc.* files to get you started.  System-wide environment settings are initialized in

  • /usr/local/etc/sciclone.bashrc on SciClone, and
  • /usr/local/etc/chesapeake.bashrc on Chesapeake.

These files are automatically invoked at the beginning of your personal .bashrc files.


Using environmental modules to load software packages:

To see a complete list of available modules on the current platform, use one of the following commands:

module avail

module whatis


To list your currently loaded modules:

module list

To load a module:

module load <module name>

e..g. 

module load intel/compiler-2024.0

To unload a module:

module unload <module name>

Every interactive login or start of a job is a new session, so the module command can be run interactively or added to a job script to load or remove a module from your environment temporarily, but in many cases it is preferable to incorporate the desired set of modules into the appropriate shell configuration file so they are always loaded whenever you log in or one of your jobs start.

For example, to have the matlab/R2023a  module load for every login/interactive session on the bora cluster, you could edit your .bashrc.kuro file add the line:

module load matlab/R2023a

This would ensure that matlab/R2023a is always available for any interactive or batch session on the bora cluster. Similar configurations can be made for other clusters by editing the corresponding file for each cluster as shown above.