Software

Last updated August 27, 2024

Laguna comes equipped with a comprehensive software stack designed for high-performance computing. Full user guides for each of these can be found on the CARC website.

0.0.0.1 Software Module System

On the Laguna cluster, users can find and load software using the Lmod module system. Lmod dynamically changes your shell environment using module files to ensure the software applications and libraries you use are compatible. Module files are configuration files, written as Lua scripts, that instruct how to make an application or library available during your shell session. Typically, a module file contains instructions to initialize or modify environment variables, such as PATH.

Using a module system like Lmod is helpful because applications and libraries compiled with one compiler are not necessarily compatible with applications and libraries compiled with a different compiler, and your shell environment must be changed to accommodate these incompatibilities. With Lmod, resetting your environment is done dynamically when you load new modules. Loading a module will make available only compatible software for you to use. In this way, modules are organized in a hierarchy based on compilers.

0.0.0.2 Conda

Conda is a package and environment manager primarily used for open-source data science packages for the Python and R programming languages. It also supports other programming languages like C, C++, FORTRAN, Java, Scala, Ruby, and Lua.

0.0.0.3 Jupyter Kernels

A Jupyter kernel is a programming language-specific process that executes the code contained in a Jupyter notebook. Kernels can be accessed via Laguna OnDemand in the JupyterLab interactive app.

When installing kernels, make sure to use descriptive names in order to distinguish among them. Once installed, when launching Jupyter on OnDemand, the kernels will show up on a Launcher tab (File > New Launcher) and when selecting kernels through other methods.

0.0.0.4 CMake

CMake is an open-source, cross-platform family of tools for building, testing, and packaging software.

0.0.0.5 Git

Git is an open-source version control system primarily used for software development. It has many appealing features, including seamless branching and merging, fast performance, and easy-to-learn workflows.

Tutorials:

Web books:

0.0.0.6 Tmux

Tmux is a terminal multiplexer, enabling a number of terminals to be created, accessed, and controlled from a single screen. Tmux may be detached from a screen, continue running in the background, and then later reattached, even after logging out from Laguna.

Some use cases for tmux on Laguna are:

  • Backgrounding long-running data transfers
  • Splitting the screen of one terminal into “panes” for interactive jobs
    • For developing scripts and programs interactively
    • For process monitoring
  • Saving terminal sessions
  • Restarting dropped terminal sessions

Tutorials:

Web books: