Apptainer/Singularity


W celu wykonania obliczeń na GPU zalecamy użycie skonteneryzowanego środowiska uruchomieniowego. Oprogramowanie Apptainer (dawniej Singularity) pozwala na uruchamianie programów w kontenerze zawierającym uprzednio skonfigurowane paczki oprogramowania wraz z ustawieniami konfiguracyjnymi. Więcej na temat Apptainer/Singularity można znaleźć w dokumentacji Aplikacji narzędziowych i systemowych.
Oficjalne kontenery Nvidia dostępne są pod adresem Nvidia NGC containers, ich pobranie wymaga zalogowania się za pomocą konta Nvidia lub gościa. Poniżej przedstawiono listę przykładowych kontenerów stosowanych w uczeniu maszynowym:

Na potrzeby przykładu uczenia maszynowego, będzie użyty kontener pytorch:21.11-py3.
Pobranie kontenera:

module load trytonp/apptainer/1.3.0
singularity pull docker://nvcr.io/nvidia/pytorch:21.11-py3

Uwaga: w katalogu domowym użytkownik posiada 20 GiB przestrzeni dyskowej. W razie pobierania kontenerów ta przestrzeń zostanie szybko wypełniona. Obejściem na to może być dowiązanie symboliczne katalogu .apptainer w ścieżce /users/scratch1/ do katalogu domowego.

mkdir -p ${TASK_USER_WORK}/.apptainer
rm -fr /users/kdm/${USER}/.apptainer
ln --symbolic ${TASK_USER_WORK}/.apptainer /users/kdm/${USER}/.apptainer

W ten sposób obrazy pobierane z zewnętrznego rejestru będą korzystać z miejsca, w którym przestrzeń dla użytkownika jest znacznie większa.

Uruchomienie kontenera w celu interaktywnego uruchomienia zadania:

singularity run --nv docker://nvcr.io/nvidia/pytorch:21.11-py3

lub

singularity run --nv /pytorch_21.11-py3.sif

Uruchamianie programu, gdzie kontener jest środowiskiem wykonawczym dla zadania:

singularity exec --nv docker://nvcr.io/nvidia/pytorch:21.11-py3 

lub

singularity exec --nv /pytorch_21.11-py3.sif