11.7.5.2.3 : Production sur la plate-forme GPUs du CC-IN2P3


Parmi les possibilités de déploiement de CMS-MEM en mode production, l'acquisition d'une plate-forme GPUs par le CC-IN2P3 a été une aubaine pour effectuer les analyses requises. Cette machine dispose d'une puissance de calcul importante, répartie sur 10 nœuds équipés chacun de 4 accélérateurs NVIDIA K80. Le portage de CMS-MEM sur cette plate-forme a été effectué sans difficulté et le mode de soumission a été adapté pour répondre aux contraintes du système de queues.

Comme illustré dans la figure 56, le taux d'occupation des GPUs est excellent : les kernels calculent la majorité du temps d'exécution et les communications host/devices sont négligeables. chronologie des communications (traits noirs) et kernels actifs (en bleu) sur un nœud (4 GPUs)

nothing

Figure 56 : Détails au niveau de l'événement des échanges entre l'hôte et un GPU. Pour chaque événement, plusieurs scenarii sous forme d'intégrales sont évalués. Chaque intégrale est calculée plusieurs fois ($5$ fois) pour effectuer un test de khi-deux.



Pour évaluer le gain global en performance de l'application, nous avons pris comme référence l'analyse de 3000 événements. Le temps CPU pour traiter de cette configuration, s'évalue approximativement à 15 heures sur une plate-forme type MPI du CC-IN2P3 comportant 100 cœurs (100 processus MPI). Après quelques difficultés de mise au point des classes (le point délicat étant de coupler des classes "parallèles" avec la réservation des ressources GPUs), nous avons pu lancer nos premières exécutions de production sur 2, 4, puis 6 nœuds. Pour cette dernière configuration, 6 nœuds totalisant 24 GPUs, l'application a requis 1767 secondes. Le facteur d'accélération substantiel obtenu, approximativement 30, n'est pas seulement imputable aux GPUs. La réécriture du calcul des éléments de matrice C++, en kernels C/OpenCL entre dans une part importante de ce gain. Ainsi la puissance de calcul de la configuration avec 6 nœuds est équivalente à une plate-forme MPI comportant 3000 cœurs pour notre application CMS-MEM. Outre le gain en puissance de calcul, l'exploitation des accélérateurs de calcul ou GPU permet de réduire significativement la facture de la consommation électrique des centres de calcul, dans notre cas, cette consommation est réduite d'un facteur 5 noteComparaison effectuée en prenant uniquement en compte la consommation électrique des processeurs (E5-2698 v3 $16$ cœurs) de $135\,$ W et la consommation par GPU de $150\,$ W.

Cette version, première du genre, est en cours d'exploitation sur les nœuds GPUs du CC (prochainement 8 nœuds), et alimente les résultats d'analyse du canal ttH pour la thèse de T.Strebler, libérant ainsi la grille d'une charge significative de travail.

Dans les années à venir, son évolution profitera des axes de réflexion du groupe de travail RI3 "CodeursIntensifs"~[62]Projet codeur intensif, David Chamond et al. et des projets IN2P3 en cours de constitution autour des thèmes des conteneurs, de la génération de code, de la précision et de la reproductibilité numérique dans un contexte de calcul parallèle.