prezentace

Transkript

prezentace
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š

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...

Více

1. Hradlové sítě

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

Více

Hardware pro pocítacovou grafiku

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...

Více

Produkty Intel Produkty PGI Kontaktujte odborníka Intel a PGI

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íce

Výsledky motocrosscup Trutnov 21.5.2016 Kategorie: 50ccm

Výsledky motocrosscup Trutnov 21.5.2016 Kategorie: 50ccm Výsledky motocrosscup Trutnov 21.5.2016 Kategorie: 50ccm st.čís.

Více

Jak ti vědci počítají 1 Superpočítače

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...

Více