Singularity


Singularity – wirtualne środowisko uruchomieniowe dla niestandardowego oprogramowania.

Singularity umożliwia użytkownikom pełną kontrolę nad środowiskiem, gwarantujący prawidłowe działanie aplikacji/oprogramowania. Oznacza to, że nie jest potrzebna interwencja administratora klastra o zainstalowanie brakującego oprogramowania we wszystkich węzłach lub wydzielenia części węzłów dla użytkownika ze względu na konkretną dystrybucję systemu operacyjnego.

Środowisko przygotowywane jest w formie kontenera, które może być uruchomione w trybie bezpośrednim lub interaktywnym. Użytkownik posiada te same uprawnienia wewnątrz kontenera co poza nim co gwarantuje bezpieczeństwo innych użytkowników.

Integruje się z popularnymi systemami kolejkowymi (np. PBS/SLURM) oraz współpracuje z szybkimi sieciami, takimi jak InfiniBand.

Dodatkowym atutem jest możliwość przygotowywania środowiska z dostępnych obrazów Docker'a.

Najważniejsze informacje:

Uruchomienie modułu (moduły):

module load tryton/singularity/{wersja}

Budowanie obrazów

Z powodu ograniczeń, wynikających z uprawnień użytkowników, przygotowanie obrazu bezpośrednio na klastrze jest niemożliwe.
Jest za to parę sposobów na budowanie obrazów:

  • Zdalne budowanie obrazów w chmurze - API z poziomu klastra (posiadane konto w chmurze, weryfikacja tokenem),
  • Korzystanie z kreatora na stronie cloud.sylabs.io lub singularity-hub.org (logowanie za pomocą konta, np. GitHub),
  • Instalacja Singularity na swoim komputerze (Linux, Mac, maszyna wirtualna z Linux) - lokalne budowanie (testowanie obrazu).

Platformy chmurowe, które zostały wymienione nie są w żaden sposób wymagane do budowania obrazów.
Można korzystać z opcji lokalnego budowania i w razie potrzeby wysyłać zbudowane obrazy na klaster, jednak jest to problematyczne i mało elastyczne.
Świetnie się za to spisze przy nauce, testowaniu oraz wysyłaniu na chmurę gotowych obrazów by wykorzystać je finalnie na klastrze.