Abstract :
[en] Lattice Boltzmann-based (LB) simulations are well suited to the simulation of fluid flows in complex structures encountered in chemical engineering like porous media or structured packing used in distillation and reactive distillation columns. These simulations require large amounts of memory (around 10 gigabytes) and
would require very long execution times (around 2 years) if executed on a single powerful desktop computer.
The execution of LB simulations in a distributed way (for example, using cluster computing) can decrease the execution time and reduces the memory requirements for each computer. Dynamic Heterogeneous Clusters (DHC) is a class of clusters involving computers inter-connected by a local area network; these computers are potentially unreliable and do not share the same architecture, operating system, computational power, etc. However, DHCs are easy to setup and extend, and are made of affordable computers.
The design and development of a software system which organizes large scale DHCs in an efficient, scalable and robust way for implementing very large scale LB simulations is challenging. In order to avoid that some computers are overloaded and slow down the overall execution, the heterogeneity of computational power should be taken into account. In addition, the failure of one or several computers during the execution of a simulation should not prevent its completion.
In the context of this thesis, a simulation tool called LaBoGrid was designed. It uses existing static load balancing tools and implements an original dynamic load balancing method in order to distribute the simulation in a way that minimizes its execution time. In addition, a distributed and scalable fault-tolerance mechanism
based on the regular saving of simulation’s state is proposed. Finally, LaBoGrid is based on a distributed master-slave model that is robust and potentially scalable.
[fr] Les simulations basées sur les méthodes de Lattice Boltzmann sont bien adaptées aux simulations d’écoulements de fluides à l’intérieur de structures complexes rencontrées en génie chimique, telles que les milieux poreux ou les empilements structurés utilisés dans des colonnes de distillation et de distillation réactive. Elles requièrent toutefois de grandes quantités de mémoire (environ 10 gigaoctets). Par ailleurs, leur exécution sur un seul ordinateur de bureau puissant nécessiterait un temps très long (environ deux ans).
Il est possible de réduire à la fois le temps d’exécution et la quantité de mémoire requise par ordinateur en exécutant les simulations LB de manière distribuée, par exemple en utilisant un cluster. Un Cluster Hétérogène Dynamique (CHD) est une classe de clusters impliquant des ordinateurs qui sont interconnectés au moyen d’un réseau local, qui ne sont pas nécessairement fiables et qui ne partagent pas la même architecture, le même système d’exploitation, la même puissance de calcul, etc. En revanche, les CHD sont faciles à installer, à étendre et peu coûteux.
Concevoir et développer un logiciel capable de gérer des CHD à grande échelle de façon efficace, extensible et robuste et capable d’effectuer des simulations LB à très grande échelle constitue un défi. L’hétérogénéité de la puissance de calcul doit être prise en compte afin d’éviter que certains ordinateurs soient débordés et ralentissent le temps global d’exécution. En outre, une panne d’un ou de plusieurs ordinateurs pendant l’exécution d’une simulation ne devrait pas empêcher son achèvement.
Dans le contexte de cette thèse, un outil de simulation appelé LaBoGrid a été conçu. LaBoGrid utilise des outils existants de répartition statique de la charge et implémente une méthode originale de répartition dynamique de la charge, ce qui lui permet de distribuer une simulation LB de manière à minimiser son temps
d’exécution. De plus, un mécanisme distribué et extensible de tolérance aux pannes, fondé sur une sauvegarde régulière de l’état de simulation, est proposé. Enfin, LaBoGrid se base sur un modèle distribué de type « maître-esclaves » qui est robuste et potentiellement extensible.