Obliczenia należy wykonywać na węzłach klastra wyposażonych w akceleratory GPU.
Najwygodniej jest skorzystać z kontenera przygotowanego przez NVIDI'ę. Dla zoptymalizowanego uruchomienia warto pobrać obraz i stworzyć lokalną kopię w formacie .sif, zamiast uruchamiać bezpośrednio z Docker Hub. Dzięki temu unikniesz konieczności ponownego pobierania obrazu przy każdym uruchomieniu.
Wcześniej warto ustawić zmienną wskazującą na katalog tymczasowy/cache na zasób dyskowy, który ma odpowiednio dużo miejsca, np w katalogu scratch:
mkdir -p /users/scratch1/${USER}/.apptainer export APPTAINER_CACHEDIR=/users/scratch1/${USER}/.apptainer
Budowa obrazu w formacie sif:
module load trytonp/apptainer/1.3.0 apptainer build tensorflow_24.09-tf2-py3.sif docker://nvcr.io/nvidia/tensorflow:24.09-tf2-py3
Po utworzeniu pliku .sif możesz uruchomić kontener za pomocą Apptainera, zapewniając jednocześnie dostęp do GPU
apptainer exec --nv tensorflow_24.09.sif python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"