• Aucun résultat trouvé

Analyse de la performance sur le temps d’ex´ ecution de la fonction ascpot

5.6 Analyse de la performance sur le temps d’ex´ecution

de la fonction ascpot

Nous avons remarqu´e que lors d’un calcul d’´energie par l’approche combin´ee DFTB / FMO / PCM sur 1244 atomes, la fonction ascpot est appel´ee 343 fois. Nous allons concentrer nos efforts dans cette section sur le temps d’ex´ecution de la fonction ascpot. L’objectif est d’´evaluer le portage GPU le plus performant r´ealis´e actuellement. Le portage GPU ´evalu´e est donc celui avec blocking. Nous allons comparer les temps de ce portage GPU pour une ou deux cartes K20X avec la version CPU la plus efficace (socket-intel-mkl). Dans un premier temps nous allons nous int´eresser `a l’extensibilit´e forte du code CPU en fonction du nombre de cœurs de calcul utilis´es pour l’ex´ecution de la fonction ascpot toute seule.

Extensibilit´e forte du code CPU en fonction du nombre de cœurs

de calcul

Nous avons d´ej`a pr´ec´edemment ´etudi´e l’extensibilit´e du code CPU de GAMESS en re-portant le temps d’ex´ecution total. Dans cette section nous regardons l’extensibilit´e de la fonction ascpot en fonction du nombre de processeurs utilis´es. La figure 5.7 illustre l’ex-tensibilit´e forte du code existant. Nous pouvons voir sur notre exemple (calcul d’´energie DFTB / FMO / PCM sur 1244 atomes et 8946 ´el´ements de surface de cavit´e de solva-tation) que le temps d’ex´ecution suit une progression lin´eaire en fonction du nombre de cœurs de calcul avec un facteur 15 d’acc´el´eration lorsque 16 processeurs sont utilis´es.

Figure 5.7 – Extensibilit´e de la fonction ascpot en fonction du nombre de cœurs CPU de calcul

Le code actuel impl´ement´e dans GAMESS permet donc de tirer correctement profit des ressources parall`eles disponibles pour la fonction ascpot. Ce constat sur extensibilit´e de la fonction ascpot est rassurant par rapport `a l’extensibilit´e du temps d’ex´ecution total.

Nous pouvons donc prendre comme r´ef´erence pour ´evaluer le portage GPU les temps de calcul de l’installation socket-intel-mkl avec 16 cœurs. Gardons tout de mˆeme en tˆete plusieurs diff´erences :

• Le code CPU utilise des r´egions pour acc´el´erer le calcul de la fonction ascpot, ce que ne fait pas le portage GPU.

• Le code CPU utilise l’installation en mode socket tandis que le portage GPU utilise la biblioth`eque LIBCCHEM.

Comparaison des temps de calcul de la fonction ascpot du portage

GPU (blocking ) `a l’installation CPU (socket-intel-mkl )

Dans le but de simplifier le propos, nous allons nous concentrer ici sur le portage GPU avec blocking. Nous allons comparer les temps de ce portage GPU avec deux versions CPU provenant de l’installation socket-intel-mkl, l’une avec l’optimisation des r´egions et l’autre sans. En effet au mˆeme titre qu’il est important d’avoir une r´ef´erence aussi optimis´ee que possible, il est aussi important pour ˆetre honnˆete de comparer des algorithmes similaires. Dans notre cas le portage GPU ne tire pas profit de l’approximation des r´egions donc avoir une r´ef´erence CPU qui ne tire pas profit de cette approximation des r´egions est int´eressant pour analyser les performances du portage GPU.

La fonction ascpot est appel´ee plusieurs fois au cours d’une ex´ecution. Pour ´evaluer ses performances deux valeurs sont r´ecup´er´ees :

• La somme de l’ensemble des temps d’ex´ecution des appels `a la fonction ascpot. • La moyenne de l’ensemble des temps d’ex´ecution des appels `a la fonction ascpot. Afin d’´evaluer le temps d’ex´ecution pass´e dans la fonction ascpot trois exemples sont consid´er´es. La description de la surface de la cavit´e de solvatation avec plus de triangles est possible via une option de GAMESS. Chaque exemple poss`ede un certain nombre d’´el´ements de surface, ici : 8 964, 35 694 et 142 795. L’int´erˆet d’augmenter la taille du probl`eme est d’´evaluer comment se comporte le mat´eriel en fonction de la quantit´e de donn´ees `a traiter (l’extensibilit´e faible du chapitre 1).

Utilisation d’une seule carte graphique K20X

Les sommes des temps de la fonction ascpot sont illustr´ees dans la figure 5.8. Trois temps sont report´es par exemple. Pour le premier exemple (8 946 ´el´ements) le temps CPU avec l’approximation r´egionale est le plus court (7,9 s), puis le code CPU sans l’approximation r´egionale (10,1 s) et enfin le portage GPU (11,8 s). Le deuxi`eme exemple (35 694 ´el´ements) produit des temps ordonn´es de mani`ere similaire au premier exemple. Quant au troisi`eme exemple (142 795 ´el´ements) le portage GPU (3 441 s) est plus rapide que le code CPU sans l’approximation des r´egions (3 686 s) mais le portage GPU reste plus lent que le code CPU avec l’approximation des r´egions (2 055 s).

