All Projects → ArangoGutierrez → Singularity-tutorial

ArangoGutierrez / Singularity-tutorial

Licence: BSD-3-Clause license
Singularity 101

Projects that are alternatives of or similar to Singularity-tutorial

Singularity
Singularity: Application containers for Linux
Stars: ✭ 2,290 (+7287.1%)
Mutual labels:  hpc, singularity, rootless-containers
Hiop
HPC solver for nonlinear optimization problems
Stars: ✭ 75 (+141.94%)
Mutual labels:  hpc, mpi
t8code
Parallel algorithms and data structures for tree-based AMR with arbitrary element shapes.
Stars: ✭ 37 (+19.35%)
Mutual labels:  hpc, mpi
Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (+174.19%)
Mutual labels:  hpc, mpi
azurehpc
This repository provides easy automation scripts for building a HPC environment in Azure. It also includes examples to build e2e environment and run some of the key HPC benchmarks and applications.
Stars: ✭ 102 (+229.03%)
Mutual labels:  hpc, mpi
Easylambda
distributed dataflows with functional list operations for data processing with C++14
Stars: ✭ 475 (+1432.26%)
Mutual labels:  hpc, mpi
Batch Shipyard
Simplify HPC and Batch workloads on Azure
Stars: ✭ 240 (+674.19%)
Mutual labels:  hpc, mpi
pyccel
Python extension language using accelerators
Stars: ✭ 189 (+509.68%)
Mutual labels:  hpc, mpi
Dash
DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science
Stars: ✭ 134 (+332.26%)
Mutual labels:  hpc, mpi
Hpcinfo
Information about many aspects of high-performance computing. Wiki content moved to ~/docs.
Stars: ✭ 171 (+451.61%)
Mutual labels:  hpc, mpi
az-hop
The Azure HPC On-Demand Platform provides an HPC Cluster Ready solution
Stars: ✭ 33 (+6.45%)
Mutual labels:  hpc, mpi
hp2p
Heavy Peer To Peer: a MPI based benchmark for network diagnostic
Stars: ✭ 17 (-45.16%)
Mutual labels:  hpc, mpi
Ucx
Unified Communication X (mailing list - https://elist.ornl.gov/mailman/listinfo/ucx-group)
Stars: ✭ 471 (+1419.35%)
Mutual labels:  hpc, mpi
Ohpc
OpenHPC Integration, Packaging, and Test Repo
Stars: ✭ 544 (+1654.84%)
Mutual labels:  hpc, mpi
Mpich
Official MPICH Repository
Stars: ✭ 275 (+787.1%)
Mutual labels:  hpc, mpi
Ompi
Open MPI main development repository
Stars: ✭ 1,221 (+3838.71%)
Mutual labels:  hpc, mpi
wxparaver
wxParaver is a trace-based visualization and analysis tool designed to study quantitative detailed metrics and obtain qualitative knowledge of the performance of applications, libraries, processors and whole architectures.
Stars: ✭ 23 (-25.81%)
Mutual labels:  hpc, mpi
gpubootcamp
This repository consists for gpu bootcamp material for HPC and AI
Stars: ✭ 227 (+632.26%)
Mutual labels:  hpc, mpi
Core
parallel finite element unstructured meshes
Stars: ✭ 124 (+300%)
Mutual labels:  hpc, mpi
Foundations of HPC 2021
This repository collects the materials from the course "Foundations of HPC", 2021, at the Data Science and Scientific Computing Department, University of Trieste
Stars: ✭ 22 (-29.03%)
Mutual labels:  hpc, mpi

Creating and running software containers with Singularity

How to use Singularity!

Introduction

What IS a software container anyway? (And what's it good for?)

A container allows you to stick an application and all of its dependencies into a single package. This makes your application portable, shareable, and reproducible.

Containers foster portability and reproducibility because they package ALL of an applications dependencies... including its own tiny operating system!

This means your application won't break when you port it to a new environment. Your app brings its environment with it.

Here are some examples of things you can do with containers:

  • Package an analysis pipeline so that it runs on your laptop, in the cloud, and in a high performance computing (HPC) environment to produce the same result.
  • Publish a paper and include a link to a container with all of the data and software that you used so that others can easily reproduce your results.
  • Install and run an application that requires a complicated stack of dependencies with a few keystrokes.
  • Create a pipeline or complex workflow where each individual program is meant to run on a different operating system.

How do containers differ from virtual machines (VMs)

Containers and VMs are both types of virtualization. But it's important to understand the differences between the two and know when to use each.

Virtual Machines install every last bit of an operating system (OS) right down to the core software that allows the OS to control the hardware (called the kernel). This means that VMs:

  • Are complete in the sense that you can use a VM to interact with your computer via a different OS.
  • Are extremely flexible. For instance you an install a Windows VM on a Mac using software like VirtualBox.
  • Are slow and resource hungry. Every time you start a VM it has to bring up an entirely new OS.

Containers share a kernel with the host OS. This means that Containers:

  • Are less flexible than VMs. For example, a Linux container must be run on a Linux host OS. (Although you can mix and match distributions.) In practice, containers are only extensively developed on Linux.
  • Are much faster and lighter weight than VMs. A container may be just a few MB.
  • Start and stop quickly and are suitable for running single apps.

Because of their differences, VMs and containers serve different purposes and should be favored under different circumstances.

  • VMs are good for long running interactive sessions where you may want to use several different applications. (Checking email on Outlook and using Microsoft Word and Excel).
  • Containers are better suited to running one or two applications non-interactively in their own custom environments.

Singularity

Singularity is a 3 years container runtime software originally developed by Greg Kurtzer while at Lawrence Berkley National labs. It was developed with security, scientific software, and HPC systems in mind.

philosophy

Singularity assumes (more or less) that each application will have its own container. It does not seek to fully isolate containers from one another or the host system. Singularity assumes that you will have a build system where you are the root user, but that you will also have a production system where you may or may not be the root user.

strengths

  • Easy to learn and use (relatively speaking)
  • Approved for HPC (installed on some of the biggest HPC systems in the world)
  • Can convert Docker containers to Singularity and run containers directly from Docker Hub
  • Sylabs container Library Sylabs Library
  • Singularity Hub!
    • A place to build and host your containers similar to Docker Hub

Singularity shines for scientific software running in an HPC environment. We will use it for the remainder of the class.

Tutorial steps

Want to learn more:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].