Multiplicación de matrices dispersas: biblioteca de filas dispersas comprimidas en bloques distribuidas
La multiplicación en paralelo eficiente de matrices dispersas es clave para habilitar muchos cálculos a gran escala. Este artículo presenta la biblioteca DBCSR (Fila Dispersa Comprimida en Bloque Distribuido) para la multiplicación escalable de matriz a matriz dispersa y su uso en el programa CP2K para cálculos cuántico-químicos de escala lineal. La biblioteca combina varios enfoques para implementar la multiplicación de matrices dispersas de una manera que funcione bien y sea demostrablemente escalable. La comunicación paralela tiene límites bien definidos. El volumen de datos disminuye con O (1 / P) al aumentar los recuentos de procesos P y cada proceso se comunica como máximo con O(P) otros. La multiplicación de matrices dispersas locales se maneja de manera eficiente utilizando una combinación de técnicas: bloquear elementos juntos de una manera relevante para la aplicación, una biblioteca de autoajuste para pequeñas multiplicaciones de matrices, multiplicación recursiva olvidada de caché y multiproceso. Además, el filtrado sobre la marcha no solo aumenta la escasez, sino que también evita realizar cálculos que caen por debajo del umbral de filtrado. Demostramos y analizamos el rendimiento de la biblioteca DBCSR y sus diversos comportamientos de escalado.