1 / 14

Stromové kódy

Stromové kódy. Jakub Havlík a Milan Holec. Nástin problému. Výběr vhodného algoritmu při simulacích mnoha částic Částice – částice anebo částice – síť? Když částice – částice, tak jaký algoritmus? Není zbytečné simulovat interakce všech částic se všemi částicemi?

Download Presentation

Stromové kódy

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. Stromové kódy Jakub Havlík a Milan Holec

  2. Nástin problému • Výběr vhodného algoritmu při simulacích mnoha částic • Částice – částice anebo částice – síť? • Když částice – částice, tak jaký algoritmus? • Není zbytečné simulovat interakce všech částic se všemi částicemi? • Odpověď : „Ano je. Všechno jde dělat chytře místo složitě“

  3. Proč stromové algoritmy • Základní myšlenka:Máme-li velkou skupinu částic, která je velmi vzdálená od ostatních částic, pak silový příspěvek této skupiny můžeme aproximovat silovým příspěvkem jedné částice s hmotnosti rovnou součtu hmotností částic ve skupině a s hmotným středem umístěným v hmotném středu skupiny částic.

  4. Schéma rádiusu buňky

  5. První příklad • Pro velikou vzdálenost obou skupin částic a malé úhly theta se nevyplatí provádět všechny čtyři interakce červená-modrá, červená-červená, modrá-červená, modrá-modrá, ale jak je znázorněno vedle rozdělíme simulovanou plochu na čtyři kvadranty a napočítáme pouze dvě interakce modrá-červená a červená-modrá.

  6. Konstrukce stromu • při konstrukci stromu nejdříve uzavřeme prostor částic do čtverce (obdélníku), který je dostatečně velký, aby v něm částice během celé simulace zůstaly – root cell • poté začneme čtverec dělit na menší a menší pravoúhelníky • simulací v 1D tak z rodičovské buňky vzniknou dvě stejné děti – dvě buňky – binarytree, ve 2D vzniknou 4 buňky (obvykle čtverce) – quadtree a ve 3D z jedné rodičovské buňky vznikne 8 menších, každá o objemu 1/8 rodičovské buňky – octtree • takto postupujeme rekurzivně tak dlouho, dokud nemáme každou částici zvlášť v jedné buňce

  7. Základní názvosloví • Definice oblasti:Oblast je část simulované plochy a to vždy část obdélníková. Je rozdělena na 4 kvadranty. Tato oblast může a nemusí být nadále rozdělena na další 4 pod-oblasti, každá podle příslušného kvadrantu. První oblastí je celá simulovaná plocha. • Definice listu:Listem rozumím poslední oblast stromu, na které už nenavazují žádné další oblasti.

  8. Vysvětlující obrázky Quadtree - každý uzel se rozdělí na 4 stejné poduzly Quadtree – prostor dělíme tak dlouho, dokud není každá částice v buňce sama

  9. Výpočty – část 1 • Celková hmotnost a umístění hmotného středu je jednoduché pro listy – je to přesně ta hodnota a pozice částice uvnitř listu • Pro uzly jsou tyto hodnoty určeny z jejich subbuněk ale pouze pro první úroveň! ( pro 2D jsou tak tyto hodnoty určeny ze 4 subbuněk, ve 3D z 8)

  10. Výpočty – část 2 • Teď už můžeme počítat interakce částic – ty budou dvou druhů • výpočet silových příspěvků od individuálních částic, které jsou blízko naší částici • výpočtem silového příspěvku od hmotného středu sady buněk stromu, které jsou velmi vzdálené od naší částice To, jestli vybereme metodu a nebo b záleží na parametru ca, který je pevně zvolen • Při výpočtu interakcí postupujeme od kořene rekursivně k poduzlům a listům. • Pro snížení výpočtů je dovoleno, mít na každé úrovni jen maximálně 9 buněk, které potřebují dále rozdělit. Výpočet další úrovně se pak redukuje na 27 operací (2*3*2*3-9). Na každé úrovní je pak výpočetní náročnost 27 O(1).

  11. Zhodnocení • hloubka stromu je určena jako min(b, log(n)) a celková náročnost je tedy O(nmin(b, log(n))) • toto zjednodušení dokáže velmi zredukovat počet výpočtů až o několik řádů !!! (v závislosti na počtu částic) • stromové kódy jsou přesnější než metoda částice – síť, ale méně přesné než metoda částice – částice • vyžadují navíc pomocné uskladnění dat • Algoritmus Barnes – Hut využívá stromové struktury a je hojně užíván zejména v astrofyzice

  12. Dodatek 1 – Barnes - Hut Algoritmus • Vytvoř quadtree nebo octtree • Postupuj ve směru od listů ke kořeni a počítej hmotnost a hmotný střed pro každý uzel • Postupuj směrem od kořene k listům a pro každou částici spočítej sílu během postupu Bod 2 můžeme schématicky rozepsat: Počítej aproximace (N) pokud N je list pak konec; pro každý subuzel n uzlu N proveď -> počítej aproximace (n) M:=0, cm:= (0,0) Pro každý subuzel n uzlu N proveď M:=M + hmotnost n, cm:= cm + hmotnost n*pozice n konec cm:=1/M *cm Hmotnost N := M Pozice N := cm konec

  13. Dodatek 2 – Paralelní výpočty • Problém mezi komunikace částic mezi procesory • Malá datová propustnost může být problém mezi počítači s malou pamětí • Vytvoří se lokální stromy na každém procesoru • A posílají se pouze základní informace o stromech • Velice výhodné při počítání obrovského počtu částic (až 109. • Ukázka klíče buňky(listu)

  14. Odkazy http://ocw.mit.edu/NR/rdonlyres/Mathematics/18-337JSpring-2005/7F272796-9A83-44EF-AF25-0366CA296EA4/0/chapter_9.pdfhttp://www.cita.utoronto.ca/~dubinski/treecode/natreecode.pdfhttp://www.sweb.cz/labirlab/plasma/tree_cods.htmhttp://chaos.swarthmore.edu/research/Tree_Codes.pdfhttp://library.lanl.gov/cgi-bin/getfile?00326635.pdfhttp://www.amara.com/papers/nbody.html#tcuhttp://delivery.acm.org/10.1145/370000/369033/a2-hu.pdf?key1=369033&key2=3073965021&coll=GUIDE&dl=GUIDE,ACM&CFID=59550468&CFTOKEN=38354691http://library.lanl.gov/cgi-bin/getfile?22-09.pdf http://www.cs.berkeley.edu/~demmel/cs267/lecture26/lecture26.htmlhttp://www.cita.utoronto.ca/~dubinski/treecode/treecode.html

More Related