Direct solution of larger coupled sparse/dense linear systems using low-rank compression on single-node multi-core machines in an industrial context
Application de la compression de rang faible à la solution directe de grands systèmes linéaires couplés creux et denses sur un nœud de calcul multi-cœur dans un contexte industriel
Résumé
While hierarchically low-rank compression methods are now commonly available in both dense and sparse direct solvers, their usage for the direct solution of coupled sparse/dense linear systems has been little investigated. The solution of such systems is though central for the simulation of many important physics problems such as the simulation of the propagation of acoustic waves around aircrafts. Indeed, the heterogeneity of the jet flow created by reactors often requires a Finite Element Method (FEM) discretization, leading to a sparse linear system, while it may be reasonable to assume as homogeneous the rest of the space and hence model it with a Boundary Element Method (BEM) discretization, leading to a dense system. In an industrial context, these simulations are often operated on modern multicore workstations with fully-featured linear solvers. Exploiting their low-rank compression techniques is thus very appealing for solving larger coupled sparse/dense systems (hence ensuring a finer solution) on a given multicore workstation, and – of course – possibly do it fast. The standard method performing an efficient coupling of sparse and dense direct solvers is to rely on the Schur complement functionality of the sparse direct solver. However, to the best of our knowledge, modern fully-featured sparse direct solvers offering this functionality return the Schur complement as a non compressed matrix. In this paper, we study the opportunity to process larger systems in spite of this constraint. For that we propose two classes of algorithms, namely multi-solve and multi-factorization, consisting in composing existing parallel sparse and dense methods on well chosen submatrices. An experimental study conducted on a 24 cores machine equipped with 128 GiB of RAM shows that these algorithms, implemented on top of state-of-the-art sparse and dense direct solvers, together with proper low-rank assembly schemes, can respectively process systems of 9 million and 2.5 million total unknowns instead of 1.3 million unknowns with a standard coupling of compressed sparse and dense solvers.
Bien que des méthodes basées sur la compression de rang faible hiérarchique soient de nos jours généralement fournies dans des solveurs direct denses et creux, leur utilisation pour la solution directe des systèmes linéaires couplés creux/denses n'a été que peu explorée. Résoudre ce type de systèmes est pourtant une étape centrale dans la simulation de nombreux problèmes en physique tels que la propagation des ondes acoustiques autour des avions. En effet, la hétérogénéité du flux d'air généré par des réacteurs nécessite souvent une discrétisation avec la méthode des éléments finis (FEM) conduisant à un système linéaire creux tandis que le reste de l'espace peut être raisonnablement considéré comme homogène et donc modélisé avec la méthode des éléments finis de frontière (BEM) conduisant à un système dense. Dans un contexte industriel, ces simulations sont souvent effectuées sur des machines modernes multi-cœurs en utilisant des solveurs avancés. Il y a donc une forte motivation pour exploiter leurs techniques de compression de rang faible pour la solution des systèmes couplés creux/denses plus grands (conduisant à des modèles plus précis) sur une machine multi-cœur donnée et - bien sûr - le faire de façon efficace. La méthode standard pour effectuer un couplage d'un solveur direct creux avec un solveur direct dense est de se baser sur la fonctionnalité de complément de Schur du solveur direct creux. Cependant, à notre connaissance, les solveurs modernes avancés proposant cette fonctionnalité retournent le complément de Schur dans une matrice dense non compressée. Dans cet article, nous étudions la possibilité de traiter des systèmes plus grands en dépit de cette contrainte. Pour cela, nous proposons deux classes d'algorithmes, c'est-à-dire « multi-solve » et « multi-factorization », qui consistent en la combinaison des méthodes parallèles creuses et denses existantes sur des matrices bien choisies. Une étude expérimentale, conduite sur une machine à 24 cœurs équipée de 128 Go de RAM, montre que ces algorithmes, implémentés par-dessus des solveurs directs creux et denses de l'état de l'art et grâce à un bon assemblage de schémas de compression de rang faible, peuvent traiter des systèmes avec respectivement 9 millions et 2,5 millions d'inconnues au total au lieu de 1,3 millions d'inconnues avec un couplage standard de solveurs creux et denses compressés.
Origine | Fichiers produits par l'(les) auteur(s) |
---|