Mesh partitioning for load balancing multiphysics simulations
Partitionnement de maillages pour l'équilibrage de charge de simulations multi-physiques
Résumé
This study aims to improve the performance of large-scale, distributed, mesh-based simulations. More specifically, we take an interest in improving the balance between the load on each computation unit on which the simulations execute. Load balancing mesh-based simulations generally involve both the load of each mesh cell and the data transfers between computation units. State-of-the-art tools most commonly solve this problem in one way, which is not always the most optimal for a given simulation, because their scope is broader than that of mesh partitioning and load-balancing. Our study aims to fill this gap and implement a new partitioning tool dedicated to meshes and load-balancing. After an in-depth presentation of the context and issues related to balancing the load of distributed, mesh-based simulations, as well as the definition of common mesh-partitioning-related problems and associated, state-of-the-art algorithms to solve each of these problems, we present a new method to partition meshes, which involves carefully chaining algorithms to optimise given mesh partition metrics. We then develop this method in two ways: first, we expand the number partitioning algorithm called VNBest so that it can balance load against target weights. Second, we adapt the geometric algorithm called RCB for cartesian meshes, to improve its performance on such meshes. We implement the algorithm chaining method and its extensions in a new partitioning tool and describe its design thoroughly. We show our tool can compute partitions with better load-balance than state-of-the-art tools Scotch and Metis. However, the edgecut is not as optimised as in state-of-the-art. We present the scaling of our parallel implementation of partitioning algorithms.
Cette étude s'inscrit dans le domaine de l'optimisation de performances de simulations numériques distribuées à grande échelle à base de maillages. Dans ce domaine, nous nous intéressons au bon équilibre de charge entre les unités de calcul sur lesquelles la simulation s'exécute. Pour équilibrer la charge d'une simulation à base de maillage, il faut généralement prendre en compte de la quantité de calcul nécessaire pour chaque maille, ainsi que la quantité de données qui doivent être transférées entre les unités de calcul. Les outils communément utilisés pour résoudre ce problème le solvent d'une manière, qui n'est pas forcément optimale pour une simulation donnée, car ils s'appliquent à de nombreux cas autres que l'équilibrage de charge et le partitionnement de maillage. Notre étude consiste à concevoir et implémenter un nouvel outil de partitionnement dédié aux maillages et à l'équilibrage de charge. Après une explication approfondie du contexte de l'étude, des problèmes de partitionnement ainsi que de l'état de l'art des algorithmes de partitionnement, nous montrons l'intérêt de chaîner des algorithmes pour optimiser de différentes façon une partition de maillage. Ensuite, nous étoffons cette méthode de chaînage en deux points: d'abord, en étendant l'algorithme de partitionnement de nombres VNBest pour l'équilibrage de charge où les unités de calcul sont hétérogènes, puis en spécialisant l'algorithme de partitionnement géométrique RCB, pour améliorer ses performances sur les maillages cartésiens. Nous décrivons en détails le processus de conception de notre outil de partitionnement, qui fonctionne exclusivement en mémoire partagée. Nous montrons notre outil peut obtenir des partitions avec un meilleur équilibre de charge que deux outils de partitionnement en mémoire partagée existants, Scotch et Metis. Cependant, nous ne minimisons pas aussi bien les transferts de données entre unités de calcul. Nous présentons les caractéristiques de performance des algorithmes implémentés en *multithread*.
Origine | Version validée par le jury (STAR) |
---|