Singularity is a containerization solution designed for high-performance computing cluster environments. It allows a user on an HPC resource to run an application using a different operating system than the one provided by the cluster. For example, the application may require Ubuntu but the cluster OS is Redhat. Conceptually, it is similar to other container software such as Docker, but is designed with several important differences that make it more suited for HPC environments.
- Encapsulation of the environment
- Containers are image based
- No user contextual changes or root escalation allowed
- No root owned daemon processes
Contact CRC if you'd like for us to add those paths to the image.Not able to Bind Paths Due to the KU Community Cluster using RHEL 6.x, users are unable to bind paths to containers. As such $WORK and $SCRATCH will not be in any containers downloaded.
To use Singularity on the KU Community Cluster, load the module:
module load singularity. Containers can be accessed two ways. They can be worked with interactively with by using the
singularity shell /path/to/container command or by running a specific command within the container with the command
singularity exec /path/to/container /path/to/script/or/command. Below you will find all containers currently hosted on the KU Community Cluster.
Run Stacks CPU job
#SBATCH --name=singularity-cpu-test #SBATCH --ntasks=8 #SBATCH --time=6:00:00 #SBATCH --partition=sixhour module load singularity singularity exec /panfs/pfs.local/software/install/singularity/containers/stacks-2.1.img ~/denovo_map.pl --samples /path/to/samples -o /output/path --popmap /path/to/popmap -T 8 -m 6 -M 2 -n 1
Each container can be ran interactively or with a batch job