CMake

Singularity on SeaWulf

Introduction to Singularity

Singularity is a containerization platform that allows users to run applications in isolated environments, ensuring reproducibility across different computing systems. It is widely used for scientific computing and high-performance computing (HPC) environments like SeaWulf.

Using Singularity on SeaWulf

Singularity provides a powerful way to create and execute containers with custom software environments. On SeaWulf, Singularity is available to users who need to run specific software in a containerized environment. Here is how you can use Singularity effectively:

Key Concepts

Containers are self-contained execution environments that package software, libraries, and dependencies. This allows users to run applications without worrying about compatibility issues with the underlying system.

Creating a Singularity Container

To create a Singularity container, use the singularity build command. You can either create a container from a definition file or use an existing container image from an online repository.

singularity build my_container.sif my_definition.def

This will build a container based on the my_definition.def file and create the image file my_container.sif.

Running a Singularity Container

Once you have created a container, you can run it using the singularity run command.

singularity run my_container.sif

This command will execute the default command specified in the container image. To run a custom command inside the container, use the exec option:

singularity exec my_container.sif my_custom_command

Note: Ensure that your container image is properly configured for the task you want to execute. Singularity supports both interactive and non-interactive commands.

Example: Running a Python Script in a Singularity Container

To run a Python script inside your Singularity container, use the following command:

singularity exec my_container.sif python3 my_script.py

This command runs the my_script.py Python script using Python 3 inside the container.

Using Singularity for Reproducible Research

One of the key benefits of Singularity is its ability to ensure reproducibility of research. By encapsulating your entire environment in a container, you can ensure that your research code runs the same way on different systems, regardless of software or hardware differences.