Sparse matrix multiplicação: distribuído de bloco comprimido sparse row biblioteca
Eficiente paralelo de multiplicação de matrizes esparsas é fundamental para que muitos de grande escala cálculos. This article presents the DBCSR (Distributed Block Compressed Sparse Row) library for scalable sparse matrix–matrix multiplication and its use in the CP2K program for linear-scaling quantum-chemical calculations. A biblioteca combina várias abordagens para implementar a multiplicação de matriz esparsa de uma forma que tem um bom desempenho e é demonstravelmente escalável. A comunicação paralela tem limites bem definidos. O volume de dados diminui com O (1 / P) com o aumento das contagens de processos P e cada processo se comunica com, no máximo, O(P) outros. A multiplicação de matriz esparsa Local é tratada eficientemente usando uma combinação de técnicas: elementos de bloqueio juntos de uma forma relevante para aplicação, uma biblioteca de autotunning para pequenas multiplicações de matriz, multiplicação recursiva de cache-alheia, e multithreading. Além disso, filtragem on-the-fly não só aumenta a escassez, mas também evita realizar cálculos que caem abaixo do limiar de filtragem. Demonstramos e analisamos o desempenho da biblioteca DBCSR e seus vários comportamentos de escala.