Newer
Older
# Singularity on IT4Innovations
On clusters we have different versions of operating systems images. Below you see the available operating systems images.
```console
Salomon Anselm
├── CentOS ├── CentOS
│ ├── 6.9 │ ├── 6.9
│ ├── 6.9-MIC │ ├── 6.9-GPU
For current information on available images, refer to the `ml av` and see statement the `OS`
**Supported OS:**
* CentOS
* Debian
* Ubuntu
* Fedora
**Supported features:**
* GPU - graphics cards
* MIC - Intel Xeon Phi cards
For using modules we prepared special wrappers
* image-exec
* image-mpi
* image-run
* image-shell
* image-update
**image-exec**
Open image and run command into image.
```console
$ ml CentOS/7.3
Your image of CentOS/7.3 is at location: /home/kru0052/.singularity/images/CentOS-7.3_20180220104046.img
image-exec cat /etc/centos-release
CentOS Linux release 7.3.1708 (Core)
```
**image-mpi**
MPI wrapper. More in the chapter [Examples MPI](#MPI)
**image-run**
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
**image-shell**
Start shell into image.
```console
$ ml CentOS/7.3
$ image-shell
Singularity: Invoking an interactive shell within container...
Singularity CentOS-7.3_20180220104046.img:~>
```
**image-update**
If a new image exists, it informs the user and offers an update.
```console
$ ml CentOS/6.9
New version of CentOS image was found. (New: CentOS-6.9_20180220092823.img Old: CentOS-6.9_20170220092823.img)
For updating image use: image-update
Your image of CentOS/6.9 is at location: /home/login/.singularity/images/CentOS-6.9_20170220092823.img
$ image-update
New version of CentOS image was found. (New: CentOS-6.9_20180220092823.img Old: CentOS-6.9_20170220092823.img)
Do you want to update local copy? (WARNING all user modification will be deleted) [y/N]: y
Updating image CentOS-6.9_20180220092823.img
2.71G 100% 199.49MB/s 0:00:12 (xfer#1, to-check=0/1)
sent 2.71G bytes received 31 bytes 163.98M bytes/sec
total size is 2.71G speedup is 1.00
New version is ready. (/home/login/.singularity/images/CentOS-6.9_20180220092823.img)
```
## Examples
In next examples, we will be using Singularity images on clusters.
For classic image
```console
$ ml CentOS/6.9
Your image of CentOS/6.9 is at location: /home/login/.singularity/images/CentOS-6.9_20180220133305.img
```
!!! note
First usage image copy image from /apps/all/OS/... to your /home (.singularity/images)
For special image (GPU, MIC)
```console
$ ml CentOS/6.9-GPU
```
!!! note
For GPU image, you must allocate node with GPU card and for MIC image, you must allocate node with MIC cards.
### MPI
Submited job `qsub -A PROJECT -q qprod -l select=2:mpiprocs=24 -l walltime=00:30:00 -I`
Singularity: Invoking an interactive shell within container...
Singularity CentOS-6.9_20180220092823.img:~> mpirun hostname | wc -l
24
```
!!! warning
You allocate two nodes, but MPI into image use only one node.
```console
$ ml CentOS/6.9
Your image of CentOS/6.9 is at location: /home/kru0052/.singularity/images/CentOS-6.9_20180220092823.img
$ image-mpi hostname | wc -l
48
```
1. Prepare image into your local computer
1. Transfer image to your `/home` (for example `.singularity/image`)
1. Load module Singularity (`ml Singularity`)
1. Use your image
1. Transfer image to your local computer
1. Edit image
1. Load module Singularity (`ml Singularity`)
1. Use your image