ݺߣ

ݺߣShare a Scribd company logo
Gazdasági számítások
párhuzamos
számítógépeken
Forgács Attila
(Emarsys technologies - attila.forgacs@emarsys.com)

Mohácsi László
(Budapesti Corvinus Egyetem - laszlo.mohacsi@uni-corvinus.hu)
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?
1

sokprocesszoros gépek közös memória
NUMA független számítóegységek
sokprocesszoros gépek közös memória
NUMA független számítóegységek
Több szálon futó programok:
•
•
•
•

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

Cluster és Grid nincs közös memória
computing számítógépek hálózata
2

Cluster és Grid nincs közös memória
computing számítógépek hálózata
Feladat:

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.

Megoldás: Message Passing Interface
• 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.
közös memória
grafikus processzorok
összekapcsolt
CUDA
számítóegységek

3

NVIDIA GeForce GTX570
közös memória
grafikus processzorok
összekapcsolt
CUDA
számítóegységek

3
közös memória
grafikus processzorok
összekapcsolt
CUDA
számítóegységek

3
közös memória
grafikus processzorok
összekapcsolt
CUDA
számítóegységek

3
közös memória
grafikus processzorok
összekapcsolt
CUDA
számítóegységek

3

• Ipar bizalmatlansága.
• Nehezen becsülhető teljesítmény.
• Szabványháború.
Alkalmazási példák
I

lineáris
ABS módszer
egyenletrendszer
CUDA architektúrán
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
II

Sokdimenziós testek Lovász-Vempala-Deák
térfogata algoritmus CUDA-n
Hány nyugdíjas lesz 50 Nyugdíj mikroszimuláció
év múlva? MPI architektúrán

III

9 908 798

x 50 év x 100 futás

Elhalálozási valószínűség egy éven belül
40.0%
35.0%
30.0%
25.0%
20.0%
15.0%
10.0%
5.0%

100

96

92

88

84

80

76

72

68

64

Nő

60

56

52

Férfi

48

44

40

36

32

28

24

20

16

8

12

4

0

0.0%
Kereskedő algoritmus Backtesting
vizsgálata többszálú architektúrán

IV
4

Field Programable logikai kapukból
Gate Array egyedi célhardver
4

Field Programable logikai kapukból
Gate Array egyedi célhardver

FPGA
4

Field Programable logikai kapukból
Gate Array egyedi célhardver
4

Field Programable logikai kapukból
Gate Array egyedi célhardver

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

More Related Content

Mohácsi László: Gazdasági számítások párhuzamos számítógépeken