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