Vers une parallélisation par bandes en chimie quantique

publicité
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.
Téléchargement