Skip to content
Snippets Groups Projects
singularity-it4i.md 4.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    # 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-shell           │   ├── 6.9-shell
          │   ├── 6.9-MIC             │   ├── 6.9-GPU
          │   ├── 6.9-MIC-shell       │   ├── 6.9-GPU-shell
          │   ├── 7.3                 │   ├── 7.3
          │   └── 7.3-shell           │   └── 7.3-shell
          ├── Debian                  ├── Debian
          │   ├── 8.0                 │   ├── 8.0
          │   └── 8.0-shell           │   └── 8.0-shell
          ├── Fedora                  ├── Fedora
          │   ├── 26                  │   ├── 26
          │   └── 26-shell            │   └── 26-shell
          └── Ubuntu                  └── Ubuntu
              ├── 16.04                   ├── 16.04
              └── 16.04-shell             └── 16.04-shell
    ```
    
    For current information on available images, refer to the `ml av` statement and the `OS`
    
    ## Available operating systems images
    
    **Supported OS:**
    
    * CentOS
    * Debian
    * Ubuntu
    * Fedora
    
    **Supported features:**
    
    * GPU - graphics cards
    * MIC - Intel Xeon Phi cards
    
    **Type images**
    
    * classic
    * shell - automatics start shell after load module
    
    ## IT4Innovations wrappers
    
    For using modules we prepared special wrappers
    
    * image-exec
    * image-load
    * 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-load**
    
    Settings and loading image. Script for `shell` modules.
    
    **image-mpi**
    
    MPI wrapper. More in the chapter [Examples MPI](#MPI)
    
    **image-run**
    
    Run subscript into image
    
    **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.
    
    ### Load image
    
    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 classic image, but autostart shell
    
    ```console
    $ ml CentOS/6.9-shell
    Singularity: Invoking an interactive shell within container...
    
    Singularity CentOS-6.9_20180220133305.img:> exit
    exit
    Welcome to the normal operating system ()
    ```
    
    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`
    
    ### MPI into image
    
    ```console
    $ ml CentOS/6.9-shell
    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.
    
    ### MPI outside image
    
    ```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
    ```
    
    ## Use own image on cluster
    
    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
    
    ## Edit IT4Innovations image
    
    1. Transfer image to your local computer
    1. Edit image
    1. Load module Singularity (`ml Singularity`)
    1. Use your image