Μετάβαση στο περιεχόμενο

Περιγραφή

Singularity is a free, cross-platform and open-source computer program that performs operating-system-level virtualization also known as containerization and allows the use of those simulated enviroments to be used in HPC enviroments.

Singularity 3.6.4

Παράδειγμα χρήσης

Σε αυτό το παράδειγμα θα δούμε πώς υποβάλλουμε δοκιμαστικά ένα περιβάλλον κατασκευασμένο με τη χρήση του Singularity.

Λήψη container image (lolcow)

# module load gcc/9.2.0 singularity/3.6.4
# singularity pull lolcow

Σε περίπτωση που θέλουμε κάποιο container image από συγκεκριμένο αποθετήριο (π.χ. Docker) πρέπει να δώσουμε ως εξής τη δεύτερη εντολή:

Λήψη container image (παράδειγμα με το spades)

# module load gcc/9.2.0 singularity/3.6.4
# singularity pull docker://unlhcc/spades

Εφόσoν γίνει λήψη του container image, αποθηκεύεται με τη μορφή <image_name>_latest.sif.

Για να εκτελέσουμε το container image υπάρχουν αρκετές εντολές. Ωστόσο πρέπει να γνωρίζουμε πως λειτουργεί το περιβάλλον που εμπεριέχεται και τις εσωτερικές εντολές του. Παραδειγματικά:

Εκτέλεση lolcow 1

# singularity run lolcow_latest.sif

Εκτέλεση lolcow 2

# singularity exec lolcow_latest.sif cowsay Mooooo

αφού πλεον έχουμε εξοικειωθεί με το περιβάλλον μέσα στο container image, δημιουργούμε ένα αρχείο (π.χ lolcow_test.sh) και το στέλνουμε για εκτέλεση.

Submission Script

#!/bin/bash
#SBATCH -t 15:00          
#SBATCH -J singularity-3.6.4-job
#SBATCH -p batch

module load gcc/9.2.0 singularity/3.6.4
singularity pull lolcow
singularity exec lolcow_latest.sif cowsay Hello there!

Υποβάλλουμε το παραπάνω script προς εκτέλεση με την εντολή:

# sbatch lolcow_test.sh

Παρακολουθούμε την πορεία της εργασίας με την εντολή squeue.

Το αναμενόμενο αποτέλεσμα φαίνεται στο slurm-<jobid>.out , εκτός αν το περιβάλλον δημιουργεί από μόνο του αρχεία εξωτερικά του container.