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.
Budowania obrazu należy przeprowadzić interaktywnie na węźle klastra lub wykorzystać system kolejkowy SLURM.
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'))"