Gazdasági számítások párhuzamos
számítógépeken
Forgács Attila (Emarsys technologies - [email protected])
Mohácsi László (Budapesti Corvinus Egyetem - [email protected])
Párhuzamos architektúra választása
• Fel lehet-e bontani a feladatot párhuzamosan futtatható részfeladatokra?
• A legegyszerűbb, ha a feladatok függetlenek egymástól,
de alapvetően ugyan azokból a lépésekből állnak.
• A részfeladatok egyformák? Lépésről lépésre egyformák?
• A részfeladatok írnak közös adatokat?
• A részfeladatok gyakran illetve nagy mennyiségű adatot osztanak meg egymással?
közös memória független számítóegységek 1sokprocesszoros gépek
NUMA
közös memória független számítóegységek
sokprocesszoros gépekNUMA
• A szálak egymástól függetlenül futhatnak.• A szálak használhatnak memóriaterületeket közösen.• A szálak végrehajtási sebessége nem determinisztikus.• Közösen használt memóriaterületekből adódó problémák:
a) Pesszimista megközelítés b) Optimista megközelítés
• Nincs algoritmus a helyességigazolásra.• „Heisenbug”-ok megjelenése.
Ez a megközelítés áll legközelebb a „hagyományoshoz”Széles körben elérhető hardver.
Több szálon futó programok:
nincs közös memória számítógépek hálózata
Cluster és Gridcomputing2
nincs közös memória számítógépek hálózata
Cluster és Gridcomputing2
i. A futtatandó program eljuttatása az összes számítógépre.ii. Üzenetváltás megoldása az egyes példányok között.
• Minden gépen ugyanaz a program fut.• A program tetszőleges példányszámban indítható.• Minden példánynak van egy sorszáma.
• Minden példány tudja a saját sorszámát.
az összlétszámot.
Feladat:
Message Passing InterfaceMegoldás:
NVIDIA GeForce GTX570
közös memória összekapcsolt számítóegységek 3grafikus processzorok
CUDA
közös memória összekapcsolt számítóegységek 3grafikus processzorok
CUDA
közös memória összekapcsolt számítóegységek 3grafikus processzorok
CUDA
közös memória összekapcsolt számítóegységek 3grafikus processzorok
CUDA
közös memória összekapcsolt számítóegységek
grafikus processzorokCUDA3
• Ipar bizalmatlansága.
• Nehezen becsülhető teljesítmény.
• Szabványháború.
Alkalmazási példák
ABS módszerCUDA architektúránI
lineáris egyenletrendszer
megoldása
Ismeretlenek száma Futásidő Hiba
2 6 ms ≈0
4 8 ms 7.81597∙10-14
8 10 ms 2.13163∙10-14
16 16 ms 1.00364∙10-13
32 24 ms 1.82077∙10-13
64 46 ms 7.43805∙10-12
128 100 ms 6.81943∙10-12
256 245 ms 7.41984∙10-12
512 886 ms 4.81473∙10-11
1024 3.2 sec 1.89602∙10-11
2048 14.7 sec 8.06466∙10-12
4096 105.9 sec 1.29308∙10-13
8192 23 min 2.35101∙10-12
Lovász-Vempala-Deákalgoritmus CUDA-n
Sokdimenziós testektérfogataII
9 908 798 x 50 év x 100 futás
Nyugdíj mikroszimulációMPI architektúrán
Hány nyugdíjas lesz 50év múlva?III
0.0%
5.0%
10.0%
15.0%
20.0%
25.0%
30.0%
35.0%
40.0%0 4 8
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
10
0
Elhalálozási valószínűség egy éven belül
Férfi Nő
Backtestingtöbbszálú architektúrán
Kereskedő algoritmus vizsgálata IV
logikai kapukbólegyedi célhardver4 Field Programable
Gate Array
logikai kapukbólegyedi célhardver4 Field Programable
Gate Array
FPGA
logikai kapukbólegyedi célhardver4 Field Programable
Gate Array
logikai kapukbólegyedi célhardver
Field ProgramableGate Array4
• Tetszőleges logikai függvény felépíthető
• Mérnöki megközelítést igényel
Irodalom:
[1] T. Peierls B. Goetz. Java concurrency in practice, 2006.[2] E. Chan. Algorithmic trading: Winning strategies and their rationale, 2013.[3] E. Kandort J. Sanders. Cuda by example, 2011.[4] nVidia Corporation. Nvidia cuda c programming guide. (electronic document),2011.[5] R. Pardo. The evaluation and optimization of trading strategies, 2008.
Top Related