next up previous contents index
suivant: III.D Calcul des termes intégraux du système monter: III.C Performances des codes Helmholtz et Maxwell. précédent: III.C.4 Code Helmholtz bidimensionnel dans le vide.   Table des matières   Index


III.C.5 Code Maxwell tridimensionnel avec ou sans matériau.

En moyenne, le code ${\mathcal L}ior$ effectue 150 MFlops sur tout le programme. Si l'on élimine les entrées sorties, il fait 170 MFlops: le code ${\mathcal L}ior$ est donc à notre avis très bien optimisé pour un ordinateur à architecture vectorielle.

Nous donnons (tableau III.C.4) une estimation du nombre de MFlops atteints en moyenne par le programme sur un cas réaliste. Les temps permettent d'estimer les importances relatives des différentes tâches. Remarquons que certaines tâches sont effectuées en plusieurs parties, nous n'avons pas détaillé ces sous-actions.

Pour une compréhension plus détaillée de l'optimisation du code ${\mathcal L}ior$, le lecteur peut se reporter au chapitre (II.10) qui étudie (entre autres) plus précisément les performances du code selon les caractéristiques de Vh l'espace de discrétisation.

Tableau: Performances du code ${\mathcal L}ior$.
Tâche Temps (s) MFlops
10 11,6 170
2 1,2 0.5
5 1,0 170-190
9 0,5 1.2
3 0,31 80
6 0,13 160
7 0,13 160-170
8 0,02 150
1 0,007 150

Les performances atteintes dépassent souvent, toujours en termes de Méga-Flops, celles de l'algorithme produit vecteur-vecteur du programme test section III.C.1. Par exemple, l'algorithme itératif de résolution du système linéaire effectue des produits vecteur-vecteur mais simultanément sur les termes issus des fonctions de base de type <I>F et des fonctions de type <I>G.

Le code ${\mathcal L}ior$ est programmé de manière à ce qu'il soit portable sur toute machine. Il a été programmé en respectant les règles de base de toute programmation, à savoir,

  1. absence de ``ruses'' non portables entre différentes machines ou systèmes d'exploitation,
  2. utilisation d'algorithmes astucieux pour l'optimisation sur machine vectorielle largement commentés et expliqués (en respectant la règle précédente),
  3. séparation nette des algorithmes valables dans certains cas particuliers des algorithmes généraux,
  4. cohérence parfaite des commentaires de par l'utilisation du programme de visualisation (cf section III.C.2),
  5. construction des commentaires du programme de façon à ce que la compréhension de tout le programme puisse être effectuée à la simple lecture de ces commentaires, chaque tâche (ou routine) élémentaire du programme est expliquée. Il n'y a nul besoin de lire les commentaires d'une autre routine pour comprendre la routine en cours, sauf indication et référence claire dans des cas où l'adaptation est triviale.
Notons que la méthode est aussi intrinsèquement adaptée à la programmation parallèle.


next up previous contents index
suivant: III.D Calcul des termes intégraux du système monter: III.C Performances des codes Helmholtz et Maxwell. précédent: III.C.4 Code Helmholtz bidimensionnel dans le vide.   Table des matières   Index
Cessenat Olivier 2007-04-21