Datové struktury. Zuzana Majdišová

Podobné dokumenty
Rastrová reprezentace

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

Algoritmy výpočetní geometrie

9 Prostorová grafika a modelování těles

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Jan Březina. 7. března 2017

Úvod do GIS. Prostorová data II. část. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

Zpracování deklarací a přidělování paměti

STRUKTURA RASTROVÝCH DAT

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

GIS Geografické informační systémy

Lineární algebra s Matlabem. Přednáška 4

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Jana Dannhoferová Ústav informatiky, PEF MZLU

GIS Geografické informační systémy

Static Load Balancing Applied to Time Dependent Mechanical Problems

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Stromové struktury v relační databázi

GIS Geografické informační systémy

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí RASTR RASTROVÉ ANALÝZY

Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě).

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

Datové typy a struktury

Pokročilé metody fotorealistického zobrazování

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

GPGPU Aplikace GPGPU. Obecné výpočty na grafických procesorech. Jan Vacata

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

PA152. Implementace databázových systémů

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Lineární algebra - I. část (vektory, matice a jejich využití)

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

GIS Prostorové modely. Obsah přednášky Rastrový model Pravidelné, nepravidelné buňky Způsoby uložení Komprese dat

2. přednáška z předmětu GIS1 Data a datové modely

Paralelní grafové algoritmy

IB112 Základy matematiky

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Pohled do nitra mikroprocesoru Josef Horálek

0.1 Úvod do lineární algebry

Datové struktury pro prostorové vyhledávání

0.1 Úvod do lineární algebry

Co je obsahem numerických metod?

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

Závěrečná zpráva projektu Experimentální výpočetní grid pro numerickou lineární algebru

VYHLEDÁNÍ NEJDELŠÍHO SHODNÉHO PREFIXU V FPGA

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra

Rovinná úloha v MKP. (mohou být i jejich derivace!): rovinná napjatost a r. deformace (stěny,... ): u, v. prostorové úlohy: u, v, w

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

SVD rozklad a pseudoinverse

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Úvod do GIS. Prostorová data I. část. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

Numerické metody a programování

LabView jako programovací jazyk II

NOVINKY V DATABÁZÍCH CEDA

Singulární rozklad. Petr Tichý. 31. října 2013

Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý

Připomenutí co je to soustava lineárních rovnic

[1] samoopravné kódy: terminologie, princip

Elementární datové typy

Reprezentace dat v informačních systémech. Jaroslav Šmarda

GIS a DPZ v geologii. Geoinformační systémy. Dálkový průzkum Země. Ondrej Lexa. Karel Martínek

Základy matematiky pro FEK

EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě.

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Podobnost matic. Definice 8.6. Dány matice A, B M n (C). Jestliže existuje regulární matice P M n (C) tak,

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Přijímací zkouška - matematika

Modelování pevných těles

GIS Geografické informační systémy

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

Základní pojmy teorie množin Vektorové prostory

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Reprezentace 3D scény

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Cvičení z Lineární algebry 1

Programování v C++ 2, 4. cvičení

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 4

Základní rutiny pro numerickou lineární algebru. I. Šimeček, M. Šoch

Operátory ROLLUP a CUBE

Základy programování (IZP)

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Vyplňování souvislé oblasti

Lineární algebra Operace s vektory a maticemi

Numerické metody a programování. Lekce 4

Robust 2014, ledna 2014, Jetřichovice

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

1 Řešení soustav lineárních rovnic

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Část 2 POROVNÁNÍ VÝKONNOSTI A POUŽITELNOSTI ARCHITEKTUR V TYPICKÝCH APLIKACÍCH

Základní datové struktury

Shapefile. Dalibor Tvrdý GIS 2010/11

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Transkript:

Datové struktury Zuzana Majdišová 19.5.2015

Datové struktury Numerické datové struktury Efektivní reprezentace velkých řídkých matic Lze využít při výpočtu na GPU Dělení prostoru a binární masky Voxelová datová struktura 2

DIA Diagonální formát Definován poli: data (nenulové prvky) a offsets Offset: 0 i > 0 i < 0 Hlavní diagonála super-diagonála sub-diagonála Výhody: row a col definovány implicitně souvislý přístup k paměti Nevýhody: vhodné pouze pro určité uspořádání 3

ELL ELLPACK formát Vhodný pro matici s max. nenulovými prvky v řádku Definován poli: data ( ) a indices (sloupcové indexy) Výhody: obecnější než DIA Nevýhody: potřeba přibližně stejný počet nenulových prvků v každém řádku Využití: matice definovaná stencil operací pro síť s téměř stejnou konektivitou vrcholů 4

COO Souřadnicový (XY) formát Jednoduché schéma Definován poli: data (nenulové prvky), row (řádkové indexy) a col (sloupcové indexy) Výhody: lze reprezentovat libovolnou řídkou matici Nevýhody: row a col definovány explicitně vyšší výpočetní náročnost 5

