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...
Staněk Martin