mnożenie macierzy Sparse: The distributed block-compressed sparse row library
wydajne równoległe mnożenie macierzy sparse jest kluczem do umożliwienia wielu obliczeń na dużą skalę. W artykule przedstawiono bibliotekę DBCSR (Distributed Block Compressed Sparse Row) do skalowania macierzy sparse–mnożenie macierzy oraz jej zastosowanie w programie CP2K do liniowych obliczeń kwantowo-chemicznych. Biblioteka łączy kilka podejść do implementacji rzadkiego mnożenia macierzy w sposób, który działa dobrze i jest wyraźnie skalowalny. Komunikacja równoległa ma dobrze zdefiniowane granice. Objętość danych zmniejsza się z O (1 / P)wraz ze wzrostem liczby procesów P i każdy proces komunikuje się z co najwyżej o (p) innymi. Lokalne nieliczne mnożenie macierzy jest obsługiwane efektywnie przy użyciu kombinacji technik: blokowanie elementów razem w sposób odpowiedni dla aplikacji, Biblioteka autotuning dla małych mnożeń macierzy, Cache-zapomnienie rekurencyjne mnożenie i wielowątkowość. Ponadto filtrowanie w locie nie tylko zwiększa oszczędność, ale także unika wykonywania obliczeń poniżej progu filtrowania. Demonstrujemy i analizujemy wydajność biblioteki DBCSR i jej różne zachowania skalowania.