Multiplication de matrices éparses: La bibliothèque de lignes éparses compressées par blocs distribués
Une multiplication parallèle efficace de matrices éparses est essentielle pour permettre de nombreux calculs à grande échelle. Cet article présente la bibliothèque DBCSR (Distributed Block Compressed Sparse Row) pour la multiplication matricielle scalable sparse– matrice et son utilisation dans le programme CP2K pour les calculs quantiques-chimiques à échelle linéaire. La bibliothèque combine plusieurs approches pour implémenter une multiplication matricielle clairsemée d’une manière qui fonctionne bien et qui est manifestement évolutive. La communication parallèle a des limites bien définies. Le volume de données diminue avec O (1 / P) avec l’augmentation du nombre de processus P et chaque processus communique avec au plus O(P) les autres. La multiplication locale de matrices éparses est gérée efficacement à l’aide d’une combinaison de techniques: bloquer des éléments ensemble de manière pertinente pour l’application, une bibliothèque d’auto-réglage pour les petites multiplications matricielles, une multiplication récursive sans cache et le multithreading. De plus, le filtrage à la volée augmente non seulement la rareté, mais évite également d’effectuer des calculs inférieurs au seuil de filtrage. Nous démontrons et analysons les performances de la bibliothèque DBCSR et ses différents comportements de mise à l’échelle.