Multi-dimensional Sparse Matrix Storage J. Dvorský, M. Krátký, Katedra informatiky, VŠB – Technická univerzita Ostrava
Obsah Úvod Klasické přístupy Kvadrantový strom, konečný automat Multidimenzionální přístup Experimenty
Úvod Maticový charakter výpočtů Metoda konečných prvků DIS – vektorový model Shlukování HW podpora (vektorové procesory, SSE3 instrukce) Husté vs. řídké matice
Řídká matice Řídká matice A o rozměrech n x m Ukládají se nenulové hodnoty Compressed Row Storage (CRS) Compressed Column Storage (CCS)
Compressed Row Storage Matice je uložena po řádcích Tři pole: val – prvky matice col ind – indexy sloupců v řádku row ptr – indexy řádků (první nenulový prvek)
Compressed Column Storage Matice je uložena po sloupcích Tři pole: val – prvky matice row ind – indexy řádků ve sloupci col ptr – indexy sloupců (první nenulový prvek)
Ukázková matice
Compressed Row Storage
Compressed Column Storage
Vlastnosti CRS a CCS formátů Pam. složitost: 2n z +n+1 Obecný formát, všechny operace Různá složitost CRS: řádkový vektor O(1) sloupcový O(n log 2 Δ), Δ počet nenul. prvků v řádku CCS – opačná situace
Cíl naší práce Náhodný přístup k prvkům matice Efektivní výběr podmatice Perzistence matice
Kvadrantové stromy Culik & Valenta: Komprese černobílých obrázků pomocí konečných automatů Matice – nulové/nenulové prvky Rekurzivní dělení na kvadranty Adresa kvadrantu – slovo nad abecedou Σ={0, 1, 2, 3}
Kvadranty - příklad Adresa černého čtverce: 3203
Kvadrantové stromy Matici A vnoříme do čtverce 2 N x 2 N Nenulové prvky definují jazyk L A Σ N Matice A definuje funkci L A R Náhodný přístup k prvkům Časová složitost O(log 2 N) Omezená perzistence
Příklad
Multidimenzionální přístup Matice je chápána jako množina bodů ve 2D prostoru Prvek matice je indexován svým řádkem a sloupcem Vlastní hodnota není indexována Využití (B)UB-stromů
Multidimenzionální přístup Založeno na rozsahových dotazech Obecná podmatice A i1,j1,i2,j2 – rozsahový dotaz (i1, j1) : (i2, j2) Sloupcový vektor – (1, i) : (n, i) Řádkový vektor – (j, 1) : (j, m) Úzké rozsahové dotazy
(B)UB-strom, R-stromUB-Strom Z-adresaB-Strom
(B)UB-strom Z-křivka mapuje multidim. prostor na jednorozměrný Z-adresa Z-region – úsek na Z-křivce Z-regiony uloženy do B-stromu
(B)UB-strom
Experimentální výsledky Matice o rozměrech 10 7 x x 10 6 nenulových prvků BUB-strom 80 MB index
Experimentální výsledky Náhodný výběr řádků a sloupců
Závěr Nový způsob uložení řídké matice Perzistence Náhodný přístup k prvkům resp. podmaticím Test na reálných datech, výpočty
Děkuji za pozornost