next up previous contents
Next: Autres calculs Up: Calcul du Hamiltonien Previous: Potentiel d'échange-corrélation   Table des matières

Équation de Poisson

La résolution de l'équation de Poisson II.1 par la méthode FALR exposée page [*] est nettement moins simple à paralléliser, en particulier à cause de la transformée de Fourier à trois dimensions qui y intervient : il est facile de diviser la grille entre les processeurs suivant une des directions $ x$,$ y$ ou $ z$ mais il faut réorganiser la grille avant de faire la transformée de Fourier dans la direction suivant laquelle on a partagé la grille. Ce travail est assez exigeant en communications ; on peut faire usage des bibliothèques de programmes qui existent pour cette question(PCCFFT3D de CRAY), et qui exigent une répartition particulière de la grille d'espace entre les processeurs, incompatible avec celle que nous avons dans le reste du code. On peut aussi implanter soi-même cette transformée [60], mais dans notre cas nous avons préféré une approche plus simple.

Comme la densité électronique $ n({\bf r},t)$ n'est pas un champ très gros, lors de son calcul par réduction, il n'est guère coûteux de distribuer après réduction sa valeur à tous les processeurs (par MPI_ALLREDUCE). C'est de toute façon ce que nous faisions lorsque le Hamiltonien était calculé de façon redondante par tous les processeurs. Par conséquent, puisque $ n({\bf r},t)$ est connu par chaque processeur sur toute la grille, l'application de la méthode FALR peut se paralléliser comme sur une machine à mémoire partagée.

Ce point simplifie en particulier le calcul des moments multipolaires intervenant dans la première étape de la méthode : il suffit que chaque processeur calcule les moments sur la partie de la grille qui lui est confiée, et une opération de réduction portant sur quelques dizaines de valeurs(les $ q_{lm}$) permet de paralléliser efficacement la soustraction des << champs de correction >> qui permettent d'avoir une distribution électronique aux premiers moments multipolaires nuls. Un des avantages de paralléliser ce point est que les champs de correction ne sont requis que sur la partie de la grille confiée à chaque processeur, ce qui diminue fortement la quantité de mémoire requise par la méthode FALR. On peut alors aborder le traitement de systèmes nécessitant de grandes grilles. Les auteurs de [55] font remarquer que la méthode FALR transforme les besoins de puissance de calcul en besoins de stockage pour ces champs de correction : le parallélisme permet de gagner sur les deux tableaux.

On peut noter d'ailleurs que lorsqu'on parvient à réduire la taille des tableaux enlevés et rajoutés en dessous d'une valeur critique, on observe une accélération parallèle supérieure au nombre de processeurs : en effet, les accès mémoire sont réduits dans ce cas, et on reste le plus souvent dans la mémoire cache.

La parallélisation de la soustraction et du rajout des champs de correction accélère ainsi fortement la méthode FALR. On peut encore gagner de la vitesse en parallélisant les transformées de Fourier directe et inverse qui interviennent dans la méthode. Ici, nous avons divisé la grille entre les processeurs suivant une direction d'espace(nous avons choisi $ z$) : chaque processeur calcule simultanément la transformée de Fourier suivant les deux directions $ x$ et $ y$ de la << tranche >> de grille dont il est responsable. Ces << tranches >> sont ensuite distribuées à tous les processeurs par MPI_ALLGATHER, ce qui permet, après cette opération, que tous les processeurs connaissent le potentiel sur toute la grille, ce qui est nécessaire pour l'opération de propagation des fonctions d'onde qui intervient une fois que le potentiel est connu.


next up previous contents
Next: Autres calculs Up: Calcul du Hamiltonien Previous: Potentiel d'échange-corrélation   Table des matières
Florent Calvayrac
1999-05-05