Nous pouvons constater qu’avec une carte graphique K20X, l’installation CPU (socket-intel-mkl) reste plus performante sur tous les exemples. L’utilisation d’une carte graphique K20X ne permet donc pas d’acc´el´erer les performances par rapport au code avec l’approxi-mation des r´egions. En revanche, si l’on compare l’utilisation d’une seule carte graphique au code CPU sans approximation, nous pouvons constater que les performances sont similaires.

Figure 5.8 – Temps d’ex´ecution de la fonction ascpot d’un calcul d’´energie DFTB / FMO / PCM sur un syst`eme comportant 1244 atomes et trois maillages diff´erents pour la cavit´e de solvatation : 8 946 (a), 35 694 (b) et 142 795 (c) triangles. Installations CPU (socket-intel-mkl) avec ou sans l’approximation des r´egions et le portage GPU (blocking) sur une carte graphique K20X.

La performance d´ecrite pr´ec´edemment sur les sommes des temps de la fonction ascpot pour une carte graphique K20X se retrouve (figure 5.9) lorsque nous regardons le temps moyen des ex´ecutions rencontr´ees sur les trois instances : 8 946, 35 694 et 142 795 ´el´ements. Le code CPU avec approximation s’ex´ecute plus rapidement sur ces trois instances, avec par exemple, un temps d’ex´ecution moyen de la fonction ascpot de 4,14 s pour le code CPU (socket-intel-mkl) avec l’approximation des r´egions et de 6,91 s pour le portage GPU (blocking) sur l’exemple avec 142 795 ´el´ements tandis que le code CPU sans approximation ex´ecute en moyenne en 7,40 s les appels `a la fonction ascpot.

Figure 5.9 – Moyennes des temps d’ex´ecutions de la fonction ascpot d’un calcul DFTB / FMO / PCM sur un syst`eme comportant 1244 atomes et trois maillages diff´erents pour la cavit´e de solvatation : 8 946 (a), 35 694 (b) et 142 795 (c) triangles. Installations CPU (socket-intel-mkl) avec ou sans l’approximation des r´egions et le portage GPU (blocking) sur une carte graphique K20X.

L’algorithme port´e est it´eratif et utilise des variables flottantes double pr´ecision ce qui n’est pas un environnement favorable `a l’utilisation de cartes graphiques. Nous pouvons cependant constater qu’`a approximation r´egionale ´egale, les temps d’ex´ecution du portage GPU et de l’impl´ementation CPU sont similaires.

Maintenant que nous avons vu les performances du portage GPU (blocking) avec une carte graphique sur la partie port´ee (fonction ascpot) du logiciel GAMESS, regardons les performances lors de l’utilisation de deux cartes graphiques K20X.

Utilisation de deux cartes graphiques K20X

Pour utiliser deux cartes graphiques, les donn´ees `a calculer sont r´eparties sur les deux GPU simplement en d´ecoupant en deux le vecteur de donn´ees `a calculer et en dupliquant les donn´ees d’entr´ees (coordonn´ees et charges des ´el´ements) sur les GPU.

Dans ce cadre, pour le premier exemple avec 8 946 ´el´ements, les performances de l’installation CPU avec l’approximation r´egionale et du portage GPU (blocking) sont similaires avec 8 s pour la somme des temps de la fonction ascpot. L’installation CPU sans l’approximation des r´egions prend elle plus de temps : 10 s.

Pour les deux autres exemples (35 694 et 142 795 ´el´ements) le code CPU sans l’ap-proximation r´egionale reste le code le plus lent (respectivement 175 s et 3 687 s) puis vient le code CPU avec l’approximation (respectivement 110 s et 2 055 s) et enfin le plus rapide est le portage GPU (93 s et 1 718 s) utilisant deux cartes graphiques K20X.

Figure 5.10 – Temps d’ex´ecution de la fonction ascpot d’un calcul d’´energie DFTB / FMO / PCM sur un syst`eme comportant 1244 atomes et trois maillages diff´erents pour la cavit´e de solvatation : 8 946 (a), 35 694 (b) et 142 795 (c) triangles. Installations CPU (socket-intel-mkl) avec ou sans l’approximation des r´egions et le portage GPU (blocking) sur deux cartes graphiques K20X.

Nous pouvons voir que l’utilisation de deux GPU permet dans deux de nos exemples d’am´eliorer significativement la performance en comparaison au code CPU socket-intel-mkl, sans l’approximation des r´egions. L’augmentation de la quantit´e de cartes graphiques est un des axes de d´eveloppement des centres de calcul `a ce jour. Nous pouvons donc constater par le biais de cette section 5.6 que ce type de fonction (fonctions similaires `a ascpot) peut tirer profit de l’´evolution des architectures en cours.

Nous allons dans la section suivante regarder la performance ´energ´etique des diff´erents codes afin de pouvoir conclure l’analyse du portage GPU r´ealis´e sur le logiciel GAMESS.