Vers une parallélisation par bandes en chimie quantique Christophe Audouze Laboratoire de Mathématique, UMR CNRS 8628, Université Paris-Sud Bât 425 - 91405 Orsay cedex [email protected] Mots-clefs : chimie quantique moléculaire, diagonalisation d’opérateurs Hamiltoniens, algorithmes de recherche d’éléments propres en parallèle, gradient conjugué non linéaire. Introduction Grâce au développement informatique de ces dernières années et à l’essor du calcul parallèle intensif en particulier, la modélisation moléculaire est devenue un véritable enjeu. En effet les systèmes moléculaires qui sont amenés à être étudiés tendent à devenir de plus en plus complexes. Cette complexité est bien-sûr liée à la taille des molécules envisagées (plusieurs centaines de milliers d’atomes pour les molécules biologiques par exemple) ainsi qu’à la structure intrinsèque des atomes eux-mêmes, mais aussi au degré de précision exigé pour le calcul de certaines grandeurs physiques. Le centre d’études du C.E.A. de Bruyères-le-Châtel (D.P.T.A.) a participé à l’élaboration d’un code de calculs de chimie quantique, Ab-Init, en collaboration avec l’Université de Louvain-laNeuve en Belgique. Ce code de calculs qui fait maintenant partie du domaine public est une méthode ab-initio, c’est-à-dire s’appuyant sur les principes constitutifs de la chimie quantique. Plus précisément, l’algorithme utilisé dans Ab-Init cherche à résoudre les équations Kohn-Sham, modèle approximant l’équation de Schrödinger stationnaire. La résolution de ces équations permet d’accéder à l’énergie d’un système moléculaire dans son état fondamental ainsi qu’à sa densité électronique. La stratégie employée dans Ab-Init repose sur la minimisation directe de la fonctionnelle d’énergie par itérations successives de gradient conjugué non linéaire ([1]). La collaboration qui a été mise en place entre le C.E.A. et le laboratoire de Mathématique d’Orsay a pour objectif d’améliorer l’algorithme utilisé dans Ab-Init afin de le rendre parallelisable. 1 1.1 Les équations Kohn-Sham Rappels : les modèles Hartree-Fock et DFT En mécanique quantique, l’état fondamental d’un système moléculaire possédant un nombre fini de K noyaux et un nombre fini de N électrons est donné par le problème variationnel - dit à N corps - suivant : ½ ¾ Z Inf < Hφ, φ >, où : R3N |φ|2 = 1, φ ∈ L2a (R3N , C ) , (1) < . , . > est le produit scalaire dans L2 (R3N , C), φ est une fonction d’onde antisymétrique, |φ(x1 , ..., xN )|2 est la densité de probabilité de présence des électrons (les xi représentent la position des électrons dans l’espace), H Xl’opérateur Hamiltonien s’écrivant (−∆xi + V (xi )) + V N = −∆ + V ext ({xi }) + V N ({xi }), i V (x) = − K X k=1 Zk e le potentiel extérieur représentant les intéractions |x − x̄k | électrons/noyaux, noyaux ayant pour charge et position Zk e et x̄k respectivement, N 1 X e2 V (x) = le potentiel lié à l’intéraction entre les électrons. 2 |xi − xj | N i,j=1 Z Ainsi, l’énergie totale du système s’écrit : Z R |∇φ|2 + 3N R (V ext + V N ) |φ|2 . 3N Notons que l’on a considéré ici des particules non relativistes, et que le spin n’a pas été introduit pour alléger les notations. Par ailleurs, suivant l’approximation de Born-Oppenheimer, les noyaux sont considérés comme des particules classiques et les électrons comme des entités quantiques. Enfin, on ne considérera pas l’optimisation géométrique des molécules ; les positions x̄k des noyaux seront fixées dans l’espace. L’équation d’Euler-Lagrange associée au problème variationnel (1), ou équation de Schrödinger stationnaire, est linéaire : (−∆ + V ext + V N ) φ = εφ. (2) Néanmoins on ne peut espérer simuler numériquement cette équation : les fonctions d’ondes appartiennent en effet à un espace de trop grande dimension 3N , qu’on ne peut évidemment discrétiser par aucune méthode classique (éléments finis ou autres ...). Les modèles de type Hartree-Fock ou ceux issus de la Théorie de la Fonctionnelle de la Densité (DFT) donnent la possibilité, via certaines approximations, d’un traitement numérique et de simulations sur ordinateur. Dans ces deux grandes classes de modèles, on optimise sur N fonctions-tests de L2 (R3 , C ) dans le cas Hartree-Fock, et sur une fonction densité également définie sur R3 dans le cas de la DFT. • Modèle Hartree-Fock : ½ Z HF Inf E (ϕ1 , ..., ϕN ) ; R3 ϕi ϕ∗j ¾ = δij , ϕi ∈ H (R ) , 1 3 (3) E HF (ϕ1 , ..., ϕN ) = N Z X i=1 + − 1 2 R 3 N X |∇ϕi |2 + V ϕ2i ZZ i,j=1 R6 ϕ2i (x)ϕ2j (y) dxdy |x − y| N ZZ ϕi (x)ϕi (y)ϕj (x)ϕj (y) 1 X dxdy. 2 |x − y| R6 (4) i,j=1 La fonction d’onde antisymétrique φ est ensuite obtenue à partir des orbitales moléculaires ϕi par la relation : 1 φ(x1 , ..., xN ) = √ det(ϕi (xj )). N! • Modèle de la DFT : ½ ¾ Z Inf E(ρ) ; R3 ρ=N . (5) La fonctionnelle E est évaluée en la densité ρ du système. Il existe de nombreux modèles (Thomas-Fermi, Thomas-Fermi-Dirac, Thomas-Fermi-Dirac-Von Weizsäcker, etc...), où le choix de la fonctionnelle E dépend essentiellement de celui du terme d’échange-corrélation des électrons. A titre d’exemple E peut s’écrire : Z Z ZZ Z 1 ρ(x)ρ(y) √ 2 dxdy, Vρ+ f (ρ) + E(ρ, ∇ρ) = |∇( ρ)| + 2 3 3 6 |x − y| 3 R R R R Z f (ρ) représentant la fonctionnelle d’échange/corrélation. R3 Les deux approches Hartree-Fock et DFT conduisent aux équations d’Euler-Lagrange nonlinéaires suivantes : H{ϕk } ϕi = (−∆ + V ext + W(ϕ1 , ..., ϕN )) ϕi = εi ϕi avec i = 1...N , (6) 1 0 W({ϕj }) = ρ ∗ + f (ρ) dans les modèles issus de la DFT, |x| ³X 1 1 ´ W({ϕ }) = ρ ∗ − ϕ ϕ ∗ dans le modèle Hartree-Fock. j i j |x| |x| j L’obtention de l’état fondamental du système revient à trouver les N plus petites valeurs propres εi de l’opérateur H{ϕk } et les fonctions propres associées. (P.-L.Lions a montré pour HartreeFock que le problème de minimisation, bien que non linéaire et non convexe, admet une solution en calculant les points critiques de la fonctionnelle énergie, voir [2]). L’approximation suivante consiste maintenant à transformer le problème aux valeurs propres (6) de dimension infinie en un problème de dimension finie. Pour cela, les fonctions ϕi sont développées dans une base de dimension finie {χj , j = 1...M } (en LCAO par exemple (Local Combination of Atomic Orbitals) on développe dans des bases d’orbitales atomiques). Numériquement on est ainsi conduit à résoudre le problème H̃ϕi = εi S̃ϕi , (7) problème aux valeurs propres généralisé de grande dimension (dimension de la base), non linéaire (H̃ = H̃({ϕk })), où : H̃ est la matrice associée à l’opérateur H{ϕk } du problème (6) : H̃ij = < H{ϕk } χi , χj > , S̃ est la matrice dite overlap : S̃ij = < χi , χj > . La plupart des algorithmes utilisés pour résoudre (7) reposent sur le principe de base suivant (algorithmes SCF, Self Consistent Field) : {ϕ0i } vecteurs initiaux ↓ i début de la m ème boucle SCF ↓ assemblage de la matrice H̃{ϕm j } ↓ diagonalisation, i.e. trouver les N plus petites valeurs propres t.q. H̃ϕm+1 = εm+1 S̃ϕm+1 i i i ↓ fin de la mi ème boucle SCF ↓ test de convergence 1.2 Le modèle Kohn-Sham Il s’agit d’un modèle “hybride” où l’on considère les N électrons du système comme étant indépendants. Il existe, selon la théorie de Hohenberg-Kohn, un unique potentiel V dans lequel N électrons indépendants ont une densité à l’état fondamental égale à celle de N électrons en intéraction. Ce potentiel V va donc dépendre non plus de N fonctions ϕi mais d’une seule fonction inconnue, la densité ρ. Sous ces hypothèses le système des équations Kohn-Sham s’écrit alors : (−∆ + V(ρ)) ϕi = εi ϕi i = 1...N , N X ρ(x) = |ϕi (x)|2 , i=1 < ϕi , ϕj > = δij avec (8) V(ρ) = V ext + V int (ρ) + V XC (ρ), V ext : potentiel lié aux intéractions noyaux/électrons, Z 0 ρ(x ) int V (ρ)(x) = 0 dx : potentiel coulombien du aux électrons, 3 |x − x | R XC V (ρ) : potentiel d’échange-corrélation. Ce modèle s’apparente ainsi à une méthode de type Hartree-Fock (contrainte d’orthogonalité sur les ϕi ), à la différence notable près que le potentiel est fonction de la densité et que les fonctions ϕi ne représentent plus les orbitales moléculaires. Le C.E.A. a développé un code de calculs qui résout les équations Kohn-Sham, et ce par la minimisation directe de la fonctionnelle d’énergie associée au problème (8). L’algorithme utilisé est un algorithme itératif self-consistant basé sur une technique de gradient conjugué (voir [1]). 2 2.1 L’algorithme de Ab-Init Principe • Dans l’algorithme qui est utilisé (voir [1]), on cherche à minimiser le problème suivant : Inf (N X ) < ψi |H|ψi > ; < ψi , ψj >= δij , (9) i=1 où H désigne l’opérateur Hamiltonien du problème (8). On cherche à obtenir le minimum de l’énergie totale en effectuant des itérations de gradient conjugué à chaque boucle SCF. Les fonctions (ou bandes) ψi considérées ici ne sont pas les fonctions ϕi du problème (8), mais à convergence on doit avoir Vect(ψ1 , ..., ψN ) = Vect(ϕ1 , ..., ϕN ). • Au cours d’une boucle SCF, la densité ρ est fixée ; on réalise plusieurs itérations de gradient conjugué (3 ou 4 dans la pratique) pour chaque bande ψi afin de faire décroitre l’énergie. Les fonctions ψi sont alors reorthogonalisées entre elles, et permettent de réactualiser la densité et l’Hamiltonien. Les boucles SCF se poursuivent jusqu’à convergence de l’énergie. • Plus précisément, une boucle SCF comporte les étapes suivantes : m } N bandes orthogonales entre elles de norme 1. Pour chaque bande ψ m on Soit {ψ1m , ..., ψN i réalise quelques itérations de gradient conjugué, c’est à dire : ·calcul de la steepest descent ξim . ·orthogonalisation de ξim par rapport à toutes les autres bandes {ψjm }. ·détermination de la direction conjuguée ζim comme combinaison linéaire de ξim et de ζim−1 . ·orthogonalisation de ζim par rapport à la bande courante ψim et renormalisation. ·recherche de l’énergie minimum : pour ψ(θ) = cos(θ)ψim + sin(θ)ζim , on cherche θmin tel que < ψ(θ)|H|ψ(θ) > soit minimum. Ainsi : ψim+1 = cos(θmin )ψim + sin(θmin )ζim . Remarque : cette méthode ne diagonalise donc pas l’opérateur Hamiltonien en utilisant les méthodes itératives souvent utilisées pour trouver les N plus petites valeurs propres d’un système de grande taille M avec N ¿ M (Lanczos, itération sur un sous-espace, etc). En effet, dans le code Ab-Init l’opérateur Hamiltonien n’est pas connu explicitement, la partie correspondant à l’énergie cinétique étant développée dans une base de Fourier. 2.2 Complexité de l’algorithme A cause de la reorthogonalisation de N vecteurs de dimension M à chaque boucle SCF, le temps de calcul CPU de l’énergie totale est en O(M N 2 ) (plus précisément en O(N 3 ), M et N étant proportionnels). Dans l’optique future de pouvoir effectuer des calculs ab-initio pertinents sur des systèmes moléculaires de plus en plus complexes, il semble donc légitime de vouloir améliorer Ab-Init d’un point de vue algorithmique, afin de le rendre aussi parallélisable que possible. 3 Nouvelles pistes proposées On rappelle que le temps de calcul de Ab-Init est dominé par la reorthogonalisation de toutes les fonctions d’onde d’un Hamiltonien discrétisé qui n’est pas codé en dur mais dont on connait seulement l’action sur un vecteur d’onde. 3.1 Principe L’idée de base repose sur le découpage en parallèle d’une région du spectre discret de l’Hamiltonien, en supposant que l’on peut estimer les bornes de cette bande d’énergie. En exploitant le fait que l’Hamiltonien est un opérateur symétrique et que ses fonctions propres sont “naturellement” orthogonales (dans L2 (RM )), on va chercher à s’affranchir de la contrainte d’orthogonalité de la méthode employée dans Ab-Init, contrainte qui est absolument nécessaire pour considérer le bon sous-espace propre de dimension N et qui garantit la convergence du procédé self-consistant. Plutôt que de résoudre le problème (9) on peut alors considérer l’ensemble de problèmes de minimisation suivant : (N ) X 2 (10) Inf < ψi |(H − λi I) |ψi > ; λi ∈ [a, b] . i=1 On effectue ainsi de manière indépendante la résolution d’un problème de minimisation autour de chaque shift λi , avec le nouvel opérateur (H − λi I)2 . La réussite de la méthode repose d’une part sur le fait qu’il faut calculer des fonctions propres exactes à chaque itération du procédé self-consistant pour garantir leur orthogonalité, et d’autre part sur la nécessité de trouver les N plus petites valeurs propres de l’Hamiltonien dans la bande d’énergie que l’on s’est fixée (la densité électronique dépendant des N premières fonctions propres). Il est donc crucial de disposer d’un algorithme de “découpage” qui permette de parcourir itérativement une bande d’énergie donnée pour trouver les N plus petites valeurs propres, sans en manquer une seule. La recherche autour de chaque shift élimine des bandes dans la plage d’énergie, en laissant des “trous” inexplorés dans lesquels de nouveaux shifts sont alloués et de nouvelles recherches effectuées. Le procédé est réitéré jusqu’à ce que la totalité de la bande d’énergie ait été explorée ; la position des shifts doit être gérée dynamiquement. Un tel algorithme a été implémenté et testé sur de très grands échantillons de valeurs (N valeurs ayant une distribution très fortement concentrée en un point, situation sensée reproduire le fait que le spectre discret d’un Hamiltonien n’est pas uniforme mais souvent concentré autour de certaines valeurs). Asymptotiquement, i.e pour N grand, le nombre total de recherches de valeurs propres est de l’ordre de αN (avec α ≈ 3.7). D’autre part on peut imaginer étendre le principe en effectuant une recherche non plus d’une seule valeur propre autour de chaque shift, mais de n valeurs propres (avec n petit), où une orthogonalisation locale est effectuée. On doit ainsi résoudre le problème de minimisation suivant Nk X n X < ψij |(H − λi I)2 |ψij > ; λi ∈ [a, b], < ψij |ψik >= δjk , Inf (11) i=1 j=1 où Nk = N n représente le nombre de shifts. Du point de vue de la complexité algorithmique, l’orthogonalisation de n fonctions d’onde autour de Nk shifts nécessite Nk × M n2 = nM N ∼ nN 2 opérations. Théoriquement si on alloue à chaque processeur d’une machine parallèle la recherche de n valeurs propres autour d’un shift 2 donné, on aura un temps CPU en O( NNproc ). 3.2 Difficultés rencontrées et propositions Différents test numériques avec Ab-Init ont été effectués pour valider ce nouvel algorithme. Si la technique de découpage d’une bande d’énergie a pu être testée de manière satisfaisante, il n’en n’est pas de même pour le calcul de l’élement propre le plus proche d’un shift donné. En effet, le gradient conjugué appliqué à (H − λI)2 est moins bien conditionné (du point de vue conditionnement des vecteurs propres). Ceci se traduit par une convergence beaucoup plus lente du gradient conjugué, d’autant plus problématique que l’on cherche désormais à calculer de vrais vecteurs propres, ce qui nécessite d’atteindre la convergence. Ce ralentissement de convergence a pu être observé dans le cas des molécules H2 (2 atomes, N =2 bandes, M =752 ondes planes) et du silicium Si (2 atomes, N =5 bandes, M =283 ondes planes) ; avec une molécule de plus grande taille (K2 Se04 , 28 atomes, N =92 bandes, M ∼ 42000 ondes planes) la convergence n’est même plus assurée. Des développements sont actuellement en cours ayant pour objectif d’exploiter la convergence de clusters de vecteurs propres, en gardant à l’esprit d’une part que ce sont les espaces propres qui importent pour le calcul de la densité électronique, et non les vecteurs propres en particulier, et d’autre part que ces espaces propres convergent bien plus rapidement qu’un vecteur propre isolé. Références [1] M.C. Payne - M.P. Teter and D.C. Allan - T.A. Arias and J.D. Joannopoulos Iterative minimization techniques for Ab-initio total-energy calculations : molecular dynamics and conjugate gradients, Reviews of Modern Physics, Vol. 64, No 4, 1992. [2] P.L. Lions, Solutions of Hartree-Fock equations for Coulomb systems, Communications in Mathematical Physics 109, 33-97, 1987.