Intro to Accessing the Cluster and the Module System

Introduction: This workshop will introduce users on how to remotely access the clusters and how to set up and personalize their environment for their computational needs. After the workshop, participants will understand:

  • How to (remotely) access the cluster.

  • How to set up various environments allowing the use of a variety of programming languages, applications, libraries and utilities.

Participants will require an intro level of experience of using Linux, as well as the ability to use a text editor from the command line.

Course Goals:

  • Introduce a number of ways to access the Beartooth cluster.

  • What is LMOD and how to use it to set up an Environment.



01: Accessing the Cluster

Topics:

  • Access the Beartooth Cluster

  • Navigate various folders.

  • Take a look at the basic system/cluster.


Exercises: Log on, and create and run a python script

  • (SSH onto a login node – if using an existing ARCC account.)

  • Access via SouthPass and start a shell terminal tab.

  • Commands: man, id, groups

  • Commands: arccquota

  • Create and run a Python script.


You have an Existing Account: Log on 

There are a number of ways to access the cluster: Logging Into HPC:

  • Open up a terminal.

  • Use a client such as MobiXTerm

ssh <username>@beartooth.arcc.uwyo.edu [username@blog1 ~]$ # UW: Beartooth (blog1/blog2)

Temporarily use a test account:

  1. Open up Chrome

  2. Navigate to: https://southpass.arcc.uwyo.edu/

  3. Start Beartooth Shell Access

image-20240522-222558.png

Download Slides:


Opening Screen:

  • Message of the day

  • Storage usage - across project spaces

General Format:[<username>@<server/node-name> <folder>]$ [<username>@blog2 ~]$ arccquota # ‘man’ is only available on the login nodes. # It is not available on the compute nodes. [<username>@blog2 ~]$ man id [<username>@blog2 ~]$ id –-version [<username>@blog2 ~]$ id [<username>@blog2 ~]$ groups

Which groups?

[arcc-t05@blog1 ~]$ id uid=10339923(arcc-t05) gid=10339923(arcc-t05) groups=10339923(arcc-t05),89997(beartooth),446824(uwit-research-arccanetraining),5735503(teton_backup),6000211(arccanetrain) [arcc-t05@blog1 ~]$ groups arcc-t05 beartooth uwit-research-arccanetraining teton_backup arccanetrain

Beartooth: FileSystem 

Type

Location

Description

home

/home/<username>

Space for configuration files and software installations.

project

/project/<project-name>/[username]

Space to collaborate among project members. Data here is persistent and is exempt from purge policy. 

gscratch

/gscratch/<username>

Space to perform computing for individual users. Data here is subject to a purge policy defined below. 

node local scratch

/lscratch

Only on compute.

memory filesystem

/dev/shm

RAM-based tmpfs available as part of RAM for very rapid I/O operations; small capacity.


Home and Project Folders:


Copy files:


Let's run a python script:


Let's run a python script: Fixed:


02: Setting up the Environment and LMOD

Topics:

  • LMOD: Setting up an Environment.

  • What’s available.

  • How to find (spider) modules.

  • Loading / purging modules.

  • Dependencies.


What do we have available?

  • Compilers and eco systems: GNU family, Intel’s oneAPI, Nvidia’s hpc-sdk

  • Languages: C/C+, Fortran, Go, Java, Julia, Perl, Python, R, Ruby, Rust

  • Scientific libraries and toolkits: Built with a specific compiler: GNU by default

  • Standalone applications and utilities: Installed using:

    • Conda

    • Containers: running Singularity (not Docker)

      • We can create a Singularity image from a Docker image.

    • Binaries/Executables

 

Beartooth Software List


Setting up your environment: 


Exercises

  • Environment variables: env, echo

  • Find and load modules.

  • Commands: module spider/load/purge/ml

  • Understand dependencies and compiler stacks.

  • Run our python script using a specific version of python.

  • Load R (and Python).

  • Default modules – why define the module version.


Environment Variables:


What’s being used?


You can’t break the System:

sudo: you will not be granted sudo access – do not ask!


What’s available?


What’s available? Compiler tree:


What’s available? Modules loaded by default:


Module load/spider: Dependencies:


What’s different between these command-lines?


What’s different between these command-lines? Dependencies:


Setup Python environment:


What’s happened to the PATH environment variable?


Can we use the R language?


Can we use the R language? Fixed:


Can we also use the Python language?

Remember:

  • Only one compiler/version can be loaded into your environment at a time.

  • Can only load languages/applications built with the same compiler. 

  • But, even this can introduce dependency issues.


Defaults:


Defaults:

Modules change and are updated.

The defaults will change and update – you might not realize.

Please define the version of a module you’re using.

Helps to replicate and triage.


Advanced: Why do versions matter?

Consider Python Packages installed using pip:

  • You install a package with respect to the version of python you are using.

  • A packages is not automatically available/installed across different versions.

  • If you start using python/3.9 and then swap to python/3.10 you will need to re-install any packages.

It is the same concept for R libraries.


Summary

  • LMOD: Setting up an Environment.