Fine grain algorithms and numerical schemes for exascale simulations of turbulent plasmas
Algorithmes à grain fin et schémas numériques pour des simulations exascales de plasmas turbulents
Résumé
Recent high performance computing architectures come with more and more cores on
a greater number of computational nodes. Memory buses and communication networks are
facing critical levels of use. Programming parallel codes for those architectures requires
to put the emphasize on those matters while writing tailored algorithms. In this thesis, a
plasma turbulence simulation code is analyzed and its parallelization is overhauled. The
gyroaverage operator benefits from a new algorithm that is better suited with regard to
its data distribution and that uses a computation – communication overlapping scheme.
Those optimizations lead to an improvement by reducing both execution times and memory
footprint. We also study new designs for the code by developing a prototype based
on task programming model and an asynchronous communication scheme. It allows us to
reach a better load balancing and thus to achieve better execution times by minimizing
communication overheads. A new reduced mesh is introduced, shrinking the overall mesh
size while keeping the same numerical accuracy but at the expense of more complex operators.
This prototype also uses a new data distribution and twists the mesh to adapt to
the complex geometries of modern tokamak reactors. Performance of the different optimizations
is studied and compared to that of the current code. A case scaling on a large
number of cores is given.
Les architectures de calcul haute performance les plus récentes intègrent de plus en
plus de noeuds de calcul qui contiennent eux-mêmes plus de coeurs. Les bus mémoires et
les réseaux de communication sont soumis à un niveau d’utilisation critique. La programmation
parallèle sur ces nouvelles machines nécessite de porter une attention particulière
à ces problématiques pour l’écriture de nouveaux algorithmes. Nous analysons dans cette
thèse un code de simulation de turbulences de plasma et proposons une refonte de la parallélisation
de l’opérateur de gyromoyenne plus adapté en termes de distribution de données
et bénéficiant d’un schéma de recouvrement calcul – communication efficace. Les optimisations
permettent un gain vis-à-vis des coûts de communication et de l’empreinte mémoire.
Nous étudions également les possibilités d’évolution de ce code à travers la conception d’un
prototype utilisant un modèle programmation par tâche et un schéma de communication
asynchrone adapté. Cela permet d’atteindre un meilleur équilibrage de charge afin de maximiser
le temps de calcul et de minimiser les communications entre processus. Un maillage
réduit adaptatif en espace est proposé, diminuant le nombre de points sans pour autant
perdre en précision, mais ajoutant de fait une couche supplémentaire de complexité. Ce
prototype explore également une distribution de données différente ainsi qu’un maillage en
géométrie complexe adapté aux nouvelles configurations des tokamaks. Les performances
de différentes optimisations sont étudiées et comparées avec le code préexistant et un cas
dimensionnant sur un grand nombre de cœurs est présenté.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...