CSR Compressed Sparse Row formát rozšíření COO formátu aplikace komprese Definován poli: data (nenulové prvky), ptr (pointery) a indices (sloupcové indexy) Výhody: rychlejší zjišťování hodnot matice lze jednoduše zjistit počet nenulových prvků v řádku 6

HYB Hybridní formát Kombinace ELL a COO formátu Většina nenulových prvků uložena do ELL formátu, zbytek do COO formátu Nejlepší pro ELL formát určeno z histogramu Plně obsazený ELL formát je přibližně 3 krát rychlejší než COO formát sloupců pro ELL formát pokud má alespoň třetina řádků víc než nenulových prvků 7

Experimenty matice vektor Strukturované matice Nestrukturované matice 8

Quadtree storage format Předchozí struktury pomalé důsledkem nepřímé adresace Řídké matice často obsahují husté podmatice (bloky) vznik blokových formátů Využití quadtree uzly odpovídají podmaticím Typu uzlů: vnitřní: Mixed Empty NULL pointer listy: Full podíl nenulových prvků větší než práh Sparse podmatice reprezentována COO formátem Výhody: alokováno méně paměti matice uložena jako malé husté bloky lepší výkon jednoduchá konverze z předchozích formátů relativně jednoduchá modifikace quadtree 9

Experimenty - matice matice 10

Dělení prostoru Jednoduchá technika dělící (rovnoměrně) prostor na menší prostory Paměťová náročnost: počet objektů dimenze počet dělení v jedné ose =,, pravděpodobnost, že průměrný objekt protne podprostor Paměťové nároky prudce rostou s jemností dělení a dimenzí prostoru 11

Rezidenční maska Pro každý objekt definován vektor bitů Délka vektoru bitů dána celkovým dělením prostoru Bit nastaven na 1 pokud objekt protíná daný interval Paměťová nároky: = /8 počet objektů dimenze počet dělení v jedné ose Časová složitost: Výhody: rychlá detekce kolize objektů pomocí Nevýhody: při jemném dělení a malé velikosti objektů velmi dlouhé vektory bitů obsahující většinou nuly 12

Binární maska Nechť, resp. množina objektů protínajících -tý řádkový řez resp. -tý sloupcový řez, pak všechny objekty protínající buňku na pozici, dány: = Množiny, resp. reprezentovány vektorem bitů ( -tý bit reprezentuje -tý objekt) = Paměťová nároky: = /8 počet objektů dimenze počet dělení v jedné ose Výhody: rychlé nalezení všech objektů protínajících danou oblast jednoduchá kontrola konzistence dat 13

Voxelová datová struktura Voxely uložíme pomocí řídkého octree (uzel reprezentuje voxel) Využití ray casting Data dělena do bloků obsahujících: Pole child descriptors Kódování topologie octree Info sekce Adresář dostupných attachments Pointer na první child descriptor Contour data Popis geometrického tvaru voxelů Různé množství attachments Pole ukládající atributy pro stínování pro každý voxel 14

Child descriptor (64-bit) Každý odpovídá jednomu nelistovému voxelu (list popsán ve svém rodiči) Rozdělen na dvě 32-bit části: 1. Popis množiny potomků 2. Souvisí s contours Dvě bitové masky (každý potomek má jeden bit) validmask 1 pokud potomek obsahuje voxel leafmask 1 pokud potomek je list Childpointer (15-bit) existuje nelistový potomek pak pointer na child descriptor Far bit pokud nastaven childpointer je nepřímý odkaz na far pointer 15

Contours Přímočará vizualizace voxelových dat je aproximace geometrie uvnitř voxelu krychličkou Vznik aproximační chyby Redukce chyby: Voxel oříznut dvojící rovnoběžných rovin (contour) odpovídajících orientaci aproximované plochy Výsledkem kolekce orientovaných slabs Contour mask 1 pokud potomek má přidruženu contour Contourpointer (24-bit) Odkaz na seznam contours (pro každý nastavený bit jedna) Uložení contour (32-bit) 3 krát 6-bit int pro definování normálových vektorů dvou rovin 2 krát 7-bit int definujících jejich pozici uvnitř voxelu 16

Budoucí práce Vývoj datových struktur pro meshfree techniky Využití projektivní geometrie Využití geometrické algebry 17

DĚKUJI ZA POZORNOST 18

Reference Bell,N.,Garland,M.: Efficient Sparse Matrix-Vector Multiplication on CUDA, Nvidia Technical Report NVR-2008-004, Nvidia Corporation, Vol.2, No.5, 2008. Bell,N.,Garland,M.: Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors, Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis, ACM, p.18, 2009. Šimeček,I.: Sparse Matrix Computations using the Quadtree Storage Format, Proceedings of 11 th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 2009), pp.168-173, 2009. Skala,V.: An Efficient Space Partitioning Method Using Binary Maps, 11 th Conference SIP 2012 conference, pp.121-124, ISBN: 978-1-61804-081-7, St.Malo, WSEAS, France, 2012. Laine,S., Tero,K.: Efficient Sparse Voxel Octrees, Visualization and Computer Graphics, IEEE Transactions on, Vol.17, No.8, pp.1048-1059, 2011. 19