Cet article traite de la version GPU Gaussian 16 B01
Cette version a été compilée dans l’environnement PGI et CUDA :
g16root=/usr/local/gaussian/GAUSSIAN16/B01/g16_gpu_cuda_9.0/
export g16root
. $g16root/g16/bsd/g16.profile
module purge
module load pgi/18.3 cuda/9.0.176.2
Utilisation Gaussian 16 avec GPU
Modifications du fichier .com : nouveaux paramètres %cpu et %gpucpu
%cpu liste des cores utilisés lors du calcul
%gpucpu liste des GPU et liste des cores contrôlant les GPU
- Exemple 1 :
%cpu=0 core 0 est utilisé
%gpucpu=0=0 le GPU 0 est controlé par le core 0 - Exemple 2 :
%cpu=0-1 core 0 et 1 sont utilisés
%gpucpu=0-1=0-1 le GPU 0 et le GPU 1 sont contrôlés respectivement par le core 0 et le core 1 - Exemple 3 :
%cpu=0-1,18-19 les cores numéros 0,1 18,19 sont utilisés
%gpucpu=0-3=0,1,18,19 les GPU 0,2,3 Et 4 sont contrôlés par les cores numéro 0,1,18 et 19 - Exemple 4 :
%cpu=0-17,18-35 tous les cores sont utilisés (du numéro 0 au numéro 35)
%gpucpu=0-3=0,1,18,19 les GPU 0,2,3 Et 4 sont controlés par les cores numéro 0,1,18 et 19
Résultat commande nvidia-smi topo -m :
[@olympevolta0 ~]$ nvidia-smi topo -m
GPU0 | GPU1 | GPU2 | GPU3 | CPU Affinity | |
GPU0 | X | NV2 | NV2 | NV2 | 0-17,36-53 |
GPU1 | NV2 | X | NV2 | NV2 | 0-17,36-53 |
GPU2 | NV2 | NV2 | X | NV2 | 18-35,54-71 |
GPU3 | NV2 | NV2 | NV2 | X | 18-35,54-71 |
Exemples de script slurm :
$ ls -1 /usr/local/gaussian/exemple_script_slurm_g16/
exemple_1cpu_1gpu_script_g16_gpu_test1.slurm
exemple_36cpu_4gpu_script_g16_gpu_test1.slurm
exemple_4cpu_4gpu_script_g16_gpu_test1.slurm
g16_test1_1cpu_1gpu.com
g16_test1_36cpu_4gpu.com
g16_test1_4cpu_4gpu.com