exemple
Ceci est une ancienne révision du document !
Exemple de scripts
Script pour un programme multithread à mémoire partagée (type openMP)
Le script suivant montre comment réserver 8 CPU pour un programme (typiquement un programme utilisant 8 threads en mémoire partagée : programme écrit avec openMP par exemple ou logiciel multithread comme Cplex).
#!/bin/bash # ================== options de sbatch =================================== #SBATCH --ntasks=1 # une seule task... #SBATCH --cpus-per-task=8 # ... de 8 threads : réservation de 8 CPUs # =====================ligne de commande ================================== # nom du programme précédé de la commande time pour avoir les temps de calcul time ./exe
Script pour un programme multi processus à mémoire distribuée (type MPI)
SLURM est fait pour fonctionner avec MPI. Par défaut, il lancera autant de processus que de cœurs disponibles. On peut utiliser l'option bind-to-core de mpirun pour attacher les processus MPI sur les cœurs.
#!/bin/bash # ============= options de sbatch (ici réservation de 32 cores)================== #SBATCH --ntasks=32 # 32 tasks car 32 processus en parallèle #SBATCH --ntasks-per-core=1 # on met une seule task par CPU # =====================ligne de commande ================================== mpirun ./exe
Script pour un programme utilisant les GPU Nvidia
Remarque : il faut compiler sur la machine qui possède les GPU, c'est pourquoi ce script inclut la compilation.
#!/bin/bash # ============= options de sbatch ================== #SBATCH --partition=GPU-nvidia #SBATCH --constraint=GPU-NVIDIA-P5000 #SBATCH --ntasks=1 # =====================lignes de commande ================================== make clean make time ./vectorAdd
Télécharger l'exemple complet (code en C / CUDA) : exemples.zip
Merci à Mélodie Angeletti pour son aide sur l'utilisation des GPU.
exemple.1517557494.txt.gz · Dernière modification : 2018/10/11 22:49 (modification externe)