Sparsom matrisemultiplikasjon: det distribuerte blokkkomprimerte sparsomme radbiblioteket
Effektiv parallell multiplikasjon av sparsomme matriser er nøkkelen til å muliggjøre mange store beregninger. Denne artikkelen presenterer dbcsr (Distributed Block Compressed Sparse Row) bibliotek for skalerbar sparsom matrise–matrise multiplikasjon og dens bruk I CP2K program for lineær-skalering kvante-kjemiske beregninger. Biblioteket kombinerer flere tilnærminger for å implementere sparsom matrisemultiplikasjon på en måte som fungerer bra og er påviselig skalerbar. Parallell kommunikasjon har veldefinerte grenser. Datavolumet avtar Med O (1 / P) med økende prosesstall P Og hver prosess kommuniserer med maksimalt o (P) andre. Lokal sparsom matrisemultiplikasjon håndteres effektivt ved hjelp av en kombinasjon av teknikker: blokkering av elementer sammen på en applikasjonsrelevant måte, et autotuningbibliotek for små matrisemultiplikasjoner, cache-uvitende rekursiv multiplikasjon og multithreading. I tillegg øker on-the-fly filtrering ikke bare sparsity, men også unngår å utføre beregninger som faller under filtrering terskelen. Vi demonstrerer og analyserer ytelsen TIL dbcsr-biblioteket og dets ulike skaleringsadferd.