Running containers
Now days the containerization of applications reached such conservative regarding the performance areas such HPC. We are trying to evaluate possible containers solutions and in particular Singularity, since our preliminary performance tests revealed that Singularity should be preferred option.
The initial singularity
configuration and basic usage example:
# Establish interactive session
srun --pty bash
# Load singularity module
module load singularity
# Run singularity command for first time
# this will create ~/.singularity folder where
# local cached images will be kept
singularity help
# Move ~/.singularity directory on ~/work parittion
mv ~/.singularity ~/work/
ln -s ~/work/.singularity ~/.singularity
# Run example Docker container mounting local folder
mkdir -p ~/work/test-folder
singularity shell -B $HOME/work/test-folder:/test-folder docker://centos
There is some already created container images based on Ubuntu 18.04 located in /opt/containers/singularity
which re ready for use
- Gromacs 2020.1 – is based on OpenMPI 3.1.6 and Gromacs 2020.1 build
- Tensorflow 1.15 – Ready for production machine learning tool set
- Tensorflow 2.1 – Ready for production machine learning tool set
The Tensorflow containers includes following bundle
** tensorflow 1.15 or 2.1
** opencv/4.2.0
** scipy/1.4.1
** matplotlib/3.2.1
** notebook/6.0.3
** jupyter/1.0
** pydicom/1.4.2
** pillow/7.1.2
** scikit-lean/0.22.2
** pandas/1.0.3
example usage running python within tensorflow environment
module load singularity
export IMAGE_BASE=/opt/containers/singularity
singularity run $IMAGE_BASE/tensorflow/1.15/anaconda-2020.1-tensorflow-1.15.simg -c python my_script.py
in case you want to run image in interactive mode with shell
command
module load singularity
export IMAGE_BASE=/opt/containers/singularity
singularity shell $IMAGE_BASE/tensorflow/1.15/anaconda-2020.1-tensorflow-1.15.simg
. /usr/local/etc/profile.d/conda.sh
conda activate tf
and finally when you want to execute with exec
module load singularity
export IMAGE_BASE=/opt/containers/singularity
singularity exec $IMAGE_BASE/tensorflow/1.15/anaconda-2020.1-tensorflow-1.15.simg bash -c ". /usr/local/etc/profile.d/conda.sh && conda activate tf && python test.py"
HPC Laboratory provide public GitHub repository with recipes to build Singularity containers: https://github.com/hpc-lab/singularity