prezentace
Transkript
Paralelizace genetických algoritmů pomocí GPGPU Diplomová práce z SI Bc. Jan Hofta 2008 - 2009 Osnova práce • Cíle práce: • Nastudovat dostupné zdroje o paralelních GA • Vybrat verzi GA vhodnou pro paralelizaci • Provést paralelizaci GA na grafickém procesoru • Části práce: • • • • 2/16 1. kapitola – Genetické algoritmy 2. kapitola – NVIDIA CUDA 3. kapitola – Implementace 4. kapitola – Výsledky Genetické algoritmy (1) • Vychází z evoluční teorie • Nástroj pro hledání optima funkce • Idea algoritmu: • 1. body z definičního oboru funkce • 2. hodnotu binárně zakódovat (tzv. chromosomy), dohromady 0. generace populace • 3. ohodnotit kvalitu řešení (tzv. fitness funkcí) 3/16 Genetické algoritmy (2) • • • • • • 4/16 4. nalézt partnery (tzv. selekce) 5. vyměnit část řetězce mezi partnery (tzv.křížení) 6. na výsledcích náhodné změny (tzv. mutace) 7. ohodnotit nové, nahradit staré 8. tím další generace a opět bod 4 9. po nějaké době stop, nejkvalitnější chromosom = argument extrému funkce Paralelní GA • Farmářský model • Jedna populace, hlavní a pomocné procesy • Migrační model • Více populací, migrace • Difuzní model • 1 proces = 1 jedinec • Hybridní model • Kombinace ostatních ve více úrovních 5/16 NVIDIA CUDA • Společnost NVIDIA, od roku 2007 • Snaha přenést paralelní výpočty na grafickou kartu • Mnoho paralelních procesů (tzv. vlákna), spojena do tzv. bloků a ty dále do tzv. gridů • Velice přirozené, rozšíření jazyka C a knihovna funkcí pro procesor (hostitel) a grafickou kartu (zařízení) 6/16 Implementace • Naprogramovány tři algoritmy • Základní sekvenční GA (GASimple) • Difuzní model paralelního GA prováděný na procesoru s bitonickým tříděním na GPU (CPUPGA) • Difuzní model paralelního GA prováděný kompletně na grafické kartě (PGA) 7/16 Implementační výzvy • Bitonické třídění (paralelní třídící algoritmus) • K řešení: • Vhodná implementace pro daný problém • Zobecnění pro poslopnosti jiných délek než 2p • Synchronizace dat mezi bloky na GPU • Implementace náhody 8/16 Výsledky • Porovnání výpočetní doby a kvality řešení v závislosti na počtu generací a jedinců • Testované funkce: • Pět funkcí dvou proměnných • Tři funkce čtyř proměnných • Jedna funkce deseti proměnných • Konfigurace: • • • • 9/16 1000 generací, 225 jedinců 2000 generací, 225 jedinců 1000 generací, 441 jedinců 2000 generací, 441 jedinců Testované funkce • 2 proměnné: f1(x,y) = − x.sin x − (y + 47 ) − (y + 47 ).sin sin 2 x 2( 100 + y 2 ) − 0.5 f 2(x,y) = 0.5 + ( 1 + 0.001(x − y)2 )2 f 3(x,y) = −20e − 0 .02 x2 + y 2 2 −e cos 2 πx + cos 2 πy 2 + 20 + e f 4(x,y) = 100(x 2 − y)2 + ( 1 − x)2 x2 + y 2 f 5(x,y) = 1 − cos x cos y + 4000 • 4 proměnné: 3 f 6 ( x1 , x2 , x3 , x4 ) = ∑100( xi +1 − xi2 ) 2 + (1 − xi ) 2 i =1 4 f 7 ( x1 , x2 , x3 , x4 ) = ∑ − xi sin | xi | i =1 4 xi2 f8 ( x1 , x2 , x3 , x4 ) = ∑ − ∏ cos xi + 1 i =1 4000 i =1 4 10 10/16 10 proměnných: f 7 ,10 dim ( x1 , x2 ,..., x10 ) = ∑ − xi sin | xi | i =1 y + 47 + x 2 Časová náročnost (1) 1000 Gen, 225 Pop 700 600 Time 500 GASimple 400 CPUPGA 300 PGA 200 100 0 2000 Gen, 225 Pop 1 2 3 4 5 6 7 8 9 Function 1400 1200 Time 1000 GASimple 800 CPUPGA 600 PGA 400 200 0 1 2 3 4 5 Function 11/16 6 7 8 9 Časová náročnost (2) 1000 Gen, 441 Pop 1400 1200 Time 1000 GASimple 800 CPUPGA 600 PGA 400 200 0 1 2 3 4 5 6 7 8 2000 Gen, 441 Pop 9 Function 2500 Time 2000 GASimple 1500 CPUPGA 1000 PGA 500 0 1 12/16 2 3 4 5 Function 6 7 8 9 Časová náročnost (3) Konfigurace 2 proměnné 4 proměnné 10 proměnných GASimple CPUPGA GASimple CPUPGA GASimple CPUPGA 1000 g, 225 p 1,09 1,33 1,15 1,29 1,31 1,45 2000 g, 225 p 1,33 1000 g, 441 p 1,91 2000 g, 441 p 2,33 1,38 2,03 2,25 1,32 2,01 2,31 1,35 2,05 2,22 1,47 2,29 2,58 1,50 2,40 2,58 13/16 Kvalita řešení • Obecně: difuzní model = kvalitnější řešení • Příklad: sin 2 x 2( 100 + y 2 ) − 0.5 f 2(x,y) = 0.5 + ( 1 + 0.001(x − y)2 )2 C1 – 1000 Gen, 225 Pop C2 – 2000 Gen, 225 Pop C3 – 1000 Gen, 441 Pop C4 – 2000 Gen, 441 Pop 14/16 Závěry a přínos práce • Závěry: • Časová výhodnost použití PGA - roste s počtem generací a výrazně s počtem jedinců • Kvalitnější řešení od difuzního modelu • Přínos: • Nalezena vhodná verze GA pro paralelizaci na GPU • Provedena a vyzkoušena implementace pomocí NVIDIA CUDA • Zobecnění a implementace bitonického třídění 15/16 Konec • Děkuji Vám za pozornost 16/16
Podobné dokumenty
2011-01-28 - Martin Mareš
rezerv neexistuje cesta ze zdroje do stoku, tak skončí a prohlásí tok f za maximální.
Jinak pročistí síť rezerv tak, aby se z ní stala vrstevnatá síť (rozdělí vrcholy do vrstev
podle vzdálenosti od...
1. Hradlové sítě
sumě jednou kladně a jednou záporně, hrany, jejíž ani jeden vrchol neleží v A, nepřispívají vůbec, a konečně hrany vedoucí z A do B, resp. opačně přispějí jen jednou
Hardware pro pocítacovou grafiku
3D zobrazovací metody 1/3
3D kinoprojekce - dva (různě) lineárně polarizované
obrazy promítané najednou + polarizační brýle
3D televize
aktivní - střídavé promítání snímků pro pravé a levé ok...
Produkty Intel Produkty PGI Kontaktujte odborníka Intel a PGI
Divizi Sprinx HPC se opět podařilo
úspěšně rozšířit o další generaci klastr
AMÁLKA sídlící v Ústavu fyziky atmosféry AV ČR, o který se Sprinx HPC
dlouhodobě stará. Posilněn byl výpočetní výkon, a ...
Výsledky motocrosscup Trutnov 21.5.2016 Kategorie: 50ccm
Výsledky motocrosscup Trutnov 21.5.2016
Kategorie: 50ccm
st.čís.
Jak ti vědci počítají 1 Superpočítače
Management úloh Narozdíl od gridů, které se orientují na zpracování jednotlivých úloh, je cloud pouze „holý OS, který standardně neobsahuje žádnou
podporu pro dávkové spouštění úloh, sledování jej...