Skip to main content

Prepare software and data

ComingWhen soonthe ..built-in software doesn't fit your needs, feel free to bring your own software to the cluster. This article covers how you can do this in Lmod and containers, and how to share with your teammates.

Lmod

First, please study the official Lmod guide about Personal Modulefiles.

Containers

method 1 - sandbox 
singularity build --sandbox new_alpine/ /singularity/alpine.3.15.3.sif
singularity exec new_alpine vim
singularity exec --writable new_alpine apk update 
singularity exec --writable new_alpine apk add vim
singularity exec new_alpine vim
singularity build new-alpine.sif new_alpine
rm -rf new_alpine
singularity build --sandbox new_alpine/ new-alpine.sif
singularity exec new-alpine.sif vim

method 2 - use Singularity Definition Files
singularity build alpine-with-vim.sif /test/new-alpine.def
singularity exec alpine-with-vim.sif vim

The following example shows how to install the Gym library from OpenAI onto our PyTorch image for reinforcement learning research.

vi gym.def
# BootStrap: localimage
# From: /pfss/containers/pytorch.22.09-py3.sif
#
# %post
#     pip install gym==0.24.1 gym[atari,accept-rom-license]==0.24.1
#     pip install atari-py==0.2.9 pybullet==3.2.5

They are basically just a .sbatch script, optionally plus some metadata.