1 / 19

Využitie Grid-indexu pri opráciach s maticami

Využitie Grid-indexu pri opráciach s maticami. Autor : Martin Katuščák Vedúci : RNDr. Peter Gurský, PhD. Konzultant : RNDr. Martin Šumák. Date : 16.04.2012. Ciele práce . Navrhnúť spôsob uloženia ve ľ kých riedkých matíc pomocou grid indexu

aqua
Download Presentation

Využitie Grid-indexu pri opráciach s maticami

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Využitie Grid-indexu pri opráciach s maticami • Autor : Martin Katuščák • Vedúci : RNDr. Peter Gurský, PhD. • Konzultant : RNDr. Martin Šumák Date : 16.04.2012

  2. Ciele práce • Navrhnúť spôsob uloženia veľkých riedkých matíc pomocou grid indexu • Navrhnúť algoritmus násobenia matíc nad grid indexom • Navrhnuté riešenie naimplementovať a otestovať nad umelými aj reálnymi dátami

  3. Riadková reprezentácia

  4. Stĺpcová reprezentácia

  5. Vektorová reprezentácia • int size= 10 • double [ ] data = {1,1,1,1,1} • int [ ] index = {0,2,5,6,9} • int used = 5

  6. Grid Indexe

  7. Výroba Grid Index Matice • Potrebujeme poznať všetky prvky matice kým ju vytvoríme • Použitie externého triedenia

  8. Rozdiely • Štandardné uloženie riedkej matice • Inštancie len v RAM • Problém násobiť 2 veľké matice • Závislosť na dostupnej RAM • Grid Matica • Dáta matice uložené v súbore • Možnosť násobiť akékoľvek veľké matice • Rýchlosť závisí od priepustnosti disku

  9. Paralelnénásobene grid index matice • Násobenie celých Grid index okien, miesto jednotlivých riadkov a stĺpcov • Použitie viacerých synchrónnych vláken na rozdelenie ľavej matice

  10. Paralelný algoritmus násobenia matíc

  11. Paralelný algoritmus násobenia matíc okno multiplyWindowArrays(Matica A, Matica B, int rw, int cw){ poradieOknaRiadku = 0; poradieOknaStĺpca = 0; oknoRiadku = A.getPointsFromOneWindow(rw, poradieOknaRiadku); oknoStĺpca = B.getPointsFtomOneWindow(poradieOknaStlpca, cw); Pokiaľ nie je prečítaný celý rw riadok matice A a cw stĺpec matice B { riadkyOknaA = getSplitRows(oknoRiadku,A.isTranspone); stlpceOknaB = getSplitColumns(oknoStlpca, B.isTranspone); Pre každý riadok r z riadkyOknaA { Pre každý stĺpec s z stĺpceOknaB { Pre každú spoločnú nenulovú pozíciu p riadka r a stĺpca s { výsledok[r,s] = výsledok[r,s] + r[p] * s[p]; }}} Ak boli použité všetky prvky z oknaRiadku oknoRiadku = A.getPointsFromOneWindow(rw, ++poradieOknaRiadku); Ak boli použité všetky prvku z oknoStĺpca oknoStĺpca = B.getPointsFromOneWindow(++poradieOknaStlpca, cw); ) Vráť výsledok; }

  12. Testy • Procesor AMD FX8350, 8 jadier, 8 vláken 4200MHz • RAM 8GB DDR3 A-DATA 1800MHz • Systémový disk SSD OCZ Vertex 4 • Pracovný disk Seagate 1000GB, 7200 ot. • OS Windows 8 64bit • compuscience-linky • Počet riadkov : 102 794 524 • Počet stĺpcov : 102 794 524 • Počet nenulových bodov : 2 064 137 • Hustota : 0.0001 % • ml1m_user-item-rating • Počet riadkov : 6040 • Počet stĺpcov : 3952 • Počet nenulových bodov : 1 000 209 • Hustota : 4.2 % • Cora-all: • Počet riadkov : 27 214 • Počet stĺpcov : 17 923 • Počet nenulových bodov : 114 123 • Hustota : 0.2 %

  13. Čas behu

  14. Čas behu

  15. Počet prístupov na disk

  16. Závislosť veľkosti RAM a času výpočtu

  17. Vplyv veľkosti matice na čas

  18. Literatúra • Raghu Ramakrishnan, Johannes Gehrke: Database Managment Systems, 2007 • Yannis Manolopoulos, Alexander Apostolos, N.Papadopoulos, Yanis Theodoridis: R-Trees: Theory and Applications, Springer-Verlag London Limited 2006 • Bin Dong, Xiugiao Li, Li Ruan: Exploring Storage Optimization to Accelerate parallel Out-of-core Matrix Product

  19. Ďakujem za pozornosť

More Related