geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních...

180
České vysoké učení technické v Praze Fakulta stavební Katedra mapování a kartografie Využití paralelních výpočt ů v geodézii DOKTORSKÁ DISERTAČPRÁCE Ing. Martin Jeřábek Praha, září 2001 Doktorský studijní obor: Geodézie a kartografie Školitel: Doc. Ing. Aleš Čepek, CSc.

Transcript of geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních...

Page 1: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

České vysoké učení technické v Praze Fakulta stavební

Katedra mapování a kartografie

Využití paralelních výpočtů v geodézii

DOKTORSKÁ DISERTAČNÍ PRÁCE

Ing. Martin Jeřábek

Praha, září 2001

Doktorský studijní obor: Geodézie a kartografie Školitel: Doc. Ing. Aleš Čepek, CSc.

Page 2: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah
Page 3: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

1ČVUT, FSv, katedra mapování a kartografie

1111 ObsahObsahObsahObsah

1 OBSAH................................................................................................................ 1

2 PŘEDMLUVA...................................................................................................... 5

3 ÚVOD .................................................................................................................. 7

4 PARALELNÍ POČÍTAČE A PARALELNÍ VÝPOČTY........................................ 10

4.1 Evoluce...................................................................................................................................................... 10

4.2 Konstrukce ............................................................................................................................................... 12 4.2.1 Flynnova taxonomie...........................................................................................................................12

4.2.1.1 SISD ...........................................................................................................................................13 John von Neumann ............................................................................................................................13

4.2.1.2 SIMD..........................................................................................................................................14 4.2.1.3 MISD..........................................................................................................................................14 4.2.1.4 MIMD ........................................................................................................................................15

4.2.2 Komunikace v paralelním počítači.....................................................................................................16 4.2.2.1 Směrování...................................................................................................................................16

4.2.3 Paměť paralelního počítače...............................................................................................................17 4.2.3.1 SMPC .........................................................................................................................................18 4.2.3.2 DMPC ........................................................................................................................................18 4.2.3.3 VSM ...........................................................................................................................................19 4.2.3.4 Přístup do paměti u SMPC ......................................................................................................... 20 4.2.3.5 Přístup do paměti u DMPC ........................................................................................................ 21

4.2.4 Propojovací sítě.................................................................................................................................. 21 4.2.4.1 Použité pojmy teorie grafů ......................................................................................................... 22 4.2.4.2 Požadavky na propojovací síť .................................................................................................... 22 4.2.4.3 Typy propojovacích sítí.............................................................................................................. 23

Hyperkrychle ..................................................................................................................................... 23 Hyperkubické sítě .............................................................................................................................. 24 N-rozměrné mřížky ........................................................................................................................... 25 de Bruinovy sítě................................................................................................................................. 26 Stromové grafy .................................................................................................................................. 27

4.2.5 Taxonomie paralelních počítačů ........................................................................................................ 27 4.2.5.1 Současnost a trendy .................................................................................................................... 27 4.2.5.2 Symmetric Multiprocessors (SMP) ............................................................................................ 27 4.2.5.3 Massively Parallel Processors (MPP)......................................................................................... 28 4.2.5.4 Clustery ...................................................................................................................................... 28

Beowulf ............................................................................................................................................. 28 MOSIX .............................................................................................................................................. 29

4.2.5.5 Distribuované paralelní počítače ................................................................................................ 30 Výhody heterogenního distribuovaného výpočetního systému ......................................................... 30 Nevýhody heterogenního distribuovaného výpočetního systému ..................................................... 30

4.3 Paralelní algoritmy .................................................................................................................................. 31

4.4 Růst výkonu paralelního systému........................................................................................................... 32

4.5 Amdahlův zákon ...................................................................................................................................... 34

4.6 Paralelizace............................................................................................................................................... 35 4.6.1 Automatická paralelizace ................................................................................................................... 35

Page 4: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

2 ČVUT, FSv, katedra mapování a kartografie

4.6.2 Ruční paralelizace.............................................................................................................................. 36 4.6.2.1 Paralelní programovací jazyky................................................................................................... 36 4.6.2.2 Knihovny pro paralelní programování ....................................................................................... 36

4.6.3 Některé možné přístupy k paralelizaci............................................................................................... 36

4.7 Oblasti využití paralelních systémů ....................................................................................................... 37

5 SYSTÉMY PRO PARALELNÍ VÝPOČTY .........................................................39

5.1 Parallel Virtual Machine ........................................................................................................................ 39

5.2 Paralelizace úloh využívajících PVM..................................................................................................... 39 5.2.1 Krátce z historie................................................................................................................................. 40 5.2.2 Základní vlastnosti PVM ................................................................................................................... 40 5.2.3 Výhody PVM..................................................................................................................................... 41 5.2.4 Platformy podporované PVM............................................................................................................ 42 5.2.5 Části PVM ......................................................................................................................................... 43 5.2.6 Používané pojmy ............................................................................................................................... 44 5.2.7 Rozhraní knihovny PVM................................................................................................................... 44

5.2.7.1 Základní funkce ......................................................................................................................... 45 5.2.7.2 Komunikace mezi procesy ......................................................................................................... 47 5.2.7.3 Obsluha paralelního počítače ..................................................................................................... 50 5.2.7.4 Odolnost proti výpadkům........................................................................................................... 51 5.2.7.5 Skupiny paralelních procesů ...................................................................................................... 52

5.2.8 PVM konzole..................................................................................................................................... 53 5.2.9 Konfigurace PVM pomocí hostfile .................................................................................................... 54 5.2.10 XPVM.............................................................................................................................................. 56

5.3 Další balíky pro paralelní výpočty ......................................................................................................... 57 5.3.1 Message Passing Interface ................................................................................................................. 57

5.3.1.1 MPICH....................................................................................................................................... 57 5.3.2 P4....................................................................................................................................................... 58 5.3.3 Express............................................................................................................................................... 58 5.3.4 Linda.................................................................................................................................................. 58

5.4 Stručné srovnání PVM a MPI ................................................................................................................ 59

5.5 ScaLAPACK ............................................................................................................................................ 61

6 APLIKACE PARALELNÍHO ZPRACOVÁNÍ DAT.............................................62

6.1 Paralelní zpracování dat v geodézii a DPZ............................................................................................ 62 6.1.1 Danish Center for Remote Sensing.................................................................................................... 62 6.1.2 Univerzita v Adelaide ........................................................................................................................ 63 6.1.3 NASA Goddard Space Flight Center ................................................................................................. 64 6.1.4 Clemson Regional Data Center.......................................................................................................... 64

6.2 Paralelní výpočty na naší fakultě ........................................................................................................... 65

7 POUŽITÉ TECHNOLOGIE ................................................................................66

7.1 Hardware ................................................................................................................................................. 66 7.1.1 SP2..................................................................................................................................................... 66 7.1.2 Heterogenní síť počítačů.................................................................................................................... 67 7.1.3 Homogenní síť počítačů..................................................................................................................... 68

7.2 Software.................................................................................................................................................... 68 7.2.1 Linux.................................................................................................................................................. 68

Page 5: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

3ČVUT, FSv, katedra mapování a kartografie

7.2.2 GaMaLib a gMatVec.......................................................................................................................... 70

7.3 Programovací jazyk................................................................................................................................. 70

8 EXPERIMENTY................................................................................................. 72

8.1 Obrazová korelace ................................................................................................................................... 72 8.1.1 Teoretický nástin problému................................................................................................................ 72

8.1.1.1 Binární korelátory....................................................................................................................... 75 8.1.1.2 Smíšené korelátory..................................................................................................................... 75 8.1.1.3 Víceúrovňové korelátory............................................................................................................ 75

8.1.2 Paralelní zpracování ........................................................................................................................... 77 8.1.3 Dosažené výsledky............................................................................................................................. 79

8.2 Obrazové filtry ......................................................................................................................................... 83 8.2.1 Teoretický nástin problému................................................................................................................ 83

8.2.1.1 Detekce hran............................................................................................................................... 83 8.2.2 Použité obrazové filtry ....................................................................................................................... 85

8.2.2.1 Zvýraznění hran.......................................................................................................................... 85 Laplaceovský operátor 1.................................................................................................................... 85 Laplaceovský operátor 2.................................................................................................................... 85

8.2.2.2 Zaostření obrazu......................................................................................................................... 86 Sharpening operator........................................................................................................................... 86

8.2.2.3 Detekce hran............................................................................................................................... 86 Robertsův operátor ............................................................................................................................ 86 Sobelův operátor................................................................................................................................ 87 Prewittův operátor ............................................................................................................................. 88 Lineární operátor ............................................................................................................................... 89 Robinsonův operátor ......................................................................................................................... 89 Kirschův operátor .............................................................................................................................. 90

8.2.3 Paralelní zpracování ........................................................................................................................... 90 8.2.4 Dosažené výsledky............................................................................................................................. 91 8.2.5 Hodnocení .......................................................................................................................................... 94

8.3 Paralelní transformace souřadnic .......................................................................................................... 94 8.3.1 Nástin problému................................................................................................................................. 94 8.3.2 Paralelizace ........................................................................................................................................ 94

8.3.2.1 Varianta A - použití odkládacích souborů .................................................................................. 95 8.3.2.2 Varianta B - přenos výsledných dat po síti ................................................................................. 99

8.3.3 Dosažené výsledky...........................................................................................................................101 8.3.3.1 Varianta A ................................................................................................................................102 8.3.3.2 Varianta B ................................................................................................................................113

8.3.4 Hodnocení ........................................................................................................................................122 8.3.4.1 Varianta A – využití odkládacích souborů ...............................................................................122 8.3.4.2 Varianta B - přenos dat po síti ..................................................................................................122

8.3.5 Závěr ................................................................................................................................................123

8.4 Řešení soustavy rovnic metodou LTS .................................................................................................. 123 8.4.1 Teorie ...............................................................................................................................................123 8.4.2 Nástin problému...............................................................................................................................126 8.4.3 Metoda LTS .....................................................................................................................................126

8.4.3.1 Princip ......................................................................................................................................126 8.4.3.2 Tvorba upravené soustavy rovnic.............................................................................................127 8.4.3.3 Řešení upravené soustavy rovnic .............................................................................................129 8.4.3.4 Výběr prvního vzorku a LTS iterace ........................................................................................129

LTS způsob hledání vzorku.............................................................................................................130 8.4.3.5 Průběh dalšího výpočtu ............................................................................................................131 8.4.3.6 Ukončení výpočtu.....................................................................................................................132 8.4.3.7 Klady a zápory .........................................................................................................................132

8.4.4 Paralelní řešení .................................................................................................................................133

Page 6: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

4 ČVUT, FSv, katedra mapování a kartografie

8.4.4.1 Přístup k paralelnímu řešení..................................................................................................... 133 Úpravy klasického algoritmu použité při paralelním řešení............................................................ 134

8.4.4.2 Použité objektové struktury ..................................................................................................... 134 Permutace........................................................................................................................................ 134 Core................................................................................................................................................. 135 Storage ............................................................................................................................................ 137 Databáze permutací ......................................................................................................................... 137 TOP list ........................................................................................................................................... 137 Task worklist................................................................................................................................... 137

8.4.4.3 Klasický výběr permutačních vektorů ..................................................................................... 137 LTS přístup ..................................................................................................................................... 138 Náhodný přístup .............................................................................................................................. 138

8.4.4.4 Genetický výběr permutačních vektorů ................................................................................... 138 Genetické křížení ............................................................................................................................ 139 Genetická mutace ............................................................................................................................ 140

8.4.4.5 Princip práce paralelního programu ......................................................................................... 142 Master program............................................................................................................................... 142 Slave proces .................................................................................................................................... 144

8.4.4.6 Podmínky pro ukončení výpočtu ............................................................................................. 145 8.4.4.7 Parametry paralelního programu.............................................................................................. 145

Paralelní zpracování ........................................................................................................................ 145 Ukončení výpočtu ........................................................................................................................... 146 Průběh výpočtu ............................................................................................................................... 146 Nastavení genetického algoritmu .................................................................................................... 146

8.4.5 Testy ................................................................................................................................................ 146 8.4.5.1 Data.......................................................................................................................................... 147 8.4.5.2 Load balancing......................................................................................................................... 147

Zjištění teoretického výkonu........................................................................................................... 147 Alternativy ...................................................................................................................................... 148

8.4.5.3 Testy výkonu............................................................................................................................ 149 8.4.5.4 Testy konvergence ................................................................................................................... 149

8.4.6 Dosažené výsledky a jejich hodnocení ............................................................................................ 152 8.4.6.1 Load balancing......................................................................................................................... 152 8.4.6.2 Výkon....................................................................................................................................... 153 8.4.6.3 Konvergence ............................................................................................................................ 153

9 ZÁVĚR.............................................................................................................156

10 LITERATURA................................................................................................160

11 INTERNETOVÉ ZDROJE..............................................................................162

12 SEZNAM TABULEK......................................................................................165

13 SEZNAM OBRÁZKŮ.....................................................................................166

14 SEZNAM GRAFŮ ..........................................................................................168

15 REJSTŘÍK .....................................................................................................169

16 REJSTŘÍK POUŽITÝCH ZKRATEK A POJMŮ ............................................172

17 SEZAM PŘÍLOH............................................................................................178

Page 7: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

5ČVUT, FSv, katedra mapování a kartografie

2222 PředmluvaPředmluvaPředmluvaPředmluva Předkládaná práce se zabývá problematikou paralelních počítačů a možnostmi

využití paralelních výpočtů v geodetických vědních oborech, s ohledem na současný stupeň vývoje hardwaru a softwaru a cesty, kterými se tento vývoj ubírá. Vzhledem k rychlému rozvoji tohoto oboru a jeho rozsáhlosti nemohu v této práci (a ani to nebylo mým cílem) podat vyčerpávající obraz tohoto fenoménu. Spíše se snažím o přiblížení jeho možností s ohledem na výpočetně náročné úlohy řešené v geodézii.

Ačkoliv se o počítače ve velké míře zajímám již od roku 1987, v počátcích mého studia pro mne (stejně jako pro většinu mých kolegů) paralelní počítače představovaly v podstatě velkou neznámou, o jejíž existenci jsem sice měl mlhavé tušení, ale jakékoliv podrobnější znalosti této problematiky byly zcela mimo rámec mé počítačové gramotnosti. Bohužel ani dnes nemá valná většina naší odborné veřejnosti o paralelních výpočtech žádné povědomí, a i proto je jejich současné využití v našem oboru podle mého názoru téměř nulové.

Prvotním impulsem pro zaměření mého studia tímto směrem bylo absolvování semináře Paralelní systémy a algoritmy vedeného Doc. Ing. Tvrdíkem, CSc. na fakultě elektrotechnické ČVUT, na jehož existenci mě upozornil můj školitel Aleš Čepek. I přes můj počáteční znalostní handicap nejen v oblasti konstrukce počítačů oproti řádným studentům elektrotechnické fakulty, jsem byl po několika absolvovaných hodinách danou problematikou zcela pohlcen. Abych mohl pokračovat v rozvoji svých znalostí, bylo nutné nejprve nastudovat teoretické základy konstrukce počítačů z odborné literatury určené studentům inženýrského studia fakulty elektrotechnické. Byl jsem příjemně překvapen přístupem Doc. Tvrdíka k mé účasti na jeho seminářích, neboť podpořil můj zájem o tento obor a měl pochopení pro mé počáteční tápání v přednášené teorii. I v semestrální práci, která tvořila tečku za zmiňovaným seminářem, Doc. Tvrdík podporoval mou snahu o hledání aplikace paralelních výpočtů na úlohy řešené v geodézii. Tato zkušenost mě přesvědčila o tom, že směr, kterým jsem se ve svém studiu vydal, je správný. To vyústilo v mé další studium tohoto oboru a experimenty s paralelními výpočty.

V době, kdy jsem se začal hlouběji zabývat paralelními počítači, u nás nebyly technické předpoklady pro mé experimenty právě na vysoké úrovni. Až komicky může v dnešní době působit skutečnost, že první platformou pro mé pokusy s paralelními výpočty byl jediný počítač s procesorem 80486 a 8 MB paměti. Tato neutěšitelná situace se však postupem času k mé velké spokojenosti zlepšila, a to především díky ochotě mých kolegů, kteří mi umožnili využívat jejich počítačů jako součást prvního skutečně paralelního počítače běžícího na naší katedře. Poté nabraly události rychlý spád a již v roce 1996 jsem dostal příležitost využívat v rámci svého výzkumného projektu masivně paralelní superpočítač IBM SP2 v tehdejším Centru intenzivních výpočtů ČVUT. K němu jsem posléze přidal i heterogenní síť počítačů s operačními systémy Linux a OSF ve svém zaměstnání a větší homogenní síť Linuxových stanic na naší katedře. Tyto paralelní počítače již disponovaly potřebným výkonem nejen pro testování ale i pro jejich případné použití v praxi. Rostoucí míra technické vyspělosti a relativní dostupnosti potřebného počítačového vybavení měla nezanedbatelný vliv na podstatné rozšíření a zkvalitnění mých výzkumů oproti mým prvotním záměrům a předpokladům.

Ani v dnešní době není bohužel v uvažovaných cílových oblastech vybavenost potřebnou výpočetní technikou dostatečně příznivá. Avšak pokud uvažujeme o použití

Page 8: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

6 ČVUT, FSv, katedra mapování a kartografie

sítě pracovních stanic jako paralelního počítače, je tato alternativa dostupná na většině našich výzkumných pracovišť a dalších místech, kde by intenzivní výpočty mohly nalézat uplatnění. Proto se domnívám, že důvodem nevyužívání paralelních výpočtů v našem oboru není nedostatečná hardwarová základna, ale spíše absence povědomí odborné veřejnosti o existenci tohoto přístupu k řešení výpočetně složitých úloh a o možnostech, které nabízí pro zkvalitnění a zefektivnění jejich náročné vědecké práce.

Při studiu problematiky paralelních výpočtů jsem vycházel především z výše uvedených přednášek Doc. Tvrdíka a z jeho skripta Parallel systems and algorithms, které pro mě představovalo neocenitelnou teoretickou základnu pro další rozvoj mých znalostí a poskytlo mi základní obraz o dané problematice. Protože odborná literatura zabývající se paralelními výpočty byla v našich knihovnách spíše vzácností, další zdroje pro mou práci tvořila zahraniční literatura získávaná v rámci grantů a z nemalé části také informace z internetových stánek výzkumných projektů zabývajících se tímto tématem.

Vzhledem k tomu, že naprostá většina literatury, se kterou jsem pracoval, byla napsána v angličtině, a v podstatě i celý obor výpočetní techniky jako takový, využívá především tohoto jazyka, je terminologie, kterou ve své práci používám rovněž zpravidla anglicky. Pouze výrazy, jejichž český ekvivalent je obvyklé v praxi používat nebo jejichž překlad by mohl napomoci k pochopení výkladu, jsou uvedeny v obou jazycích. V textu mé práce jsou také ve značné míře použity všeobecně uznávané zkratky odborných výrazů, jejichž opakované vypisování by mohlo text nežádoucím způsobem roztříštit a znepřehlednit. Seznam všech použitích zkratek spolu s jejich stručným výkladem je uveden v závěru práce. Nelze samozřejmě vyloučit, že popisovaným odborným výrazům mohou být v literatuře přiřazovány i jiné zkratky, ale možné neporozumění způsobené případným nesouladem je minimalizováno jejich výkladem.

Při hledání vhodných aplikací pro své experimenty s paralelními výpočty jsem byl inspirován úlohami, na jejichž řešení jsem pracoval v rámci svého studia, případně zajímavými úlohami, jejichž sekvenčním řešením se zabývali mí kolegové z katedry. Tyto úlohy skýtaly zajímavou možnost srovnání výsledků klasických sekvenčních verzí programu s mými vlastními experimentálními paralelními verzemi.

V počátečních fázích mých experimentů jsem se rozhodl pro použití programovacího jazyka C, a to především z důvodu, že v tomto jazyce jsou běžně dostupné knihovny, jichž jsem využíval při paralelizaci svých programů. V pozdějších etapách experimentů jsem na doporučení svého školitele Aleše Čepka zvážil možný přechod k vývoje vyššímu stupni jazyka – k objektově orientovanému programovacímu jazyku C++. Toto rozhodnutí podpořila též existence knihoven gMatVec a GaMaLib a mé předchozí zkušenosti s tímto jazykem. Použití tohoto jazyka v porovnání s jazykem C výrazně urychlilo a zefektivnilo tvorbu paralelních i sekvenčních částí mých programů.

Na tomto místě bych rád poděkoval svému školiteli Doc. Ing. Aleši Čepkovi, CSc., za odborné vedení, nezměrnou trpělivost a neustálou inspiraci, kterou mi věnoval po celou dobu mého studia. Svou podporou, optimismem a humorem mi vždy dokázal vrátit chuť k práci i v dobách neúspěchů, které se zákonitě čas od času dostavovaly. Poděkování patří i mým rodičům za jejich podporu po celou dobu mého studia.

Page 9: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

7ČVUT, FSv, katedra mapování a kartografie

3333 ÚvodÚvodÚvodÚvod Tato práce pojednává o paralelních počítačích, paralelních výpočtech a

možnostech jejich využití pro řešení výpočetně náročných úloh z oblasti geodézie. S nástupem stále výkonnějších počítačů se totiž začínají objevovat i stále náročnější úlohy, které je třeba řešit. Algoritmy, které byly natolik náročné na výpočet, že bylo neefektivní nebo dokonce nemožné je použít v praxi, se dostávají do popředí zájmu a objevují se i algoritmy nové, založené právě na využití masivní výpočetní síly. Současně s tím se začínají řešit úlohy, kterým teprve nové technologie daly šanci na realizaci, neboť svou komplexností či rozsáhlostí kladly přílišné nároky na existující hardware.

Kromě výkonných pracovních stanic se stále výkonnějšími procesory se objevují i superpočítače označované jako masivně paralelní, které k řešení úloh používají několik (podle konstrukce i několik tisíc) spolupracujících procesorů a jejichž použitím je možno zpracování náročných úloh i řádově urychlit. Můžeme říci, že tyto počítače patří k vývojové špičce ve své evoluční řadě a tomu samozřejmě odpovídá i jejich dostupnost a cena.

I přes neustávající technologický vývoj však problémem zůstává skutečnost, že i když jsou dostupné superpočítače s ohromujícím výkonem, ne každý má několik desítek či stovek milionů korun na pořízení takového zařízení, a ne vždy je daná úloha natolik kritická, aby její vyřešení vyvážilo vynaložené finanční náklady. Mnohdy lze totiž získat méně kvalitní a méně spolehlivé výsledky pomocí řádově méně náročných výpočtů a finanční stránka věci se tak často stává omezujícím faktorem při rozhodování o použití výpočetně náročných algoritmů.

K řešení tohoto dilematu může napomoci použití distribuovaných paralelních počítačů, zvláště pak pokud uvážíme v poslední době stále více populární sítě pracovních stanic (Networks Of Workstations), tedy například skupiny klasických pracovních stanic propojených výkonnou propojovací sítí. I použití takovéto konfigurace se může zdát jako neřešitelný problém, ale vzpomeňme si, že na stolech našich kanceláří a laboratoří leží desítky počítačů, které v noci (a často bohužel i ve dne) mrhají svým procesorovým časem. Proč tedy nevyužít tuto výpočetní kapacitu, která už beztak existuje, pro výpočty, které bychom jinak neměli šanci řešit?

V dalším textu jsou uvedeny informace o paralelních počítačích jako hardwarové platformě pro paralelní aplikace. Tyto informace nejsou a ani nemohou být úplné a vyčerpávající, ať již z důvodu nedostatku prostoru nebo díky tomu, že se tento obor neustále vyvíjí.

Jako paralelní můžeme chápat systém, v němž může probíhat několik procesů současně

(paralelně).

Důvodem, pro použití paralelizmu v oblasti computer science byla snaha zvyšovat výkon nad hranici stanovenou současnou technologií výroby počítačů. Dalším důvodem pro paralelizaci byl i požadavek na zvýšení bezpečnosti a spolehlivosti, kterou lze s použitím paralelně pracujících jednotek zajistit.

Page 10: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

8 ČVUT, FSv, katedra mapování a kartografie

Paralelizmus není ničím nepřirozeným. Podle [1] je mnoho numerických i nenumerických algoritmů ve své podstatě paralelních a jejich provádění na sekvenčním počítači vede nutně ke ztrátám výkonu.

Bleskový růst výkonu dnešních počítačů podporovaný vývojem a aplikací nových technologií je výsledkem neustávající poptávky po stále rychlejších a výkonnějších nástrojích. Technologický pokrok však nestačí uspokojovat stále se zvyšující nároky a požadavky. Řešení tohoto problému je tedy třeba hledat v oblasti architektury počítačů.

Principy paralelního zpracování v oblasti výpočetní techniky zajímaly konstruktéry už v dobách prvopočátků počítačů vůbec. Jejich aplikace zůstávala však původně pouze ve stádiu teoretickém, neboť neexistovala technologie, která by umožňovala implementaci podobných principů. Samotná paralelizace se i ve svých počátečních stádiích omezovala převážně na paralelní přístup do paměti a další méně komplexní úkony s menšími nároky na vyspělé technologie. Teprve s bleskovým rozvojem technologie výroby počítačů mohly přijít na svět první vektorové počítače, které již můžeme právem řadit mezi paralelní. Jedním z nich byl roku 1976 CRAY-1* firmy Cray Research Inc.

Paralelní výpočty se od svého vstupu na pole výpočetní techniky počátkem sedmdesátých let staly samostatnou oblastí computer science a postupem času nacházejí stále větší využití jak ve sféře vojenské, tak i v mnoha civilních oblastech. Přestože v zahraničí není pojem paralelního zpracování dat neznámý, mezi naší odbornou geodetickou veřejností si zatím stále jen hledá své příznivce. Nepochybně i z tohoto důvodu si – pokud je mi známo – dosud nenašel v naší geodetické praxi jediné uplatnění.

Paralelní výpočty jako fenomén, který musel zákonitě vstoupit na pole masivních výpočtů, nachází své uplatnění tam, kde je zapotřebí mohutné výpočetní síly a kde je k dispozici potřebná technika. Setkáme se s nimi tedy převážně tam, kde existuje požadavek na zpracování výpočetně náročných úloh v časech, které není možno dosáhnout zpracováním klasickými počítači, nebo například v oblastech, kde je prováděno automatické zpracování velkého množství dat.

V geodézii a jejích oborech existuje velké množství úloh, které jsou buď výpočetně náročné nebo zahrnují velké množství nezávisle zpracovávaných výpočetních celků. Právě tento typ úloh je předurčen k paralelnímu zpracování. Paralelizace geodetických úloh může zabezpečit jak jejich rychlejší a efektivnější vyřešení, tak i umožnit zpracování komplexnějších a rozsáhlejších výpočtů, jejichž výsledky by bez použití paralelního přístupu byly jen obtížně dosažitelné.

Z geodetických vědních oborů můžeme jako vhodné pro paralelní zpracování vytipovat úlohy zpracování obrazových dat dálkového průzkumu Země, výpočetně náročné vyrovnání sítí z oblasti vyšší geodézie, hromadné zpracování dat při tvorbě digitálního modelu terénu a GIS, dávkové výpočty z oblasti nižší geodézie a další. Reprezentativním příkladem může být právě řešení velkých řídkých soustav lineárních algebraických rovnic, používaných při vyrovnání sítí, robustními metodami náročnými na výpočetní výkon, které bylo kromě jiného součástí mých stěžejních experimentů, jejichž výsledky jsou uvedeny v závěru práce. * Cray-1 [51], [50] byl prvním superpočítačem, vyvinutým v roce 1976 Cray Research pod vedením „otce superpočítačů“ Seymoora Craye. Cray-1 byl instalován v Los Alamos National Laboratory a se svým špičkovým výkonem 133 MFLOPS, dosaženým díky své revoluční architektuře, lámal tehdejší výkonové rekordy. Kvůli extrémnímu tepelnému vyzařování musel být systém vybaven chladicím systémem využívajícím freon.

Page 11: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

9ČVUT, FSv, katedra mapování a kartografie

Tato práce se skládá ze dvou hlavních částí. V první části je popsána motivace pro využití paralelního přístupu, technologie paralelních počítačů a teoretické pozadí paralelních výpočtů. Druhá část pak popisuje mé experimenty, zabývající se využitím paralelních výpočtů v aplikacích, které nacházejí uplatnění v geodézii. Za nejvýznamnější z nich lze považovat experimenty s paralelizací algoritmu pro řešení soustavy lineárních algebraických rovnic metodou LTS.

Page 12: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

10 ČVUT, FSv, katedra mapování a kartografie

4444 Paralelní počítače a paralelní výpočtyParalelní počítače a paralelní výpočtyParalelní počítače a paralelní výpočtyParalelní počítače a paralelní výpočty

4.14.14.14.1 EvoluceEvoluceEvoluceEvoluce Klasické sekvenční počítače prošly během svého vývoje řadou změn, které měly

za cíl jejich zrychlení nad mez dosažitelnou pomocí dostupných technologií. Mezi faktory, které omezují výkon procesorů, můžeme počítat taktovací frekvenci dosažitelnou pro procesory vyráběné současnou technologií, instruction level parallelism, který urychluje zpracování (viz dále), ale má jisté limity a samozřejmě, v konečném důsledku, je omezujícím faktorem i rychlost světla. Navíc je snaha zvýšit výkon standardního neparalelního procesoru limitována neustále se zvyšujícími se náklady na každé další vylepšení.

O náznacích použití paralelního přístupu pro dosažení většího výkonu můžeme ale mluvit až od počítačů druhé generace. U počítačů následujících po první generaci se již začaly uplatňovat konstrukční změny vedoucí později až ke konstrukci paralelních počítačů, jak je známe dnes.

Orientační tabulka ukazuje hlavní znaky jednotlivých generací počítačů (hodnoty jsou převzaty z [1])

Generace Rok Konstrukční prvky Paměť Kapacita

paměti Výkon (MIPS) Zástupce

1 1951 elektronky buben 1 kb 0,01 UNIVAC 1

2 1957 tranzistory ferity 10 kb 0,1 IBM 7090

3 1964 SSI ferity 1 MB 1 IBM 360

3,5 1971 MSI MSI 1 MB 1 IBM 370

4 1981 LSI LSI 10 MB 10 IBM 308X

tabulka 4.1: Průřez generacemi počítačů

Jednou z těchto změn bylo použití instruction pipelining. Tento princip spočívá v rozdělení procesu provádění jedné instrukce programu na několik základních etap (například čtení instrukce, čtení operandů, provedení instrukce, zápis výsledku) a tyto jsou pak vykonávány nezávislými jednotkami. Zatímco tedy klasický (rozuměj – nepoužívající instruction pipelining) počítač potřebuje na provedení jedné instrukce n kroků, počítač využívající instruction pipelining provede jednu instrukci v čase jednoho kroku.

Dobře je tento princip patrný na příkladu montážní linky automobilů, kdy při použití principu instruction pipelining vyjíždí (po určitém počtu počátečních kroků potřebných k naplnění linky / fronty) z montážní linky jedno auto v každém dalším kroku. Bez použití tohoto principu pak z linky vyjíždí jen jedno auto po daném počtu kroků potřebných k sestavení auta (v našem případě k provedení instrukce).

Page 13: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

11ČVUT, FSv, katedra mapování a kartografie

Při použití instruction pipelining Bez pipelining

Krok 1

Krok 2

Krok 3

Krok 4

Krok 5

tabulka 4.2: Princip instruction pipelining

Tento přístup označovaný také jako Instruction Level Parallelism (ILP) tedy v závislosti na daném hardware (procesoru) umožňuje vykonávat v pipeline několik instrukcí paralelně. K tomu, aby takovýto přístup fungoval, je nutné, aby zpracovávané instrukce nebyly na sobě závislé – ať již z hlediska používaných dat, nebo z hlediska větvení programu. K úspěšnému použití tohoto přístupu může napomoci jak samotný hardware, tak i překladač v čase překladu programu (pomocí technik, které se pokoušejí minimalizovat výskyt závislostí mezi jednotlivými instrukcemi).

Dalším z přístupů, přibližujících technologii k paralelním počítačům, bylo použití nezávislých aritmetických jednotek pro odlišné typy operací (logické operace, sčítání, násobení). Tyto jednotky pak mohly pracovat současně na různých datech. V příznivém případě tak byly například provedeny dvě operace najednou.

Další možností, jak urychlit běh programů, bylo využití technologií umožňujících zpracování více než jedné instrukce v jednom cyklu. Mezi ně se počítají například

● Superskalární procesory (mezi ně se řadí třeba procesor Pentium) umožňují zpracovat v optimálním případě několik nezávislých instrukcí najednou. Protože možnost využití paralelního zpracování několika instrukcí současně je u superskalárních procesorů závislá na zpracovávaných instrukcích (jejich případné závislosti), ne vždy je tato možnost využita.

● Very Long Instruction Word (VLIW) procesory, které mají několik nezávislých jednotek pro zpracování instrukcí. Překladač pak může specifikovat balík instrukcí, které jsou zpracovány současně.

Dalším krokem směrem k paralelnímu zpracování bylo použití celých polí totožných aritmetických jednotek (processing elements), které byly centrálně řízeny a všechny prováděly současně stejnou operaci (například sčítání), ale na různých datech uložených v lokální paměti každého z nich.

Posledním krokem na cestě k paralelním počítačům bylo tedy použití několika procesorů, které jsou víceméně autonomní a v závislosti na konstrukci paralelního počítače mohou pracovat nezávisle na sobě, přičemž využívají společnou paměť, nebo spolu komunikují pomocí propojovací sítě (viz dále 4.2.3).

Mezi nastupující generaci patří takzvané SMP on a chip, které jsou vlastně paralelním počítačem s několika procesory umístěnými na jednom křemíkovém čipu.

Page 14: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

12 ČVUT, FSv, katedra mapování a kartografie

Paralelizace byla tedy cestou, jak dosáhnout zvětšení výpočetního výkonu, i když tehdejší technologická úroveň už další zvyšování výkonu při použití klasické konstrukce počítačů neumožňovala. Paralelní počítač oproti počítači sekvenčnímu disponuje několika procesory, které současně pracují na různých úlohách, nebo spolupracují na řešení jedné úlohy.

Těchto procesorů či processing units (elements) může být podle konstrukce paralelního počítače i několik stovek či tisíc. Zrychlení výpočtu dosažené použitím paralelního počítače (oproti klasickému sekvenčnímu počítači) může být úměrné počtu použitých procesorů. Toto zrychlení však ve velké míře závisí jak na konstrukci paralelního počítače, tak také na použitých paralelních algoritmech, na vlastní úloze a na tom jak jsme její řešení schopni paralelizovat (viz 4.5). Některé úlohy jsou totiž natolik obtížně paralelizovatelné (je obtížné nalézt algoritmus, který umožňuje jejich efektivní paralelní řešení), že zrychlení dosažené paralelním zpracováním je minimální – případně tato skutečnost spolu s nevhodným paralelním algoritmem může vést i ke zpomalení výpočtu ve srovnání s použitím klasického sekvenčního počítače.

4.24.24.24.2 KonstrukceKonstrukceKonstrukceKonstrukce Jedním z klíčových parametrů paralelního počítače je jeho konstrukce. K ní je

nutné přihlížet s ohledem na jeho budoucí použití, jelikož některé konstrukční prvky a principy ideální z hlediska zpracování úloh určitého typu mohou být pro ostatní úlohy méně vhodné.

Ač by se konstrukce paralelního počítače mohla zdát záležitostí, která má význam pouze z pohledu jeho výroby a provozu, má nezanedbatelný význam i při návrhu a dalším vývoji paralelních programů a algoritmů. Pokud je paralelní počítač navrhován přímo pro řešení konkrétního typu úloh (například maticové operace nebo řešení diferenciálních rovnic) má tato skutečnost vliv i na jeho konstrukci.

Paralelní počítače se svou konstrukcí v mnohém liší od klasického modelu sekvenčního počítače. Podle své konstrukce mohou zpracovávat několik úloh najednou, případně provádět jednu a tu samou úlohu na několika různých sadách dat. Aby bylo možno několik úloh zpracovávat skutečně paralelně, jsou paralelní počítače vybaveny více než jedním procesorem. Podle konstrukce počítače jich bývá i několik desítek či stovek. Ačkoliv tedy paralelní počítače ve svých počátcích byly vybaveny dvěma až čtyřmi procesory, najdeme dnes paralelní počítače vybavené i několika tisíci mikroprocesorů. Například počítač CM-2 firmy Thinking Machines Inc. z 80. let mohl být vybaven 65536 jednobitovými procesory a řada počítačů NCUBE 2 firmy NCUBE disponuje až 8192 třicetidvou- nebo šedesátičtyřbitovými procesory.

Konstrukci paralelního počítače můžeme posuzovat především podle počtu instrukčních a datových front, dále pak podle konstrukce paměti a způsobu komunikace jednotlivých paralelně pracujících částí počítače.

4.2.1 Flynnova taxonomie Flynnova taxonomie (rozdělení) počítačových architektur třídí paralelní počítače

podle počtu datových front a způsobu řízení paralelních procesorů.

Rozděluje tedy počítače podle počtu instrukčních proudů (instruction stream), což jsou sekvence instrukcí prováděných počítačem, na Single a Multiple Instruction stream (Program) – označované zkratkami SI / MI (případně někdy také SP / MP). Dále

Page 15: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

13ČVUT, FSv, katedra mapování a kartografie

pak zkoumá počet datových proudů (data stream) neboli sekvencí dat, která budou použita během zpracování proudu instrukcí – tady je používáno označení Single/Multiple Data stream – ve zkrácené podobě SD / MD.

Tedy z hlediska práce paralelního počítače s daty pak můžeme rozlišovat princip, kde všechny procesory paralelního počítače pracují na totožných datech nebo je naopak každému procesoru přiřazena jeho vlastní množina dat. Z hlediska řízení chodu počítače pak odlišujeme počítače, kde jsou všechny procesory řízeny jedním programem od počítačů, kde je každý procesor řízen programem jemu příslušejícím.

Flynnova taxonomie podle výše uvedeného třídění rozlišuje čtyři základní kategorie počítačů, v nichž kombinuje Single/Multiple Data stream (počítače zpracovávající jednu nebo více front dat najednou) a Single/Multiple Instruction stream (počítače, jejichž paralelně pracující procesory jsou řízeny jedním, nebo více proudy instrukcí):

● Single Instruction stream Single Data stream (označované jako SISD) – tedy třída klasických sekvenčních počítačů,

● Single Instruction stream Multiple Data stream (SIMD) – do níž patří některé běžně vyráběné paralelní počítače,

● Multiple Instruction stream Single Data stream (MISD) – která je spíš pouze teoretickou třídou,

● Multiple Instruction stream Multiple Data stream (MIMD) – další třída do níž patří dnes komerčně vyráběné paralelní počítače.

4.2.1.1 SISD Do rodiny SISD bychom zde zařadili klasický model sekvenčního počítače (tedy

Single Instruction stream Single Data stream). V těchto počítačích je jediný proud dat zpracováván procesorem, který je řízen jedním tokem instrukcí. Můžeme tady najít instruction pipelining jako druh paralelizace, ale v jednom kroku tyto počítače provádějí pouze jednu instrukci. Můžeme také říci, že je lze zařadit mezi sekvenční počítače podle klasického von Neumannova modelu.

ProcesorInstrukce Data

obrázek 4.1: Zjednodušený von Neumannův model sekvenčního počítače (SISD)

John von Neumann Tento geniální maďarský matematik (1903 – 1957) disponoval mimořádnou

schopností využití tehdejších, na dnešní dobu velmi omezených, možností počítačů pro aplikovanou matematiku (spolupracoval na využití počítačů v Los Alamos pro výpočty spojené s konstrukcí první vodíkové bomby).

John von Neumann je obecně považován za otce idey architektury počítačů, která víceméně úspěšně přežívá do dneška. Sama architektura je definována několika základními body, z nichž asi nejdůležitější jsou následující dva:

● Počítač se skládá z paměti, řadiče, aritmetické jednotky, vstupní a výstupní jednotky. Řadič zde zpracovává programové instrukce uložené v paměti a na jejich základě řídí vstupní/výstupní jednotky a práci aritmetické jednotky.

Page 16: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

14 ČVUT, FSv, katedra mapování a kartografie

● Struktura počítače je nezávislá na typu řešené úlohy, počítač se programuje obsahem paměti – to byla asi nejzásadnější změna kterou von Neumannův návrh přinesl. Oproti zdlouhavému a náročnému programování první generace počítačů pomocí programovacího panelu, je princip programu uloženého v paměti počítače průlomem umožňujícím budoucí univerzální využití počítačů.

4.2.1.2 SIMD Další skupina je označována SIMD (Single Instruction stream Multiple Data

stream). V paralelních počítačích tohoto typu pracuje několik paralelních procesorů řízených jedním programem, přičemž každý procesor pracuje na svých vlastních datech.

Procesor 2Instrukce Data 2

Procesor 3

Procesor 1 Data 1

Data 3

obrázek 4.2: Single instruction multiple data (SIMD) model

Všechny procesory pracují synchronně, tedy ve všech procesorech je v tentýž okamžik prováděna stejná instrukce programu. V okamžiku, kdy dojde k větvení programu, pracuje pouze ta část procesorů, která je řízena první větví programu. Zbytek procesorů čeká na ukončení větve, kdy se jejich úlohy vymění. Tento typ je dobře použitelný pro úlohy, kde je možno zpracovávaná data rozložit na podmnožiny, jejichž zpracování lze provádět samostatně (například některé úlohy z oblasti zpracování obrazu v dálkovém průzkumu Země – DPZ) Výhodou paralelních počítačů tohoto typu je jejich relativně jednoduchá konstrukce a snadná tvorba programů pro danou architekturu.

V současné době je tohoto přístupu používáno v moderních procesorech osobních počítačů pro instruction level parallelism – ILP (viz výše). Tato technologie označovaná někdy také jako SWAR (SIMD Within A Register) je použita například v procesorech Intel Pentium III a 4 pod názvem Streaming SIMD Extension SSE, nebo pokročilejší SSE2 viz [44]. Mezi dalšími instrukčními sadami různých procesorů využívajících principu SIMD je možno uvést například MMX, 3Dnow!, nebo AltiVec.

4.2.1.3 MISD Jako další architekturu paralelního počítače můžeme uvažovat MISD (Multiple

Instruction stream Single Data stream), tedy počítač, kde by byl každý procesor řízen svým vlastním programem a všechny procesory by pracovaly na totožné sadě dat. Tato skupina vznikla spíše umělým vývojem jako důsledek Flynnovy klasifikace a v komerčně vyráběných paralelních počítačích nenachází uplatnění.

Page 17: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

15ČVUT, FSv, katedra mapování a kartografie

Procesor 2Instrukce 2 Data

Procesor 3

Procesor 1Instrukce 1

Instrukce 3

obrázek 4.3: Multiple instruction single data (MISD) model

Do této kategorie můžeme zařadit takzvané "pipelined multiprocesory". Lze si je představit jako sadu zřetězených procesorů, které provádějí různé operace na sadě dat, která jimi postupně prochází.

Procesor 2Data Výsledná data Procesor 1 Procesor 3

Instrukce pro krok 1

Instrukcepro krok 2

Instrukcepro krok 3

obrázek 4.4: Pipelined multiprocesor (aplikace MISD modelu)

Ty ovšem nepředstavují univerzální model počítače, ale spíše jednoúčelové zařízení určené pro zpracování konkrétního typu dat konkrétní skupinou algoritmů.

Stejně jako SIMD i architektura pipelined multiprocesorů může nalézt uplatnění v oblasti zpracování obrazu či počítačové grafiky, kde se jeví jako ideální řešení pro mnohé úlohy, které vyžadují postupnou aplikaci řady operací na zpracovávaný obraz – například postupné použití řady obrazových filtrů.

Klasická architektura MISD je ale v oblasti komerčně vyráběných paralelních počítačů považována za neobvyklou a není používána.

4.2.1.4 MIMD Poslední kategorií podle Flynnovy taxonomie je pak architektura MIMD

(Multiple Instruction stream Multiple Data stream), kde každý procesor pracuje podle vlastního programu na své množině dat.

Procesor 2Instrukce 2 Data 2

Procesor 3

Procesor 1 Data 1

Data 3

Instrukce 1

Instrukce 3

obrázek 4.5: Multiple instruction multiple data (MIMD) model

Page 18: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

16 ČVUT, FSv, katedra mapování a kartografie

Procesory mohou asynchronně pracovat na nezávislých úlohách, případně spolupracovat na řešení jedné úlohy. Jelikož každý procesor pracuje podle vlastního programu na unikátní sadě dat, je tento typ paralelního počítače (PP) velmi složitý, a to jak z hlediska konstrukce, tak s ohledem na tvorbu programů. Tato architektektura, ač konstrukčně daleko složitější než předcházející architektury, je dnes hojně používána hlavně pro svou univerzálnost.

4.2.2 Komunikace v paralelním počítači Za běhu několika paralelně probíhajících procesů je většinou nutná jejich

vzájemná komunikace (výjimkou jsou algoritmy, kdy jednotlivé části úlohy mohou být řešeny samostatně a každý paralelně pracující proces má k dispozici všechna potřebná data, většinou je však stejně nutná komunikace umožňující bezchybný chod celého systému). Procesory mezi sebou mohou komunikovat a usměrňovat svou případnou spolupráci či postup dalšího výpočtu. Tato výměna dat je realizována přes společnou paměť, případně pomocí propojovací sítě (Interconnection Network - ICNW) mezi jednotlivými paralelně pracujícími procesory.

Na rychlosti a efektivnosti komunikace ve velké míře závisí efektivnost paralelního zpracování. Pokud procesor přistupuje k datům uloženým v lokální paměti jiného paralelního procesoru (to se týká paralelního počítače s distribuovanou pamětí viz 4.2.3.2), je tento přístup řádově (100–500 krát) pomalejší než přístup k datům uloženým v lokální paměti daného procesoru. Jakákoliv rozsáhlejší výměna dat nebo komunikace mezi jednotlivými paralelně pracujícími procesory po propojovací síti může tedy způsobit výrazné zpomalení celého výpočtu. Také problémy způsobené špatným směrováním dat po ICNW mohou způsobit zpomalení, nebo i fatální konec komunikace mezi paralelně pracujícími částmi počítače.

4.2.2.1 Směrování Směrovací algoritmy pro přenos dat po propojovací síti jsou závislé na topologii

propojovací sítě a na jejím technickém řešení (například zda síť umožňuje jedno- nebo oboustranné vysílání). Rozeznáváme čtyři základní typy vysílání v propojovacích sítích:

1. One-to-all broadcast – jeden vrchol propojovací sítě posílá stejnou zprávu všem ostatním vrcholům,

2. All-to-all broadcast – každý vrchol propojovací sítě provádí one-to-all broadcast, tedy posílá stejnou zprávu všem ostatním vrcholům,

3. One-to-all scatter – jeden vrchol posílá rozdílné zprávy každému vrcholu ICNW, 4. All-to-all scatter – všechny vrcholy v propojovací síti provádějí současně one-to-

all scatter, tedy každý vrchol v síti posílá různou zprávu každému dalšímu vrcholu v propojovací síti.

Page 19: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

17ČVUT, FSv, katedra mapování a kartografie

obrázek 4.6: One-to-all broadcast

obrázek 4.7: All-to-all broadcast

obrázek 4.8: One-to-all scatter

obrázek 4.9: All-to-all scatter

Podle různých hledisek pak můžeme směrovací algoritmy, používané při

směrování v propojovacích sítích, dělit například na:

● On-line / off-line – podle toho, zda trasu pohybu dat určují až jednotlivé uzly paralelního počítače v okamžiku, kdy k nim data dorazí, nebo je určena předem.

● Deterministic / randomized – podle toho, zda je trasa vypočtena vždy přesně podle nějakého vzorce, nebo je ve výpočtu uplatněn náhodný prvek.

● Direct / indirect – podle toho, zda je vybírána nejkratší cesta, nebo je vybrána cesta delší, avšak s ohledem na menší riziko kolizí a deadlocks (stav, kdy běžící procesy (zprávy posílané po síti) čekají současně na uvolnění zdrojů, např. linky, druhým procesem, přičemž dochází ke vzniku nekonečného čekacího cyklu).

● Oblivious / adaptive – podle toho, zda směrování nebere ohled na ostatní zprávy pohybující se po síti, nebo je bere v úvahu a přizpůsobuje jim trasu pohybu dat.

4.2.3 Paměť paralelního počítače V průběhu výpočtu jsou paralelně zpracovávaná data uložena v paměti

paralelního počítače. Na rychlosti přístupu ke zpracovávaným datům do značné míry závisí rychlost provádění algoritmu. Je používáno několik principů realizace paměti paralelního počítače, podle nichž lze paralelní počítače dále rozlišovat. Různé konstrukce paměti pak ovlivňují nejen rychlost přístupu k datům, ale také složitost konstrukce a tím nepřímo i výslednou cenu daného paralelního počítače.

Page 20: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

18 ČVUT, FSv, katedra mapování a kartografie

4.2.3.1 SMPC Je to v první řadě skupina paralelních počítačů se sdílenou pamětí (SMPC -

Shared Memory Parallel Computer). Sdílená paměť (shared memory - SM) je souvislý paměťový prostor přístupný všem procesorům paralelního počítače. Paměťový adresní prostor je tedy sdílený pro všechny uzly paralelního počítače. Přístup ke sdílené paměti je realizován například přes rychlou propojovací síť (ICNW - Interconnection Network), jejíž konstrukce a tvar (topologie) je pak klíčovým atributem rychlosti komunikace mezi procesory a sdílenou pamětí, a tedy i rychlosti paralelního počítače – nejčastěji jsou používány sběrnice a mřížky.

Do této kategorie patří paralelní počítače s architekturou označovanou jako UMA (Uniform Memory Access) – je to architektura s centrálně umístěnou sdílenou pamětí, přístup k ní je ze všech uzlů paralelního počítače totožný.

Při použití cache pamětí vyvstávají problémy s koherencí konkurenčně čtených a zapisovaných dat. Pokud například jeden z procesorů zapíše do sdílené paměti data, která jsou právě v cache paměti používané druhým procesorem, narážíme na problém, která data tedy druhý procesor čte – data ve sdílené paměti, která tam byla právě zapsána, nebo data ve své cache paměti, která mu byla právě připravena?

Tento problém je řešen v UMA architekturách nečastěji pomocí snooping přístupu, tzn., že (každá cache paměť má informace o tom, zda blok paměti, který právě obsahuje není náhodou používán i jiným procesorem.

Přístup ke sdílené paměti je většinou realizován přes sběrnici (např. snoopy bus – zajišťující koherenci), mřížku (crossbar), nebo jinou rychlou ICNW. Tato architektura vyžaduje pouze minimum procesorového času na komunikaci, ale její hardware je složitější než u DMPC. Tvorba software pro tuto architekturu je však jednodušší.

Procesor 2 Procesor 2Procesor 2

Paměť 1

Propojovací síť (ICNW) meziprocesory a pamětí

Paměť 3Paměť 2

obrázek 4.10: Přístup ke sdílené paměti (SM) v SMPC

4.2.3.2 DMPC Paralelní počítače bez sdílené paměti jsou označovány jako počítače s

distribuovanou pamětí (distributed memory - DM). V počítači s distribuovanou pamětí (Distributed Memory Parallel Computer - DMPC) každý procesor disponuje vlastní oblastí paměti (spojení procesoru a této paměti je pak označováno jako processing element (dále v textu také jen jako PE)). Jednotlivé processing elementy pak mezi sebou komunikují po propojovací síti. Spojení processing elementu s komunikačním hardware bývá také označováno jako processing node (výpočetní uzel – dále jen PN).

Page 21: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

19ČVUT, FSv, katedra mapování a kartografie

Processing element, který postrádá potřebná data ve své lokální paměti si je pak může vyžádat od jiného processing elementu a mohou mu být doručena po propojovací síti.

Tato architektura používá pro komunikaci většinou message-passing model. Hardware je jednodušší než u SMPC, zato množství procesorového času použitého pro komunikaci je vyšší, tvorba software je mnohem složitější a vyžaduje speciální software (MPI, PVM).

Propojovací síť (ICNW) mezijednotlivými processing elementy (PE)

Procesor 1

Paměť 1PE1

Procesor 2

Paměť 2PE2

Procesor 3

Paměť 3PE3

Procesor 4

Paměť 4PE4

Procesor 5

Paměť 5PE5

Procesor 6

Paměť 6PE6

obrázek 4.11: Přístup k distribuované paměti (DM) v DMPC

4.2.3.3 VSM Virtuálně sdílená paměť (Virtual Shared Memory – VSM, označovaná někdy

také jako Distributed Shared Memory – DSM) by se dala přirovnat k paměti sdílené. Tato paměť (ačkoliv jsou její části fyzicky uloženy na různých místech systému) představuje souvislý paměťový prostor přístupný všem procesorům paralelního počítače. Tento přístup je realizován prostřednictvím správy paměti (memory management - MM). Virtuálně sdílená paměť je ve své podstatě paměť distribuovaná, která s využitím MM simuluje paměť sdílenou za účelem usnadnění přístupu k datům, která jsou v této paměti uložena.

Do této kategorie patří paralelní počítače s architekturou označovanou jako NUMA (Non-Uniform Memory Access) – části sdílené paměti v nich nejsou fyzicky uloženy na jednom místě, i když paměťový prostor je stále sdílen jako u SMPC UMA. Vzhledem k tomu, že části paměti jsou uloženy na různých místech, je i čas přístupu k různým částem paměti různý.

S problémem koherence uložených dat se vypořádává ccNUMA (cache coherent Non-Uniform Memory Access). V této architektuře je pomocí hardwarově implementovaných pravidel zajištěna koherence dat při konkurenčním čtení a zápisu do sdílené paměti.

Page 22: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

20 ČVUT, FSv, katedra mapování a kartografie

Správa paměti (memory management -MM) vytvářející VSM

Procesor 1

Paměť 1PE1

Procesor 2

Paměť 2PE2

Procesor 3

Paměť 3PE3

Procesor 4

Paměť 4PE4

Procesor 5

Paměť 5PE5

Procesor 6

Paměť 6PE6

Virtuálnísdílená

paměť –jeví se

navenekjako

sdílenápaměť

obrázek 4.12: Přístup k virtuálně sdílené paměti (VSM)

4.2.3.4 Přístup do paměti u SMPC Přístup několika procesorů současně do stejných oblastí paměti SMPC s sebou

však přináší jisté technické a logické problémy při pokusu o čtení či zápis do stejné buňky paměti několika procesory současně. Podle toho, jak je tato situace řešena, můžeme rozlišovat mezi čtyřmi základními modely, které nedovolují či naopak nějakým způsobem realizují současné čtení či zápis několika procesorů na stejnou adresu paměti současně. Toto modely bývají označovány jako Exclusive či Concurrent Read nebo Write. Jsou to tedy čtyři modely označené Exclusive Read Exclusive Write - EREW, Concurrent Read Exclusive Write - CREW, Exclusive Read Concurrent Write - ERCW a Concurrent Read Concurrent Write - CRCW podle modelů chování, které vykazují při současném čtení nebo zápisu více procesorů na stejnou adresu paměti.

V případě současného čtení nenastávají žádné logické problémy, nepočítáme-li problémy technického (konstrukčního) rázu (o koherenci čtených dat se zmíním později). Procesorům, které chtějí číst data z dané buňky paměti jsou tato data zpřístupněna. Při pokusu o současný zápis dat více procesory do jedné buňky paměti nastává problém a situace je řešena s využitím různých principů:

● Jeden z principů spočívá ve stanovení priority procesorů podle předem určeného klíče. Ze skupiny procesorů je pak oprávněn zapsat ten, který má nejvyšší prioritu – jedná se o takzvaný priority model.

● Jinou alternativou může být rozhodnutí povolit zápis pouze v tom případě, že všechny procesory, které se pokouší o zápis do paměti, se pokouší zapsat tatáž data – čili takzvaný consensus model.

● Používaným řešením je i princip, kdy je do paměti zapsána suma všech dat, která mají být zapsána (to může být výhodné u některých paralelních algoritmů) – tento princip bývá označován jako sum model.

Jak již bylo zmíněno výše, problémem při konkurenčním přístupu do pamětí zůstává koherence konkurenčně čtených a zapisovaných dat, a to zvláště v případě, že jsou použity cache paměti. Tento problém je řešen pomocí různých metod – directory

Page 23: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

21ČVUT, FSv, katedra mapování a kartografie

approach (informace o tom, která data jsou používána více procesory jsou uloženy na jednom místě v takzvané directory), snooping approach (cache paměti monitorují použitou ICNW – nejčastěji sběrnici – a hledají informace o tom, že část paměti, kterou cache obsahuje, je používána i jinou PN).

4.2.3.5 Přístup do paměti u DMPC Na rozdíl od počítačů se sdílenou pamětí, kde je paměť společná pro všechny PE

a tudíž vyvstávají problémy s konkurenčním přístupem, má u počítače s distribuovanou pamětí každý PE vlastní část paměti a starost o vyřešení konfliktů při konkurenčním přístupu k datům tak většinou zůstává na běžícím paralelním programu, potažmo na programátorovi.

Konstrukce DMPC je vzhledem k odděleným lokálním pamětem jednotlivých DMPC většinou jednodušší než tomu je u SMPC, přístup k datům uloženým v paměti je však obtížnější a teoreticky i pomalejší. Pokud jsou data, která daný PE potřebuje k výpočtu, uložena v lokální paměti jiného PE, je jejich získání relativně obtížnější než u SMPC a v závislosti na konstrukci DMPC může být přístupová doba k nim i řádově delší. To se projevuje zvláště u sítí pracovních stanic (NOW viz 4.2.5.5), kdy v závislosti na propojovací síti může přístupová doba k nelokálním datům drasticky stoupat. K tomu je třeba přihlédnout při návrhu paralelních algoritmů pro tyto typy počítačů, aby byl vhodným postupem minimalizován tento handicap.

Koherence paměti je zde ponechána většinou na uživateli (nemluvíme teď o DSM ccNUMA) a to vzhledem k použití message-passing přístupu k paralelnímu programování této architektury.

4.2.4 Propojovací sítě Propojovací sítě (ICNW) představují v paralelních počítačích prostředek pro

komunikaci mezi jednotlivými processing elements, případně prostředek pro přístup do paměti.

Jak jsem již dříve zmínil, konstrukce a topologie propojovací sítě mezi procesory a pamětí (u počítačů se sdílenou pamětí), případně mezi jednotlivými processing elementy (u počítačů s distribuovanou pamětí), je jedním z klíčových parametrů výkonu, efektivnosti a spolehlivosti paralelního počítače.

V propojovací síti představují jednotlivé vrcholy grafu procesory paralelního počítače a hrany grafu zastupují komunikační kanály, kterými je vedena komunikace mezi jednotlivými processing elementy nebo mezi procesory a pamětí. Na tento graf jsou pak kladeny požadavky, jejichž alespoň částečné naplnění má za cíl zrychlení komunikace, snadnější směrování toku dat v síti, jednodušší rozšiřitelnost paralelního počítače, větší odolnost komunikace po propojovací síti proti chybám a výpadkům či jednodušší konstrukci propojovací sítě.

Bez ohledu na jejich rozdílné technologické parametry a oblast použití můžeme propojovací sítě rozdělit na:

● sběrnice mezi procesory a pamětí – používané převážně u SMCP (rychlá a snadná komunikace),

● propojovací sítě masivně paralelních počítačů – používané u DMPC (pomalejší než sběrnice mimo jiné vzhledem ke složitější struktuře),

Page 24: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

22 ČVUT, FSv, katedra mapování a kartografie

● LAN (dnes ponejvíce Fast Ethernet (100Mbps)/optická vlákna (1Gbps)) – používané pro distribuované systémy – NOW a clustery,

● WAN – například pro distribuované paralelní systémy na internetu – NOW.

4.2.4.1 Použité pojmy teorie grafů Při hodnocení propojovací sítě jsou posuzovány jednotlivé parametry jejího grafu

a podle nich se pak stanoví vhodnost či nevhodnost dané topologie pro určitou úlohu či algoritmus. Mezi základní parametry grafu patří podle [18] například:

● Průměr grafu – maximální vzdálenost mezi dvěma vrcholy grafu.

● Stupeň grafu – maximální počet hran vycházejících z vrcholu grafu – pokud mají všechny vrcholy grafu stejný stupeň, pak má graf pevný stupeň vrcholu.

● Půlící šířka grafu – minimální počet hran které je třeba odstranit, abychom rozdělili graf na dvě stejné množiny vrcholů (v případě sudého počtu vrcholů).

Propojovací sítě se podle své topologie dělí na:

● Statické – spojovací cesty v nich zůstávají neměnné a jejich topologie je určena předem v okamžiku jejich konstrukce, pro každý typ systému v závislosti na charakteristice převažující komunikace je pak potřeba použít jinou statickou síť.

● Dynamické – spojovací cesty v nich dynamicky vznikají a zanikají. Mezi ně patří například křížové přepínače či sběrnicové systémy.

4.2.4.2 Požadavky na propojovací síť V této kapitole jsou uvedeny některé požadavky kladené na propojovací sítě a

některé z topologií, které jsou vhodné pro konstrukci statických propojovacích sítí.

Malý průměr – tento požadavek vyplývá ze skutečnosti, že pokud bude vzdálenost mezi nejvzdálenějšími výpočetními uzly malá, potom bude komunikace mezi PN pravděpodobně probíhat rychleji.

Malý a pevný stupeň vrcholu – tento požadavek pokládá za ideální malý počet komunikačních cest z jednoho processing node. To zaručuje jednodušší konstrukci, vyšší spolehlivost a nezřídka také nižší cenu celého systému. Pevný stupeň vrcholu pak zaručuje nezávislost stupně vrcholu na počtu PN a tím pádem je možné daný návrh PN použít pro různé velikosti paralelních počítačů.

Zvětšitelnost (škálovatelnost - scalability) nebo nastavitelnost (extendibility). Jestliže bude propojovací síť zvětšitelná, bude možné významné zvětšování počtu processing nodes bez významnějších změn v návrhu PN. Nastavitelnost pak umožňuje zvětšovat síť po předem daných přírůstcích.

Jednotnost a symetrie – V jednotné a symetrické síti se lze jednodušeji orientovat a tyto vlastnosti (spolu s rekurzivností) jsou výhodné při navrhování paralelních algoritmů.

Jednoduché směrování a efektivní vysílání (broadcasting) – propojovací síť musí být schopna zabezpečit efektivní přenos informací mezi processing nodes i v případě, že současně probíhá několik takovýchto přenosů. Síť musí také zabezpečovat efektivní směrování (pomocí komunikačního hardware), aby i v případě současné komunikace

Page 25: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

23ČVUT, FSv, katedra mapování a kartografie

mezi několika processing elements nedocházelo ke konfliktům a zdržením při přenosu dat.

Velká půlící šířka (bisection width) – zaručuje velkou šířku pásma (bandwidth) pro komunikaci mezi spolupracujícími procesy a zabraňuje tím značnému zpomalení v okamžiku intensivní komunikace mezi procesy paralelně spolupracujícími na řešení úlohy.

Nadbytečnost cest a odolnost vůči chybám – nadbytečnost cest zajišťuje možnost komunikace mezi jednotlivými processing nodes i v okamžiku, že některé cesty mezi těmito vrcholy jsou zahlceny jinou komunikací. Odolnost vůči chybám znamená, že v případě vyřazení části sítě z provozu nebo její nedostupnosti, bude zbytek sítě schopen provozu i na úkor snížení výkonu.

Vnořitelnost do jiných grafů a vnořovatelnost jiných grafů – jestliže daná topologie propojovací sítě umožňuje efektivní simulaci jiných grafů, pak paralelní počítač založený na této topologii může být použit k efektivnímu řešení paralelních problémů, jejichž struktura vyžaduje odlišná spojení mezi uzly (processing nodes).

Jednoduchá architektura VLSI (Very-Large-Scale Integration) – s využitím nových technologií VLSI je možno na jediný čip umístit několik uzlů (processing nodes) společně s jejich propojovací sítí. Jestliže je možno umístit na čipu i několik stovek či tisíc PN je jednoduchá architektura propojovací sítě rozhodujícím faktorem pro dosažení spolehlivosti a efektivity.

4.2.4.3 Typy propojovacích sítí

Propojovací sítě hrají jednu z klíčových rolí při konstrukci paralelního počítače, jelikož na jejich vlastnostech závisí budoucí výkon paralelního systému jako takového. Rychlost přístupu do sdílené paměti (u SMPC), případně rychlost komunikace mezi jednotlivými PE (u DMPC), může totiž značně ovlivnit rychlost běhu programů na paralelním počítači.

U SMPC se většinou kvůli rychlosti a nízkým konstrukčním nárokům používají sběrnice nebo mřížky, u DMPC však můžeme narazit i na hyperkubické sítě nebo tory. Některé topologie jsou zajímavé jen z čistě teoretického hlediska a nebudou pravděpodobně nikdy použity, některé na své využití teprve čekají (jako například de Bruinovy sítě – blíže viz [2]). Použití té či oné propojovací sítě klade určité nároky na konstrukci jednotlivých částí paralelního počítače (například na konstrukci processing elementů) a může v konečném důsledku určitým způsobem stanovit hranice jeho výkonu, konfiguraci nebo použití.

Hyperkrychle Označovaná někdy také jako hypercubic network nebo cube connected network.

N rozměrná hyperkrychle má 2n vrcholů a n.2n-1 hran. Hyperkrychle má rekurzivně definovanou strukturu a je to hranově symetrický graf. Tento graf splňuje téměř všechny požadavky kladené na propojovací síť kromě požadavku na její jednoduchou rozšiřitelnost o určený počet vrcholů.

Díky rekurzivním vlastnostem hyperkrychle lze definovat také pojem podkrychle (subcube), kterou tvoří vybrané vrcholy hyperkrychle. Tento pojem pak nachází uplatnění v paralelních počítačích, kde je určitému uživateli přidělena pouze jedna část (subcube) paralelního počítače potřebná pro jeho výpočty.

Page 26: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

24 ČVUT, FSv, katedra mapování a kartografie

obrázek 4.13: Čtyřrozměrná hyperkrychle

S postupem vývoje technologie paralelních počítačů byla v průběhu osmdesátých let tato topologie postupně vytlačena upravenými stromovými grafy a prstenci.

Hyperkubické sítě Tyto grafy se snaží odstranit či zmírnit "nectnost" hyperkrychle, kterou je absence

pevného stupně vrcholů. Tato absence zapříčiňuje nutnost vývoje nového hardware pro vrchol sítě (processing element) při každé změně velikosti paralelního počítače. Tyto sítě mají pevný stupeň vrcholu i za cenu jisté ztráty rozšiřitelnosti.

Jednou z hyperkubických sítí je Cube-connected cycles. Tento graf je vytvořen nahrazením každého vrcholu n-rozměrné hyperkrychle kružnicí o n vrcholech tak, že každý vrchol přísluší právě jedné hraně v jednom z rozměrů. Takto vznikne vrcholově symetrický graf se stupněm uzlu 3. Za pevný stupeň vrcholu zaplatíme však ztrátou rekurzivity, kterou poskytuje hyperkrychle.

obrázek 4.14: Cube-connected cycles dimenze 3

Hyperkubickou sítí je také Motýlek (butterfly network), který však oproti hyperkrychli postrádá také čistě rekurzivní strukturu.

Zavinutý (wrapped) motýlek se vzdáleně podobá hyperkrychli (pokud se každá z kružnic motýlka zhroutí do vrcholu a odstraníme nadbytečné kopie každé hrany,

Page 27: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

25ČVUT, FSv, katedra mapování a kartografie

dostaneme hyperkrychli). Zavinutý motýlek je pravidelný, vrcholově symetrický graf postrádající čistě rekurzivní strukturu.

obrázek 4.15: Zavinutý motýlek (wrapped butterfly) dimenze 3

obrázek 4.16: Obyčejný motýlek (ordinary butterfly) dimenze 3

Pokud nahradíme n-vrcholové kružnice n+1 vrcholovými cestami dostaneme čistě rekurzivního obyčejného (ordinary) motýlka, který je právě pro svou rekurzivní strukturu častěji používán než wrapped butterfly. Obyčejný motýlek za svou rekurzivnost ovšem platí ztrátou vrcholové symetrie.

N-rozměrné mřížky Výhodou N-rozměrných mřížek nebo torů je pevný stupeň uzlu a rozšiřitelnost.

Topologii mřížek lze s úspěchem využít pro úlohy počítačové grafiky a jiné úlohy, kde výměna dat probíhá pouze lokálně. Přidáním hran k mřížce pak vznikne torus, který je vrcholově symetrický a jehož půlící šířka je dvojnásobná, nežli tomu je u mřížky.

Page 28: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

26 ČVUT, FSv, katedra mapování a kartografie

obrázek 4.17: Mřížka dimenze 3

obrázek 4.18: Torus dimenze 3

de Bruinovy sítě Podle [2] se perspektivními zdají být sítě, jejichž konstrukce je založena na

bitovém posunu, jakými jsou například de Bruinovy sítě. Nejenže jsou mnohem složitější než hyperkrychle, ale také mnohem hustší, i když nejsou vrcholově symetrické.

000

100

001 011

111101

010

110

obrázek 4.19: de Bruinův graf

Page 29: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

27ČVUT, FSv, katedra mapování a kartografie

Stromové grafy Málo používané pro konstrukci propojovacích sítí jsou stromové grafy. Je to dáno

jejich velmi malou půlící šířkou, která zapříčiňuje absenci nadbytečnosti cest.

a) c) b)

obrázek 4.20: Kompletní binární: a) strom, b) X-strom, c) hyperstrom

Tuto nevýhodu lze částečně odstranit použitím X-stromů nebo hyperstromů, které k obyčejnému binárnímu stromu přidávají další hrany použitelné jako případné alternativní cesty při směrování dat po propojovací síti.

4.2.5 Taxonomie paralelních počítačů

4.2.5.1 Současnost a trendy V následujících kapitolách je popsáno třídění paralelních počítačů do několika

skupin podle základní filosofie jejich konstrukce.

V současnosti je možné pozorovat odliv firem z odvětví vývoje paralelních počítačů (a hlavně masivně paralelních superpočítačů), mnoho firem zaniká nebo je pohlceno giganty počítačového trhu. Je to možno připisovat relativně úzkému prostoru pro odbyt těchto technologií, neboť jen málokdo disponuje dostatečnými finančními prostředky a současně potřebuje řešit náročný výpočetní problém. Druhým možným důvodem pro částečný útlum v této oblasti je rostoucí popularita paralelních clusterů (viz 4.2.5.4) a distribuovaných systémů (viz 4.2.5.5), která se ještě stupňuje s vývojem stále výkonnějších technologií, dostupných za relativně nízké ceny. S blížícím se nástupem technologií SMP on a chip můžeme také očekávat ještě větší odliv zájemců o paralelní výpočty k těmto, v porovnání s MPP, levnějším technologiím.

4.2.5.2 Symmetric Multiprocessors (SMP) Symetrické multiprocesory (SMP) jsou paralelní počítače vybavené více

procesory většinou se sdílenou pamětí (UMA) a s počtem procesorů pohybujícím se pod hranicí šedesáti čtyř. Můžeme se s nimi setkat jako s výkonnými pracovními stanicemi, nebo malými servery které těží z výhod sdílené paměti, umožňující relativně jednoduché využití paralelismu pro programátory (v porovnání s tvorbou paralelních aplikací pro počítače s distribuovanou pamětí).

Přístup ke sdílené paměti je realizován většinou přes sběrnici, v případě většího počtu procesorů pak přes propojovací mřížku (případně jiné hardwarové varianty podle technologie používané výrobcem).

Page 30: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

28 ČVUT, FSv, katedra mapování a kartografie

Podle příslušné dokumentace podporuje Linux SMP od verze jádra 2.0.x, a to až pro 16 procesorů Intel 486 a vyšších. Pro jiné procesory je podpora až v jádrech 2.2.x a vyšších. V uživatelských programech je potom možno SMP hardware využít pomocí knihoven pro paralelní programování (MPI/PVM), případně může programátor využít ve svých programech vlákna (threads).

Ve Windows NT je podpora SMP následující. WinNT workstation podporuje až 2 procesory, WinNT server 4 procesory, Advanced server 8 procesorů, se speciálním HAL pak 16 procesorů. Microsoft Datacenter server by měl podle dokumentace podporovat SMP se 16ti procesory a s použitím speciálního HAL pak až 64 procesorů.

4.2.5.3 Massively Parallel Processors (MPP) Masivně paralelní počítače (MPP) jsou většinou velké superpočítače v cenách

pohybujících se řádově v milionech dolarů. Většinou jsou vybaveny distribuovanou pamětí nebo některou z vývojově vyšších alternativ ke standardní SM (NUMA, ccNUMA), a to většinou z důvodu modulární koncepce samotného paralelního počítače a jeho velikosti.

Přístup k případné VSM nebo komunikace mezi jednotlivými PE je realizována po velice rychlé propojovací síti (řádově několik GB/s).

4.2.5.4 Clustery Clustery jsou paralelní počítače tvořené skupinou jedno- či víceprocesorových

počítačů. Jsou vybaveny distribuovanou pamětí, případně některou alternativou VSM umožňující jednodušší programování. V současné době jsou velice populární clustery složené z běžně dostupného hardware (standardních PC s nejvýkonnějšími procesory), z nichž mnohé dosahují výkonů srovnatelných s komerčně vyráběnými MPP avšak za cenu podstatně nižší.

Komunikace mezi jednotlivými PE a přístup ke vzdáleným částem VSM (NUMA) je realizován přes rychlou propojovací síť (Fast Ethernet, nebo Gigabit Ethernet).

Mezi dnes nejpopulárnější clustery patří ty založené na operačním systému Linux, kterými jsou jednoznačně Beowulf a MOSIX.

Beowulf Beowulf je cluster pracovních stanic, postavený z běžně dostupného hardware

(Commodity off the shelf - COTS) a pracující s volně dostupným operačním systémem (Linux, FreeBSD), přičemž jednotlivé PN jsou v clusteru propojeny rychlou sítí (Fast/Gigabit Ethernet). Není to distribuovaný paralelní počítač používající nevyužitý procesorový čas uživatelských pracovních stanic, ale používá dedikované pracovní stanice, které tvoří výpočetní uzly a přístup k němu je realizován přes jeden okrajový uzel.

Beowulf byl vyvinut v roce 1994 skupinou vědců pracujících v Center of Excellence in Space Data and Information Sciences (CESDIS) jako výpočetní prostředek pro náročné výpočty na projektech Earth and Space Sciences.

Cluster těží ze současné situace na trhu hardware, kdy jsou ve velmi příznivých cenových relacích dostupné hardwarové komponenty s použitelnou výpočetní silou.

Page 31: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

29ČVUT, FSv, katedra mapování a kartografie

Dalším z rozhodujících faktorů pro úspěšný vznik Beowulf clusterů byla existence stabilního open source operačního systému jakým je třeba Linux, a volně dostupných systémů pro paralelní výpočty (PVM, MPI).

První Beowulf cluster obsahoval 16 procesorů propojených 10Mbps Ethernetem, který byl kvůli zvýšení propustnosti znásoben. Dnes, kdy cena Fast Ethernetu umožňuje použití 100Mbps a je dostupný i Gigabit Ethernet, není problém postavit cluster z několika desítek počítačů propojený rychlou Ethernetovou sítí. Propustnost sítě a výkon jednotlivých výpočetních uzlů přitom závisí na použitých síťových komponentech, respektive na jejich ceně.

Beowulf není na rozdíl od většiny MPP paralelním počítačem založeným na speciálně vyvinutém hardware s propojovací sítí s danou topologií, který by od uživatele/programátora vyžadoval přizpůsobení jeho algoritmů danému hardware a topologii ICNW. Naopak zaručuje programátorovi, že program napsaný pro Beowulf cluster bude v nezměněné podobě fungovat na jeho budoucích verzích a samozřejmě i po rozšíření tohoto clusteru o další uzly či upgrade hardware.

Clustery jakým je Beowulf se právem řadí v taxonomii paralelních počítačů někam mezi MPP a sítě pracovních stanic (Networks Of Workstations - NOW). Na rozdíl od MPP se programátor nemusí starat o load balancing (rozvržení zátěže mezi paralelně pracující procesory tak, aby zátěž jednotlivých procesorů a hlavně výkon celého systému byl maximální) a umístění procesů, i když pravděpodobně nebude dosahovat tak dobrých výsledků v programech, které jsou závislé na rychlé komunikaci a maximálním využití daného hardware a topologie ICNW. Programy napsané pro sítě pracovních stanic nejsou naopak tolik závislé na rychlosti propojovací sítě a vyváženosti zátěže a proto na clusteru poběží minimálně stejně dobře jako na NOW.

Na rozdíl od NOW je cluster v otázce load balancingu nezávislý na vnějších faktorech, protože výpočetní uzly jsou pouze součástí clusteru a není možno do nich manuálně zasahovat. Také zatížení sítě clusteru je vzhledem k její izolovanosti od okolních sítí pouze otázkou zatížení generovaného vlastním clusterem. To umožňuje odhadovat zatížení sítě a jednotlivých uzlů a eliminovat náhodné a nepředvídatelné výkyvy způsobující problémy s load balancingem u NOW. Parametry operačního systému výpočetních uzlů clusteru mohou být vyladěny pro maximální výkon bez ohledu na nutnost interakce s uživatelem, jak je tomu u NOW.

Clustery jakým je Beowulf tvoří levnou alternativu ke komerčním MPP, která může za velmi přijatelnou cenu poskytnout výkon potřebný pro náročné výpočetní aplikace.

MOSIX MOSIX je software, umožňující pomocí úpravy jádra Linuxu vytvořit ze skupiny

pracovních stanic paralelní počítač, který se chová jako SMP počítač. MOSIX pouze upravuje operační systém, uživatel tedy provozuje dál své neupravené aplikace, které celý cluster používají jako jeden SMP počítač.

Systém sám obhospodařuje load balancing, správu paměti a monitoring zatížení jednotlivých výpočetních uzlů a v případě potřeby sám provede migraci procesů tak, aby jejich chod nebyl ovlivněn nerovnoměrným zatížením jednotlivých částí clusteru.

Z uživatelského pohledu programy běží stále na jednom stroji, i když operační systém distribuuje běžící procesy po celém clusteru.

Page 32: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

30 ČVUT, FSv, katedra mapování a kartografie

Stejně jako Beowulf, může MOSIX využívat pracovní stanice různých rychlostí a s různou velikostí paměti a systém sám se stará o efektivní rozložení zátěže tak, aby výsledný výkon byl maximální.

4.2.5.5 Distribuované paralelní počítače Do této skupiny můžeme zařadit paralelní počítače tvořené výpočetními

prostředky propojenými propojovací sítí – můžeme je také označovat jako sítě pracovních stanic (Networks Of Workstations - NOW), i když v nich mohou být často zapojeny i SMP a MPP servery. Jako nejjednodušší příklad si lze představit síť pracovních stanic propojených Fast Ethernet sítí, schopných (s použitím příslušného software) paralelně spolupracovat na řešení určitého problému. Tyto počítače často pouze využívají nevyužitý procesorový čas uživatelských pracovních stanic a serverů.

Mezi tyto počítače spadají podle výše uvedené definice i clustery počítačů, ale pro větší přehlednost obě skupiny oddělím, například proto, že clustery si můžeme představovat jako počítače soustředěné v jedné lokaci a propojené velmi rychlou sítí, zatímco zde mluvíme o počítačích, které mohou být rozmístěny kdekoliv na světě a propojeny internetem (do čehož můžeme zahrnout i klasickou dial-up linku 56kbps).

Komunikace mezi jednotlivými částmi takového paralelního počítače tedy může probíhat jak přes velmi rychlou lokální síť LAN (např. Giga Ethernet), tak přes relativně pomalejší MAN nebo WAN.

Počítače v této skupině mají stejně jako clustery tu výhodu, že mohou být tvořeny běžně dostupným hardware (pracovní stanice, běžně dostupná PC, atd.) a navíc mohou v mnoha případech obsahovat počítače různých architektur.

Paralelní prostředí, kterým tyto počítače disponují, je tvořeno systémovým software (viz kapitola 5), na jehož principech poté závisí způsob a možnosti využití takového paralelního počítače.

Výhody heterogenního distribuovaného výpočetního systému ● Je možno využít stávající výpočetní prostředky, čímž se značně snižují

náklady na výpočetní sílu.

● Speciálním částem úlohy mohou být přisouzeny konkrétní procesory (architektury), které jsou pro jejich řešení optimální, nebo se v jejich lokálních pamětech nacházejí potřebná data.

● Podobně může být optimalizován i výkon aplikace přisouzením určitých úkolů architektuře, která je k jejich řešení nejvhodnější.

● Tvorba paralelních programů je prováděna v uživateli známém prostředí pracovní stanice.

● Prostředek pro paralelní výpočty může růst stejně rychle, jak se objevuje nový hardware, který je možno pro výpočty použít.

Nevýhody heterogenního distribuovaného výpočetního systému Heterogenní paralelní počítač může být složen ze zástupců mnoha počítačových

architektur od klasických PC, přes výkonné pracovní stanice a SMP, až po masivně paralelní superpočítače. Každá z těchto architektur má vlastní programovací nástroje, různé datové typy, případně jejich odlišnou implementaci. Počítače zapojené do paralelního systému mohou mít různé operační systémy, případně mohou podporovat

Page 33: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

31ČVUT, FSv, katedra mapování a kartografie

různé typy binárních formátů programových souborů. V případě, že je výpočetní systém heterogenní, musíme podle stupně jeho heterogenity brát zřetel na některé skutečnosti, jejichž zanedbáním může dojít ke ztrátě výkonu nebo funkčnosti celého paralelního systému. Některé z těchto problémů řeší prostředky použité pro vlastní fungování paralelního počítače (v případě této práce se jedná o systém PVM – viz kapitola 5.1), některé však musí zohlednit programátor při návrhu paralelních programů.

Problémy způsobené heterogenitou výpočetního systému mohou být následující:

● Již zmíněná nekompatibilita operačních systémů, překladačů (compilers), binárních formátů programových souborů atd.

● Nekompatibilita datových formátů na jednotlivých strojích paralelního počítače. Paralelní prostředí musí zajišťovat, aby data odeslaná z jednoho počítače byla správně interpretována i na počítači s odlišnou architekturou, na který jsou směrována.

● Jednotlivé počítače v paralelním systému mohou tvořit prostředí heterogenní z hlediska výkonu. Například při použití pracovní stanice spolupracující s masivně paralelním počítačem je třeba řádový rozdíl v jejich výkonu zohlednit při tvorbě použitého programu.

● I výpočetní prostředí, které je homogenní z hlediska architektur, může být heterogenní z hlediska různého zatížení jednotlivých částí paralelního počítače. Jelikož se většinou jedná o multiuživatelské operační systémy, mohou na některých strojích běžet současně i úlohy jiných uživatelů.

● V neposlední řadě je možným zdrojem problémů heterogenní (případně i nestejnoměrně zatížené) síťové prostředí reprezentující propojovací síť mezi použitými výpočetními prostředky. Tento fakt poté kriticky ovlivňuje výkon i funkčnost dané aplikace zvláště v situaci, kdy je paralelní algoritmus závislý na rychlém doručení zpráv, případně jejich doručení v určitém předem stanoveném čase.

4.34.34.34.3 Paralelní algoritmyParalelní algoritmyParalelní algoritmyParalelní algoritmy Podle [1] je většina algoritmů popisujících zpracování dat ve své podstatě

paralelní. A to jak složitější úkony, kterými jsou vektorové operace, maticové operace či operace s grafy, tak i jednoduché operace, jako je např. sčítání několikaciferných čísel, které dnešní počítače provádějí již téměř výhradně paralelně. Člověk většinou takové operace provádí postupně, protože se na větší počet jednociferných součtů prováděných současně nedokáže soustředit.

Složitější operace, jako je násobení, odmocňování či goniometrické funkce se v počítači provádějí sekvenčně jako posloupnosti elementárních operací (převážně součtů). Jednoprocesorové počítače tedy zpracovávají libovolně složitý výpočet sekvenčně s ohledem na to, že jsou vybaveny jen jedním procesorem a jedním řadičem. Tedy i vyšší programovací jazyky pro jednoprocesorové systémy nám umožňují jen sekvenční zápis algoritmů.

V systémech, kde je k dispozici více procesorů, máme možnost na každém z nich provádět různé operace. Na konstrukci paralelního systému, povaze úlohy a způsobu programování pak závisí využití tohoto potenciálu.

Page 34: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

32 ČVUT, FSv, katedra mapování a kartografie

Obtížnost hledání vhodného paralelního řešení problému, kdy na výpočtu spolupracují jednotlivé části paralelního počítače lze příhodně demonstrovat na následující pochybné úvaze:

Jestliže jednomu muži trvá vykopat díru pro kůl v plotě jednu minutu, pak šedesát mužů zvládne tutéž práci za jednu sekundu.

Protože většina algoritmů byla formulována sekvenčně, narážíme na úlohu

paralelizace stávajících sekvenčních algoritmů, kterou můžeme definovat jako přidělování jednotlivých operací všem procesorům tak, aby na paralelním systému s danými vlastnostmi proběhl algoritmus co nejefektivněji. Za efektivní považujeme rychlý běh programu, případně jeho spolehlivost či přesnost. Nejrychlejšího výsledku pak dosáhneme maximálním vytížením všech procesorů paralelního systému – to platí však jen v homogenním systému.

Paralelizaci sériového algoritmu je možno provést dvěma způsoby – automaticky a ručně (více viz kapitola 4.6). Automatická paralelizace je vhodná proto, že velké množství algoritmů bylo napsáno a vyzkoušeno v sériovém tvaru a automatickou paralelizací poměrně bezpečně získáme jejich paralelní tvar. Musíme ovšem počítat s tím, že zdaleka ne vždy takto dosáhneme optimálních výsledků. Často je tedy vhodné, aby zapsal algoritmus v jeho paralelním tvaru sám programátor, což nazýváme ruční paralelizací.

Při automatické paralelizaci se používá speciální překladač, který na základě sekvenčního zdrojového kódu a údajů o paralelním počítači vytvoří potřebný spustitelný kód. Počítač pak paralelně zpracovává jen ty úseky programu určené překladačem. Překladač musí brát v úvahu i případnou závislost jednotlivých paralelně pracujících větví programu.

Pro ruční paralelizaci jsou programátorovi k dispozici jazyky umožňující zápis paralelních programů, případně další nástroje. Tyto umožňují specifikovat části programu, které mají být prováděny paralelně a místa, kde je potřeba výpočet synchronizovat.

Bernsteinova podmínka stanoví, že procesy P a Q mohou být prováděny paralelně (nebo sekvenčně v libovolném pořadí) pouze pokud:

(i) se nepřekrývají vstupy P a výstupy Q a naopak

a zároveň

(ii) výstupy P a výstupy Q se nepřekrývají se vstupy jiné úlohy.

Pakliže proces P vypočte hodnotu, která je vstupem procesu Q, pak proces P musí být proveden před procesem Q. Jestliže oba procesy zapisují do stejné proměnné, pak její hodnota je závislá na pořadí jejich provádění. V případě, že jiný proces závisí na hodnotě této proměnné, pak nemohou být procesy P a Q prováděny paralelně.

4.44.44.44.4 Růst výkonu paralelního systémuRůst výkonu paralelního systémuRůst výkonu paralelního systémuRůst výkonu paralelního systému Jednou z klíčových otázek při konstrukci paralelního systému je otázka růstu

výkonnosti systému v závislosti na počtu použitých procesorů. V ideálním případě by výkon měl růst lineárně v závislosti na počtu použitých procesorů, tedy n procesorů by mělo čas zpracování úlohy zkrátit n-krát ve srovnání s řešením za použití jednoho procesoru. Lineárního nárůstu rychlosti je však velmi obtížné dosáhnout. V cestě tomu

Page 35: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

33ČVUT, FSv, katedra mapování a kartografie

stojí ztráty způsobené komunikací paralelně pracujících procesorů, jejich nedokonalé vytížení (jeden procesor musí v určitých fázích výpočtu čekat na jiný) a jednou z nezanedbatelných překážek je neznalost efektivních paralelních algoritmů.

Růst výkonu paralelního systému

1

2

3

4

5

6

7

8

1 2 3 4 5 6

Počet procesorů

Výko

n

superlineární

lineární

sublineární

graf 4.1: Růst výkonu paralelního systému

V podstatě mohou při zvyšování počtu procesorů v paralelním počítači nastat tři možnosti:

1) Důsledkem výše popsaných ztrát bude zrychlení získané paralelizací v závislosti na počtu procesorů růst pomaleji než lineárně. Tato skutečnost vede k tomu, že od určité meze je další zvyšování počtu procesorů nerentabilní. Sublineární růst výkonu je většinou způsoben nedokonalou paralelizací, případně neznalostí vhodných paralelních algoritmů.

2) Velmi specifickým případem je lineární závislost růstu zrychlení na počtu procesorů. Pro určité architektury paralelních počítačů a určité algoritmy lze tohoto ideálu dosáhnout – tato situace však není příliš častá. Lineární růst výkonu většinou bývá pouze naivním laickým předpokladem, případně nekorektním marketingovým trikem výrobců paralelních počítačů.

3) Superlineární růst výkonu je sice velice nepravděpodobný, ale může nastat ve velmi speciálních případech. Takovýto růst výkonu může být například důsledkem vhodně navrženého paralelního algoritmu, který oproti své sekvenční verzi nemusí provádět náročné přesuny dat a tím může ušetřit čas.

Pro ilustraci lze uvést srovnání doby řešení typických úloh na jednoprocesorovém systému s von Neumannovou architekturou a na paralelním počítači s dostatečným počtem procesorů N a architekturou přizpůsobenou dané úloze. Zápisem O(N) rozumíme, že doba výpočtu je řádu N (lineárně úměrná nejvýše první mocnině N). Odvození hodnot uvedených v následující tabulce je velmi složité a proto byly hodnoty převzaty z [1].

Page 36: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

34 ČVUT, FSv, katedra mapování a kartografie

Úloha Sériové řešení Paralelní řešení

Sečtení N prvků O(N) O(log N)

Setřídění dvou souborů po N prvcích O(N) O(log N)

Třídění souboru N prvků O(N log N) O(log2 N)

Operace nad množinami s N prvky O(N log N) O(log2 N)

Rychlá Fourierova transformace O(N log N) O(log N)

tabulka 4.3: Náročnost řešení typických úloh na paralelním a sekvenčním počítači

Hodnoty pro paralelní zpracování jsou ve všech případech vyšší než pro sekvenční případ, ale nikdy nedosahují lineárního nárůstu výkonu.

4.54.54.54.5 Amdahlův zákonAmdahlův zákonAmdahlův zákonAmdahlův zákon Většinu úloh nelze paralelizovat beze zbytku, ale v procesu řešení stále zůstávají

části, které je třeba řešit sekvenčně. Pro posouzení účinků paralelizace úlohy odvodil Gene Amdahl (bývalý konstruktér firmy IBM) vztah označovaný také jako Amdahlův zákon (bližší informace viz [2]).

Předpokladem pro naše další úvahy je skutečnost, že posuzovaný algoritmus má mimo částí, které je nutno řešit sekvenčně i části, které je možno řešit paralelně. Hledáme potom poměr času, po který by výpočet trval při použití jednoho procesoru, k času potřebnému při použití alespoň částečné paralelizace. Tento podíl dále označíme S. Symboly Ts a Tp označíme poměr délky sekvenční a paralelní části výpočtu k celkové délce výpočtu T (platí tedy Ts+Tp=1). Doba výpočtu sekvenční části je tedy T.Ts, doba výpočtu paralelní části na jednom procesoru T.Tp a s použitím P procesorů pak T.Tp/P.

Pro námi hledaný součinitel dostáváme:

(4.5.1)

PTTPTTTTTS

ppps /)1(1

/.. +−=

+=

Amdahlův zákon

S ohledem na tento vztah lze významného zrychlení dosáhnout teprve pro hodnoty Tp blížící se 1. Pro hodnoty menší než 0,9 je použití většího počtu procesorů neefektivní. V praxi toto platí tím spíše, že většinou nebývá úloha rozdělena na P dílů a všechny procesory nejsou stoprocentně vytíženy.

Z následující jednoduché aplikace Amdahlova zákona nám vyplyne pro někoho možná trochu depresivní závěr…

(4.5.2)

100/)1(1

/)1(1

180

)80(

)1(

pppp TTPTTTT

+−=

+−==

Page 37: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

35ČVUT, FSv, katedra mapování a kartografie

7499,0792790 ==pT

Výkon rovnající se osmdesátinásobku výkonu sekvenčně pracujícího procesoru získáme použitím sta paralelně pracujících procesorů a 99,75%-ní paralelizace. Pokud je tedy použitý algoritmus paralelizován z 99,75% (sekvenční zůstává například část řízení běhu algoritmu), tak teprve s použitím 100 procesorů bude běh programu trvat 1/80 doby běhu sekvenční verze programu.

4.64.64.64.6 ParalelizaceParalelizaceParalelizaceParalelizace Tvorba paralelního algoritmu, nebo úprava stávajícího sekvenčního algoritmu do

jeho paralelní podoby (pokud je to možné a účelné) je vlastně úlohou, ve které řešíme problém, jak přidělit prováděné operace jednotlivým výpočetním uzlům tak, aby algoritmus proběhl co nejefektivněji (tj. nejrychleji, nejspolehlivěji, nejpřesněji, s optimální spotřebou paměti, … hledisko efektivity se může měnit s ohledem na požadavky, které na paralelní zpracování úlohy klademe).

Pokud může být daný úkol rozložen na několik částí, které mohou být vykonávány současně (nebo alespoň částečně – viz pipelined multiprocessor), můžeme ji potom rozložit na několik úloh, které reprezentují jednotlivé funkce programu (vstup, analýza, příprava dat, výpočet, posouzení výsledků, rozhodování, výstup). Tento přístup se nazývá funkční paralelismus (functional parallelism).

Naproti tomu může být paralelní aplikace založena na datovém paralelismu (data parallelism). V takovém případě každá část paralelní aplikace (úloha) provádí celý výpočet pouze na určené podmnožině vstupních dat – viz Single Instruction Multiple Data (SIMD) architektura.

4.6.1 Automatická paralelizace Automatická paralelizace je paralelizace již stávajícího sekvenčního algoritmu

pomocí speciálního paralelizujícího překladače (compileru). Paralelizující kompiler je zvláštním typem překladače, který se na základě dodaných informací o paralelním počítači, na kterém program poběží (architektura, počet PN, …) pokusí vytvořit paralelní program optimalizovaný pro daný systém.

Paralelizující překladač tedy analyzuje zapsaný program a vybere z něj části, které jsou vhodné pro paralelní zpracování. Vhodným kandidátem pro paralelizaci jsou například programové smyčky, které se ve vhodném případě dají rozvinout do paralelně probíhajících částí. Nutnou podmínkou pro takovýto přístup je ovšem splnění Bernsteinovy podmínky, tedy že vstupy a výstupy paralelně probíhajících procesů se nesmí překrývat a zároveň se výstupy paralelně probíhajících procesů nesmí překrývat se vstupy jiné úlohy. V případě, že části procesů na sobě závisejí, musí se paralelizující kompiler postarat o synchronizaci navazujících procesů.

Paralelizující kompiler může být nahrazen i paralelizujícím prekompilerem (viz například HPF prekompiler pro IBM SP2 – FORGE [41]), který provede podobnou analýzu zdrojového sekvenčního kódu a jeho úpravy, ale upravený kód potom překládá standardní kompiler s pomocí přidaných volání knihoven pro paralelní výpočty (v případě SP2 je to kompiler pro Fortran 77 a knihovna MPL).

Page 38: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

36 ČVUT, FSv, katedra mapování a kartografie

4.6.2 Ruční paralelizace Ruční paralelizace řeší problém, který může vzniknout při paralelizaci

automatické, kdy kompiler (vzhledem ke komplexnosti algoritmu a mnohdy i složitosti zdrojového kódu) není vždy schopen rozpoznat všechny části programu vhodné pro paralelizaci.

4.6.2.1 Paralelní programovací jazyky Metodou, která může v některých případech přinést lepší výsledky než

automatická paralelizace, je ruční paralelizace s využitím některého z jazyků umožňujících paralelní programování (obsahujících příkazy pro specifikaci částí programů zpracovávaných paralelně apod.). Tato metoda tedy umožňuje tvůrcům programu, aby předem specifikovali části programu, které se mají zpracovávat paralelně, kde je lepší se paralelnímu zpracování vyhnout, kde je nutno čekat na synchronizaci procesů apod.

Taková paralelizace programu může být oproti automatické paralelizaci mnohem efektivnější, výsledek však v tomto případě záleží ve velké míře na zkušenosti programátora provádějícího zápis paralelní verze programu a na jeho znalosti samotného algoritmu.

4.6.2.2 Knihovny pro paralelní programování Další možností v případě použití ruční paralelizace je použití některé z knihoven

pro paralelní výpočty (viz celá kapitola 5). Knihovny jsou tvořeny tak, aby usnadnily tvorbu paralelních programů tím, že hardwarovou komunikační vrstvu, správu paměti a další důležité funkce skryjí za své standardní rozhranní. Při tvorbě paralelních programů pak není nutné znát detailní informace o té či oné implementaci paralelního hardware.

Knihovny, které bývají často přenositelné na různé systémy, jsou výrobci paralelních počítačů často upravovány tak, aby využívaly všech možností jejich hardware, případně optimalizovány, aby na konkrétním hardware dosahovaly co nejlepšího výkonu. Tato skutečnost spolu s jednotným rozhranním knihoven zaručuje, že programy napsané pro jednu architekturu budou bez větších úprav optimálně fungovat i na jiné architektuře a budou vyžívat výhod její konstrukce.

4.6.3 Některé možné přístupy k paralelizaci V paralelních programech, kromě toho, že je jejich provedení přizpůsobováno

paralelní verzi konkrétního algoritmu, může být kostra programu tvořena podle jednoho z obecných vzorů. Některé z používaných vzorů (typů) zde zběžně nastíním.

S ohledem na rozložení výpočetních úloh paralelní aplikace lze vyčlenit skupinu úloh, u kterých je používáno organizace úloh označované jako „crowd computing“ (viz [12]). Jedná se většinou o úlohy, při nichž skupina totožných nebo téměř totožných procesů vykonává práci na odlišných částech vstupní sady dat, většinou s občasnou výměnou mezivýsledků.

V rámci tohoto přístupu můžeme dále odlišit přístup označovaný jako „master-slave“ někdy také jako „divide and conquer“. V tomto modelu je samostatný řídící proces, označovaný jako master, zodpovědný za startování a inicializaci

Page 39: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

37ČVUT, FSv, katedra mapování a kartografie

podřízených procesů, které provádějí vlastní výpočty. Master proces pak zodpovídá i za sběr výsledných dat, jejich prezentaci a často i za funkce související s měřením času výpočtu. Tento model je použitelný v případě, že chod paralelních procesů je nutno řídit a synchronizovat, případně je nutno data získaná zpracováním slave procesy ještě dodatečně kompletovat.

Druhým modelem, který můžeme vidět jako část „crowd computing“ přístupu je „node-only“ model. V aplikaci, která používá tento přístup je nastartováno několik totožných procesů, z nichž jeden přebírá kromě své části výpočtu i funkce řídící a synchronizační. Toto může být výhodné v okamžiku, kdy synchronizace procesů není výpočetně náročná a procesy samotné se starají o získání správných vstupních dat a o odeslání výstupních dat.

Dalším možným pojetím paralelizace je organizace úloh označovaná jako „tree computing“. V tomto modelu jsou úlohy většinou dynamicky spouštěny v průběhu výpočtu a tvoří stromovou strukturu, kde každý člen zná svého rodiče a v případě potřeby plodí další potomky.

Jiný přístup k organizaci výpočetních úloh můžeme označit jako hybridní „hybrid“. V něm se kříží oba předchozí přístupy a vytvářená struktura úlohy nemá tvar stromu.

4.74.74.74.7 Oblasti využití paralelních systémůOblasti využití paralelních systémůOblasti využití paralelních systémůOblasti využití paralelních systémů Paralelní výpočty je výhodné použít tam, kde je zapotřebí řešit velký počet

elementárních operací. Prakticky všechny výpočetně náročné úlohy lze s využitím paralelního přístupu zrychlit. Vhodnost paralelního řešení problému závisí na zrychlení získaném případnou paralelizací.

Efektivnost využití paralelních výpočtů byla ve Spojených státech posuzována v mnoha oblastech, ať už na popud vládních nebo průmyslových sfér. Projekty zpracovávané v těchto oblastech měly za úkol posoudit efektivnost použití paralelních výpočtů pro řešení konkrétních úloh. Mezi uvedené oblasti patří následující:

● vojenská technika – jako v mnoha případech byla armáda iniciátorem a sponzorem většiny superpočítačových projektů, zaměřených hlavně na návrh nových zbraní, strategické rozhodování a simulaci (SDI), šifrování a dešifrování, simulaci účinků jaderného výbuchu apod.

● modelování a simulace – modelování jako složitý problém v mnoha vědních oborech je ideálním cílem pro využití masivní výpočetní síly. K nejvýznamnějším oblastem patří modelování a předpověď počasí, astrofyzika, společenské a ekonomické systémy a kupříkladu i simulace chování číslicových systémů.

● automatizace inženýrských prací – zahrnuje rozsáhlé úlohy v aerodynamice a dynamice kapalin, návrhu a ověřování funkce integrovaných obvodů atd.

● umělá inteligence – úlohy z této oblasti zahrnují rozpoznávání a zpracování obrazu, počítačové vidění, porozumění řeči, znalostní inženýrství apod.

● další oblasti včetně zdravotnictví, přírodních věd či energetiky.

Oblastí, ve které se počítá s využitím paralelních počítačů, je oblast zatím neřešitelných problémů označovaných jako "velká výzva" (great challenge), do které patří simulace globálního klimatu, charakterizace lidských genů, výpočet atomové

Page 40: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

38 ČVUT, FSv, katedra mapování a kartografie

struktury materiálu s požadovanými vlastnostmi a další úlohy, jejichž řešení je s použitím současné výpočetní techniky nemožné.

Page 41: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

39ČVUT, FSv, katedra mapování a kartografie

5555 Systémy pro paralelní výpočtySystémy pro paralelní výpočtySystémy pro paralelní výpočtySystémy pro paralelní výpočty

5.15.15.15.1 Parallel Virtual MachineParallel Virtual MachineParallel Virtual MachineParallel Virtual Machine Parallel Virtual Machine (dále jen PVM) je software pro paralelní výpočty. Tento

software umožňuje vytvořit z heterogenní sítě pracovních stanic a masivně paralelních počítačů jeden vysoce výkonný paralelní stroj. Pomocí PVM mohou spolupracovat systémy tvořené pracovními stanicemi různých architektur, vektorové superpočítače, multiprocesorové systémy se sdílenou nebo distribuovanou pamětí. Tyto počítače mohou být fyzicky umístěny daleko od sebe a spojeny různými typy sítí.

PVM poskytuje na každém z počítačů svému uživateli totožné funkce, nezávisle na platformě nebo operačním systému, pod kterým uživatelské programy běží. Ačkoliv samotný sytém PVM je napsán v jazyce C, programy spolupracující s PVM mohou být napsány v jazyku C, C++ nebo Fortran (knihovny jsou součástí standardní distribuce) i jiných programovacích jazycích (např. Lisp). Volba podporovaných programovacích jazyků byla založena na výsledku pozorování, že převládající většina paralelních aplikací je psána v C a Fortranu, s rostoucím trendem experimentování s objektovými jazyky. Programy pak mohou používat funkce knihovny PVM, které zahrnují služby zasílání zpráv, synchronizace apod. Uživatel může určit počítač, na kterém daná úloha poběží a systém PVM se stará o konverze datových typů mezi nekompatibilními architekturami a o směrování (routing) zasílaných zpráv po propojovací síti. Komunikace je přitom realizována po nejrychlejším dostupném médiu. V případě clusteru pracovních stanic tedy komunikace probíhá po lokální síti (např. Ethernet), pokud je součástí virtuálního paralelního počítače multiprocesorový systém, probíhá komunikace po jeho hardwarové propojovací síti (např. High Performance Switch u počítače IBM SP2).

Programátor využívající PVM píše programy jako skupinu spolupracujících úloh, které volají služby PVM pomocí sady funkcí standardní PVM knihovny. Kterýkoliv proces používající PVM pak může startovat nebo ukončovat spolupracující procesy, přidávat nebo ubírat počítače v konfiguraci PVM a komunikovat se spolupracujícími procesy.

5.25.25.25.2 Paralelizace úloh využívajících PVMParalelizace úloh využívajících PVMParalelizace úloh využívajících PVMParalelizace úloh využívajících PVM Přístup k paralelizaci úloh s využitím PVM může být založen například na

následujících předpokladech.

Algoritmus může být rozložen na několik částí, které jsou pak vykonávány současně – zpracování úlohy lze potom rozložit na několik paralelně prováděných úloh, které reprezentují jednotlivé funkce programu. Tento přístup se nazývá funkční paralelismus.

Případně každá část paralelní aplikace provádí celý výpočet, avšak pouze na určené podmnožině vstupních dat (datový paralelismus).

PVM podporuje oba tyto přístupy k paralelnímu řešení úloh nebo jejich kombinace. Spolupracující procesy, které pracují paralelně si mohou podle potřeby vyměňovat data a synchronizovat se – v závislosti na konstrukci paralelního algoritmu.

Princip použití PVM lze zjednodušeně popsat takto: programátor vytvoří aplikaci sestávající se z několika sekvenčních programů, které jsou napsány v C, C++ či

Page 42: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

40 ČVUT, FSv, katedra mapování a kartografie

Fortranu, používají funkce PVM, a z nichž každý zastupuje jednu úlohu z dané aplikace. Každý program je potom přeložen (zkompilován) pro všechny použité architektury a spustitelný kód je umístěn na příslušné uzly paralelního stroje. Aplikace se spouští tak, že uživatel ručně (případně pomocí scheduleru apod.) nastartuje master, nebo nazvěme ji třeba inicializační, část programu na jednom z počítačů zapojených v konfiguraci PVM. Tento proces poté vytvoří (zplodí – spawn) spolupracující procesy (slave process), které potom mohou spolupracovat na řešení úlohy komunikujíc a vyměňujíc si data prostředky PVM.

Takto sice vypadá typický program, ale postup se může velmi lišit v závislosti na přístupu k paralelizaci a k povaze vlastní úlohy. Například program může mít pouze jeden typ procesu, který si v závislosti na své okamžité potřebě plodí potřebný počet rovnocenných partnerů, uživatel může startovat všechny procesy ručně na strojích, které mají vhodný hardware k jejich běhu, apod. Dalším příkladem může být varianta, kdy paralelní program představuje řadu filtrů a jeho běh napodobuje pipelined multiprocessor, první část programu pak může nastartovat další v řadě filtrů a ta po ukončení své práce plodí svého nástupce, předá mu výsledky své práce atd.

Při použití PVM je třeba brát zřetel na to, že výsledky mohou být ovlivněny nestejnoměrnými časy komunikace mezi jednotlivými částmi paralelního počítače, nerovnoměrným zatížením propojovací sítě i jednotlivých počítačů zapojených do PVM. Testování PVM také ukázalo, že výsledky ovlivňuje i velikost a četnost zasílaných zpráv mezi jednotlivými částmi virtuálního počítače a vlastní typ komunikace (broadcast, scatter atp.). Pokud je například potřebná komunikace mezi procesy sdružována do bloků, je účinnější, než komunikace realizovaná zasíláním velkého množství malých zpráv.

5.2.1 Krátce z historie PVM začal vznikat již v létě roku 1989 v Oak Ridge National Laboratory [77], a

to pouze jako součást vědeckého projektu na téma distribuované výpočetní systémy. Impulsem pro jeho tvorbu byla potřeba kostry, která by umožnila výzkum v dané oblasti. Práce na jeho druhé, zcela přepracované verzi, započala skupina jeho tvůrců v únoru roku 1991 na University of Tennessee v Knoxville. Jejich cílem bylo vytvořit natolik stabilní a spolehlivý kód, aby mohl být uvolněn pro použití externím uživatelům. V září roku 1992 pak tato skupina začala z čistého listu vyvíjet třetí verzi tohoto systému, a to hlavně na základě podnětů ze strany uživatelů, kteří mezitím začali používat PVM pro své vědecké aplikace. Verze 2 skončila svůj vývoj v prosinci 1992 verzí 2.4.2. V únoru 1993 byla dokončena nová verze 3, která doplnila původní software hlavně o možnost rozšiřitelnosti, odolnost proti chybám a lepší přenositelnost. V současnosti (rok 2001) je aktuální verze 3.4.3. Autoři zatím pracují na verzi 3 a její nástupce mezitím začíná existovat jen ve formě návrhů a idejí. Systém PVM je volně šiřitelný a proto je široce využíván v řadě výpočetních aplikací na celém světě.

5.2.2 Základní vlastnosti PVM ● uživatelsky konfigurovatelný – výpočetní úlohy jsou prováděny na skupině

strojů, která je uživatelem stanovena při startu PVM. Součástí konfigurace mohou být jednoprocesorové i víceprocesorové stroje (SMPC i DMPC). Konfigurace může být měněna za chodu přidáváním nebo odebíráním strojů, což je důležitý předpoklad odolnosti proti výpadkům,

Page 43: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

41ČVUT, FSv, katedra mapování a kartografie

● volný přístup k hardware – aplikace využívající PVM mohou používat výpočetní zdroje bez dalšího upřesnění, nebo se mohou, vzhledem k možné heterogenitě součástí PVM stroje, dotázat na jejich konkrétní parametry a podle toho vybrat nejvhodnější hardware, který má daná úloha pro svůj běh využít,

● výpočet založený na procesech (process-based) – paralelní jednotkou v PVM je úloha. Je to nezávislá sekvenční jednotka alternující mezi výpočtem a komunikací. PVM nestanoví žádná pravidla pro to, na kterém hardware bude daný proces spuštěn – na jednom procesoru může běžet i několik úloh současně,

● jednoznačný message-passing model – skupina procesů, každý z nich vykonávající část práce na úloze, spolupracují zasílajíc si zprávy. Velikost zprávy je omezena pouze velikostí volné paměti,

● podpora heterogenity – PVM podporuje heterogenitu hardwaru, sítí a aplikací. PVM umožňuje komunikaci pomocí zpráv obsahujících více než jeden datový typ mezi stroji na nichž jsou datové typy odlišně reprezentovány,

● podpora multiprocesorů – PVM používá na multiprocesorových strojích jejich nativní možnosti komunikace, využívajíc výhod poskytovaných konkrétním hardware. Výrobci často nabízejí PVM optimalizovaný pro jejich systém, který je stále kompatibilní se standardním PVM.

5.2.3 Výhody PVM ● přenosný kód – PVM běží na mnoha UNIXových platformách od různých

výrobců, na mnoha multiprocesorových systémech se sdílenou či distribuovanou pamětí a dokonce i na počítačích pracujících pod Microsoft Windows,

● heterogenní – systém umožňuje spojit různé architektury počítačů do jednoho virtuálního stroje,

● rozšiřitelný – vytvořený virtuální systém může být tvořen i stovkami počítačů, na kterých mohou běžet tisíce různých úloh,

● dynamická konfigurovatelnost – jednotlivé stroje (uzly) mohou být do virtuálního počítače dynamicky přidávány (ať již ručně uživatelem, nebo vlastní běžící aplikací),

● zabezpečení odolnosti proti výpadkům – aplikace mohou být upozorňovány zprávami o ztracených a ukončených úlohách, ztracených procesorech a nových výpočetních kapacitách, které jsou do počítače přidávány za chodu,

● definování skupin procesů – mohou být definovány skupiny procesů pro speciální formy komunikace (broadcast, barrier), tyto mohou být za chodu programu měněny,

● signály – PVM může jednotlivým procesům posílat signály (což ocení hlavně UNIXoví programátoři se zkušenostmi s používáním signálů),

● vícenásobné message buffers – pro zprávy posílané mezi jednotlivými procesy může být použito více zásobníků (buffers) pro přípravu zpráv,

Page 44: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

42 ČVUT, FSv, katedra mapování a kartografie

● sledování (tracing) – v knihovně PVM jsou zabudovány funkce pro sledování jednotlivých akcí PVM. Tyto pak mohou být například graficky interpretovány nebo analyzovány při ladění programu nebo pro demonstrační účely,

● přizpůsobitelnost – zkušený uživatel může vytvořit vlastní správcovské úlohy, pomocí nichž může implementovat vlastní správu použití systému PVM.

5.2.4 Platformy podporované PVM

Nejběžnějšími platformami, na kterých je PVM používáno, jsou počítače běžící pod operačním systémem UNIX. Podporovány jsou jak běžné pracovní stanice Compaq, Sun, SGI,…, tak speciální multiprocesorové či vektorové počítače CRAY, Intel, Thinking Machines,… . PVM je však možno provozovat i na méně běžných platformách (Amiga) a počítačích běžících pod operačním systémem Microsoft Windows NT.

Platformy nativně podporované současnou verzí PVM (3.4.3) jsou uvedeny v následující tabulce (všechny platformy podporované aktuální verzí PVM je možno nalézt na [33])

id (PVM_ARCH) Architektura stroje id (PVM_ARCH) Architektura stroje

AFX8 Alliant FX/8 NETBSDM68K Motorola 68K s NetBSD

ALPHA DEC Alpha/OSF-1 NETBSDMAC68K Macintosh s NetBSD

ALPHAMP DEC Alpha/OSF-1 / používající sdílenou paměť

NETBSDMIPSEB Mips EB s NetBSD

AIX46K IBM/RS6000 / AIX 4.x NETBSDMIPSEL Mips EL s NetBSD

AIX4MP IBM SMP / shared memory transport / AIX 4.x

NETBSDNS32K NS32K s NetBSD

AIX4SP2 IBM SP-2 / používající MPI / AIX 4.x NETBSDPMAX DEC Pmax s NetBSD

APOLLO HP 300 s Domain/OS NETBSDPOWERPC

PowerPC s NetBSD

ATT AT&T/NCR 3600 s SysVR4 NETBSDSH3 SH3 s NetBSD

BAL Sequent Balance NETBSDSPARC Sparc s NetBSD

BFLY BBN Butterfly TC2000 NETBSDSPARC64 Sparc64 s NetBSD

BSD386 80[3456]86 s BSDI or BSD386 NETBSDSUN3 SUN 3 s NetBSD

CM2 Thinking MachinesCM-2 Sun front-end NETBSDVAX Vax s NetBSD

CM5 Thinking MachinesCM-5 NEXT NeXT

CNVX Convex používajícíIEEE floating-point OS2 OS/2

CNVXN Convex používající nativní f.p. PGON Intel Paragon

CRAY Cray PMAX DEC/Mips arch (3100, 5000, apod..)

CRAY2 Cray-2 RS6K IBM/RS6000 / AIX 3.x

CRAYSMP Cray S-MP RS6KMP IBM SMP / shared memory transport / AIX 3.x

CSPP Convex Exemplar RT IBM/RT

CYGWIN POSIX emulační vrstva pod Win32 SCO 80[345]86 s SCO Unix

DGAV,DGIX Data General Aviion SGI Silicon Graphics IRIS

E88K Encore 88000 SGI5 Silicon Graphics IRIS s OS 5.0

FREEBSD 80[345]86 s FreeBSD SGI6 Silicon Graphics IRIS s OS >= 6.0

HP300 HP 9000 68000 cpu SGI64 Silicon Graphics IRIS s 64 bit

HPPA HP 9000 PA-Risc SGIMP Silicon Graphics IRIS / OS 5.x / sdílená paměť

HPPAMP HP 9000 PA-Risc / shared memory transport

SGIMP6 Silicon Graphics IRIS / OS 6.x / sdílená paměť

Page 45: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

43ČVUT, FSv, katedra mapování a kartografie

id (PVM_ARCH) Architektura stroje id (PVM_ARCH) Architektura stroje

KSR1 Kendall Square SGIMP64 Silicon Graphics IRIS / 64 bit / sdílená paměť

I860 Intel RX Hypercube SP2MPI IBM SP-2 / používající MPI / AIX 3.x

IPSC2 Intel IPSC/2 SUN3 Sun 3

LINUX 80[345]86 s Linuxem SUN4 Sun 4, 4c, sparc, apod.

LINUXALPHA DEC Alpha s Linuxem SUN4SOL2 Sun 4 s Solaris 2.x

LINUXARM Strogarm s Linuxem SUNMP Sun 4 / sdílená paměť / Solaris 2.x

LINUXHPPA HP 9000 s Linuxem SX3 NEC SX-3

LINUXPPC PowerPC s Linuxem SYMM Sequent Symmetry

LINUXSPARC Sparc s Linuxem TITN Stardent Titan

M88K Motorola M88100 s Real/IX U370 IBM 3090 s AIX

M88K Motorola M88100 s Real/IX UTS2 Amdahl s UTS

MASPAR Maspar UVAX DEC/Microvax

MIPS Mips UWARE Uware

NETBSDALPHA DEC Alpha s NetBSD UXPM Fujitsu s UXP/M

NETBSDAMIGA Amiga s NetBSD VCM2 Thinking Machines CM-2 Vax front-end

NETBSDARM32 Strongarm s NetBSD WIN32 Windows 95/98/NT

NETBSDHP300 HP 300 s NetBSD X86SOL2 80[3456]86 s Solaris 2.x

NETBSDI386 80[3456]86 s NetBSD

tabulka 5.1: Architektury podporované PVM (verze 3.4.3 – jaro 2001)

5.2.5 Části PVM Systém PVM je tvořen dvěma základními částmi, které jsou k jeho fungování

nezbytné:

● pvmd3 (pvmd) – je PVM démon, který musí běžet na každém z používaných počítačů (u některých multiprocesorových systémů je vzhledem k jejich architektuře – rozdíl mezi uživatelskými a výpočetními uzly – situace poněkud odlišná). Spuštěním démona uživatel startuje vlastní virtuální stroj. Démona může na počítačích spustit uživatel ručně, nebo může být spuštěn automaticky při inicializaci virtuálního počítače. Pokud na skupině počítačů pracuje najednou více uživatelů, mohou vytvořit více překrývajících se paralelních strojů,

● knihovna PVM – obsahuje rozhraní systému PVM, které je použito při psaní paralelních programů. Aby mohl program spolupracovat s PVM, musí být s touto knihovnou sestaven (slinkován).

obrázek 5.1: PVM konzole - výpis konfigurace paralelního systému

Page 46: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

44 ČVUT, FSv, katedra mapování a kartografie

5.2.6 Používané pojmy ● task identifier (TID) – každá úloha pracující v PVM je identifikována

jednoznačným identifikačním číslem úlohy (TID). Toto číslo pak slouží jako adresa při komunikaci mezi procesy nebo při manipulaci s nimi (například jejich rušení). TID je úloze přisouzen PVM démonem bez možnosti ovlivnění uživatelem,

● skupina úloh (group) – každá úloha pracující v PVM může být zařazena do jedné i více skupin, v každé skupině pak instance dostane jednoznačné číslo (0 až počet úloh ve skupině). Tyto skupiny se přitom mohou překrývat a úlohy do nich mohou dynamicky vstupovat a vystupovat. Pro skupiny jsou pak definovány speciální funkce, jako například broadcast zprávy všem členům skupiny. Aby program mohl spolupracovat se skupinami, musí být sestaven se speciální PVM knihovnou (libgpvm3.a),

● master process – často bývá paralelní aplikace složena z jedné master části a N slave částí. Master process zabezpečuje start aplikace, zplození (spawn) slave úloh, může synchronizovat a usměrňovat běh aplikace, dodávat jí data a zabezpečovat interakci uživatele s paralelními částmi aplikace (například jejich ukončení). Master process je první spuštěnou úlohou aplikace a je pouštěn ručně (nebo pomocí scheduleru) na některém ze strojů v konfiguraci PVM,

● slave process – v master-slave paralelní aplikaci se jedná o výkonnou část paralelního procesu, která je nastartována (zplozena) master částí aplikace. Většinou je zplozeno N slave úloh, které pak spolupracují na řešení daného úkolu. Vstupní data mohou být slave procesům zaslána master procesem pomocí služeb poskytovaných PVM, nebo si slave procesy mohou potřebná data načíst z lokálního diskového prostoru počítačů, na kterých jsou nastartovány (to je dobrá alternativa pro případ, že vstupní data jsou příliš rozsáhlá a jejich přenos po propojovací síti by způsoboval neúměrné zdržení výpočtu). Implicitně bývají slave procesy nastartovány na strojích, které vybere z konfigurace PVM přímo PVM démon. Pokud však je zapotřebí, aby některá úloha využívala specifický hardware, může programátor explicitně určit, na kterém ze strojů v PVM má být tato úloha zplozena.

5.2.7 Rozhraní knihovny PVM Knihovna funkcí PVM je použita při tvorbě paralelních programů využívajících

služeb PVM. Každý program používající PVM musí být s touto knihovnou sestaven. Knihovna poskytuje programátorům přístup ke službám systému PVM. Standardní knihovnou obsahující rozhranní pro většinu funkcí PVM pro jazyk C (C++) je libpvm3.a , tu doplňuje libgpvm3.a obsahující rozhranní k funkcím podporovaným skupinami procesů.

Programy napsané v jazyku Fortran používají tyto knihovny pomocí rozhranní, které provádí úpravu parametrů do tvaru použitelného pro programy napsané v tomto jazyku (libfpvm3.a).

Knihovna PVM poskytuje uživateli/programátorovi přibližně padesát funkcí použitelných pro vytváření paralelních programů. Stručný popis několika nejdůležitějších je pro názornost uveden v následujícím textu.

Page 47: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

45ČVUT, FSv, katedra mapování a kartografie

obrázek 5.2: PVM konzole - přidání nového uzlu

5.2.7.1 Základní funkce pvm_mytid()

Tato funkce zaregistruje proces do PVM a vrací jemu přisouzené TID. Toto by měla být první funkce PVM, kterou paralelně pracující proces zavolá.

obrázek 5.3: PVM konzole - odebrání uzlu z konfigurace

Page 48: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

46 ČVUT, FSv, katedra mapování a kartografie

pvm_parent()Funkce vrací TID procesu, který je rodičem volajícího procesu. Pokud volající

proces nemá rodiče (nebyl zplozen pomocí funkce pvm_spawn()), funkce vrací speciální návratovou hodnotu, která tento stav signalizuje).

pvm_spawn(char *task, char **argv, int flag, char *where, intntask, int *tids)

Funkce spustí nový paralelní proces na běžícím paralelním počítači. Programátor může (ale nemusí) specifikovat další požadavky na nově vytvořený proces.

task – řetězec obsahující název spustitelného souboru, který obsahuje proces, jenž chceme spustit. Pokud neuvedeme přesnou cestu nebo nezměníme cestu v nastavení paralelního počítače, hledá PVM binární soubor v přesně určené cestě,

argv – pole argumentů, které mají být předány jako parametry nově spuštěnému procesu,

flag – parametr specifikující bližší požadavky na stroj, na kterém má být proces nastartován,

where – řetězec obsahující specifikaci stroje, na kterém má být proces nastartován (konkrétní hostname, architekturu – v závislosti na obsahu proměnné flag),

ntask – počet procesů, které mají být nastartovány,

tids – pole návratových hodnot, ve kterém funkce předává zpět TID všech nově nastartovaných procesů.

obrázek 5.4: PVM konzole - výpis běžících paralelních procesů

pvm_exit()Tato funkce oznámí lokálnímu PVM démonu (pvmd), že proces opouští PVM.

Proces může dál pokračovat v běhu jako jakýkoliv standardní program, není však již registrován PVM jako proces běžící na paralelním počítači. Tuto funkci by měl volat každý proces používající PVM pokud již nebude potřebovat služeb PVM (například při svém ukončení).

pvm_kill(int tid)

Funkce ukončí proces běžící na paralelním počítači, specifikovaný pomocí TID.

tid – TID (Task Identification number) příslušející procesu, který chceme ukončit.

Page 49: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

47ČVUT, FSv, katedra mapování a kartografie

5.2.7.2 Komunikace mezi procesy Komunikace mezi procesy tvoří základní kostru celého systému pracujícího

pomocí message-passing. Široká škála funkcí pro komunikaci je tedy základním předpokladem využitelnosti systému.

obrázek 5.5: XPVM - hlavní okno - konfigurace paralelního počítače

pvm_initsend(int encoding)Funkce vyčistí vyrovnávací paměť používanou pro odesílání zpráv a připraví ji

pro odeslání nových zpráv.

encoding – použité kódování dat ve zprávě. Pokud uživatel nepoužívá heterogenní paralelní počítač, nemusí být data před odesláním kódována do formátu

Page 50: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

48 ČVUT, FSv, katedra mapování a kartografie

kompatibilního i pro jiné architektury a programátor může ušetřit čas nutný pro kódování.

pvm_mkbuf(int encoding)

Funkce vytvoří novou vyrovnávací paměť pro odesílání zpráv. Toho může programátor využít v případě, že nechce poškodit data uložená v implicitní vyrovnávací paměti.

encoding – použité kódování dat ve zprávě stejně jako u pvm_initsend().

pvm_pk…(… *data, int nitem, int stride)

Funkce uloží pole hodnot daného typu do vyrovnávací paměti určené pro odesílané zprávy. Pro různé datové typy jsou k dispozici různé funkce pro jejich obsluhu – pro typ int funkce pvm_pkint(), pro typ float funkce pvm_pkfloat() a několik dalších.

data – ukazatel na pole dat daného typu,

nitem – celkový počet položek určených k uložení do vyrovnávací paměti,

stride – krok, který má být použit pro výběr dat. Například při kroku 3 bude uložena každá třetí položka z pole dat.

pvm_upk…(… *data, int nitem, int stride)Funkce získá pole hodnot daného typu z vyrovnávací paměti určené pro došlé

zprávy. Pro různé datové typy jsou k dispozici různé funkce pro jejich obsluhu – pro typ int funkce pvm_pkint(), pro typ float funkce pvm_pkfloat() a několik dalších.

data – ukazatel na pole dat daného typu,

nitem – celkový počet položek uložených ve vyrovnávací paměti,

stride – krok, který má být použit pro výběr dat. Například při kroku 3 bude vybrána každá třetí položka z pole dat uložených ve vyrovnávací paměti.

pvm_mcast( int *tids, int ntask, int msgtag)Tato funkce odešle zprávu uloženou v aktuálním odesílacím bufferu všem

uvedeným procesům – zpráva není odeslána zpět procesu, který funkci vyvolal i pokud je uveden mezi příjemci. Komunikace pomocí pvm_mcast() probíhá asynchronně – proces pokračuje v práci okamžitě potom, co je zpráva odeslána.

tids – pole specifikující adresáty odesílané zprávy pomocí jednotlivých TID,

ntask – počet procesů, kterým bude zpráva zaslána,

msgtag – kód sloužící uživateli k rozlišení vlastních typů zpráv.

pvm_probe(int tid, int msgtag)

Funkce ověří, zda zpráva s určeným označením dorazila od určeného procesu.

tid – TID procesu, od kterého očekáváme zprávu,

msgtag – uživatelské označení zprávy, na kterou čekáme.

Page 51: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

49ČVUT, FSv, katedra mapování a kartografie

pvm_recv(int tid, int msgtag)Funkce provádí blokující přijetí dané zprávy od daného procesu, tzn. že funkce

čeká tak dlouho, dokud zpráva s daným označením od daného procesu nedorazí.

tid – TID procesu, od kterého očekáváme zprávu,

msgtag – uživatelské označení zprávy, na kterou čekáme.

obrázek 5.6: XPVM - graf vytížení jednotlivých paralelních procesů

pvm_nrecv(int tid, int msgtag)Funkce provádí neblokující přijetí dané zprávy od daného procesu. Pokud tato

zpráva nepřišla, proces okamžitě pokračuje.

tid – TID procesu, od kterého očekáváme zprávu,

msgtag – uživatelské označení zprávy, kterou chceme přijmout.

pvm_trecv(int tid, int msgtag, struct timeval *tmout)

Funkce provádí blokující přijetí dané zprávy od daného procesu ve specifikovaném časovém intervalu. Funkce blokuje daný proces dokud specifikovaná zpráva nedorazí, nebo dokud nevyprší zadaný časový interval. Pokud vyprší daný čas, funkce je ukončena bez přijetí zprávy.

tid – TID procesu, od kterého očekáváme zprávu,

msgtag – uživatelské označení zprávy, kterou chceme přijmout,

tmout – čas, po který se má čekat, než je funkce ukončena bez přijetí zprávy.

pvm_send(int tid, int msgtag)

Funkce odešle data uložená v aktivní vyrovnávací paměti používané pro odesílaná data danému procesu a zprávu označí daným označením.

Page 52: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

50 ČVUT, FSv, katedra mapování a kartografie

tid – TID procesu, kterému posíláme data,

msgtag – uživatelské označení zprávy, pod kterým chceme zprávu odeslat.

5.2.7.3 Obsluha paralelního počítače pvm_config( int *nhost, int *narch, struct pvmhostinfo **hostp)

Funkce vrací informace o aktuální konfiguraci paralelního počítače. Tato může být dále využita pro rozhodování o umístění procesů nebo například pro load balancing.

nhost – parametr vracející počet počítačů zapojených do PVM,

narch – parametr vracející počet odlišných architektur použitých v aktuálním paralelním počítači,

hostp – pole informací o jednotlivých počítačích zapojených v aktuální konfiguraci PVM. Informace o jednotlivých počítačích zahrnují TID běžícího pvmd, hostname, architekturu a parametr specifikující relativní rychlost.

obrázek 5.7: XPVM - informace o zprávách v datové frontě procesu

pvm_tasks(int where, int *ntask, struct pvmtaskinfo **taskp)Funkce vrací informaci o paralelních procesech běžících na použitém paralelním

počítači.

where – určuje, zda má funkce vracet informace o všech úlohách, nebo pouze o některých (předem určených),

ntask – návratová hodnota funkce obsahující počet procesů, o kterých funkce vrací informace,

taskp – ukazatel na pole informací o běžících procesech, obsahující o každém procesu jeho TID, TID jeho rodičovského procesu, TID pvmd, pod kterým daný proces běží, stav procesu a jméno běžící úlohy.

Page 53: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

51ČVUT, FSv, katedra mapování a kartografie

pvm_halt()Tato funkce ukončí běh paralelního počítače. Funkce ukončí všechny běžící

paralelní procesy, ukončí PVM démony na všech strojích v konfiguraci PVM a ukončí všechny lokální procesy (včetně procesu, který tuto funkci vyvolal).

5.2.7.4 Odolnost proti výpadkům Funkce, které jsou zde uvedené, umožňují zvýšit odolnost paralelního programu proti

výpadkům. Tuto možnost poskytuje paralelnímu programu PVM svou dynamickou konfigurovatelností a možností upozorňovat běžící programy na změny v konfiguraci a na ztracené procesy.

pvm_addhosts( char **hosts, int nhost, int *infos)

Tato funkce přidá určené počítače do konfigurace běžícího paralelního počítače. Umožňuje v případě výpadku některé části paralelního počítače reagovat na tento stav přidáním „náhradního“ počítače.

hosts – pole ukazatelů na jména jednotlivých počítačů, které mají být touto funkcí přidány do paralelního počítače,

nhost – počet počítačů, které mají být přidány,

infos – pole návratových hodnot, z kterých lze po provedené operaci zjistit, zda se operace pro ten který počítač povedla a jaká byla případná příčina neúspěchu.

pvm_delhosts( char **hosts, int nhost, int *infos)

Tato funkce odebere určené počítače z konfigurace běžícího paralelního počítače. Procesy používající PVM budou na těchto počítačích ukončeny a pvmd běžící na těchto počítačích budou zastaveny.

hosts – pole ukazatelů na jména jednotlivých počítačů, které mají být touto funkcí odebrány z paralelního počítače,

nhost – počet počítačů, které mají být odebrány,

infos – pole návratových hodnot, z kterých lze po provedené operaci zjistit, zda se operace pro ten který počítač povedla a jaká byla případná příčina neúspěchu.

pvm_mstat(char *host)

Funkce zjistí stav určeného počítače v konfiguraci běžícího paralelního počítače. Tím může zjistit, zda počítač stále běží, je možno ho použít pro výpočet, nebo zda je potřeba konfiguraci paralelního počítače upravit.

host – řetězec obsahující jméno počítače z konfigurace PVM.

pvm_pstat(int tid)

Funkce zjistí stav určeného procesu používajícího systém PVM. Tímto způsobem je možno zjistit, zda daný proces ještě pracuje, nebo zda případně nebyl ukončen.

tid – TID procesu, o kterém chceme informovat.

Page 54: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

52 ČVUT, FSv, katedra mapování a kartografie

pvm_notify(int what, int msgtag, int cnt, int *tids)Funkce vznáší požadavek procesu na PVM, aby ho informoval o ztracených

procesech nebo o odebraných či přidaných počítačích do konfigurace paralelního počítače.

what – specifikuje informaci, kterou proces požaduje,

msgtag – uživatelský kód zprávy,

tids – pole obsahující TID procesů nebo pvmd, které mají být monitorovány, zda nebyly ukončeny (ukončení pvmd pak signalizuje nepřítomnost daného počítače v paralelním počítači).

cnt – počet procesů, na které má být upozorňováno, případně počet, kolikrát má být upozorňováno na nově přidaný počítač.

obrázek 5.8: XPVM - detailní informace o konkrétní zprávě v průběhu výpočtu

5.2.7.5 Skupiny paralelních procesů pvm_joingroup(char *group)

Volající proces bude zařazen do skupiny daného jména. Proces může být současně členem několika skupin.

group – řetězec obsahující jméno skupiny.

pvm_lvgroup(char *group)

Volající proces bude odebrán ze skupiny daného jména. Proces je ze skupiny vyloučen i po opuštění PVM (například voláním funkce pvm_exit()).

group – řetězec obsahující jméno skupiny.

pvm_bcast( char *group, int msgtag)

Tato funkce odešle zprávu uloženou v aktuálním odesílacím bufferu všem členům určené skupiny (broadcast) – zpráva není odeslána zpět procesu, který funkci vyvolal pokud je členem dané skupiny.

group – obsahuje jméno existující skupiny procesů,

Page 55: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

53ČVUT, FSv, katedra mapování a kartografie

msgtag – kód sloužící uživateli k rozlišení vlastních typů zpráv.

pvm_barrier( char *group, int count)

Tato funkce zastaví proces, který jí vyvolal a proces je zastaven do té doby, než zadaný počet procesů v zadané skupině zavolá tuto funkci. Funkce je použitelná například v případě, že běh paralelního programu může pokračovat pouze v případě, že paralelně pracující procesy dosáhly určitého místa v algoritmu. Procesy tedy nebudou pokračovat pokud se všechny nedostanou do místa, kde volají funkci pvm_barrier().

group – obsahuje jméno existující skupiny procesů, která bude funkcí omezena,

count – číslo určující počet procesů, které musí pvm_barrier() zavolat, aby mohl jejich běh pokračovat (většinou je roven počtu všech členů specifikované skupiny procesů).

pvm_reduce( void (*func)(), void *data, int count, int datatype,int msgtag, char *group, int root)

Funkce provádí globální operaci (min, max, suma, součin, případně uživatelem specifikované operace) nad lokálními daty úloh ve skupině.

func – funkce, která má být vyhodnocena,

data – ukazatel na pole dat, která mají být vyhodnocena. Do tohoto pole budou vlastnickému procesu, který obdrží výsledek operace, zapsány výsledné hodnoty,

count – počet prvků pole dat (počet vstupních hodnot),

datatype – hodnota specifikující datový typ vstupních dat,

msgtag – uživatelské označení zprávy,

group – jméno skupiny procesů, nad kterou má být globální operace provedena,

root – TID procesu, který má obdržet výsledek operace.

5.2.8 PVM konzole PVM konzole je program, který je součástí základního balíku PVM a umožňuje

uživateli pomocí jednoduchých příkazů spravovat daný paralelní počítač z textového terminálu. Konzole poskytuje cca 20-30 příkazů, kterými uživatel může měnit konfiguraci virtuálního paralelního stroje, přidávat, rušit a prohlížet běžící procesy, posílat jim signály apod.

Základní příkazy, které konzole uživateli PVM nabízí jsou:

add – přidá další počítač do konfigurace běžícího paralelního počítače (pokud nepoužíváme konfigurační soubor, tímto příkazem můžeme ručně měnit konfiguraci paralelního počítače),

delete – odstraní počítač z konfigurace běžícího paralelního počítače,

conf – vypíše konfiguraci běžícího paralelního počítače včetně hostname, architektury použitých počítačů, task ID (TID) PVM démonů běžících na jednotlivých strojích a relativních rychlostí jednotlivých strojů,

Page 56: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

54 ČVUT, FSv, katedra mapování a kartografie

halt – zastaví všechny procesy používající PVM, ukončí PVM konzoli, zastaví všechny PVM démony a tím i celý paralelní počítač,

quit – ukončí PVM konzoli (paralelní počítač i běžící úlohy dále běží),

kill – zastaví specifikovaný PVM proces,

reset – ukončí všechny procesy běžící pod PVM kromě PVM konzole a nastaví interní proměnné PVM do stavu, ve kterém byly při spuštění PVM. Paralelní počítač zůstává běžet (tento příkaz je užitečný v okamžiku, kdy ztratíme kontrolu nad běžícími procesy, nebo chceme všechny programy ukončit a například testovat jinou verzi programu),

ps –a – vypíše procesy, které právě běží na daném paralelním stoji, konkrétní počítače na kterých procesy běží, TID procesů a TID jejich rodičovských procesů,

pstat – vypíše stav PVM procesu specifikovaného pomocí TID,

sig – pošle specifikovanému procesu vybraný signál (tento příkaz můžeme využít například pro řízení chodu paralelního programu, který nemá žádnou textovou konzoli),

spawn – ručně nastartuje určený počet procesů používajících PVM. Uživatel může určit, na kterém počítači v konfiguraci PVM se proces nastartuje (případně na počítači s jakou architekturou), případně může požadovat přesměrování výstupu úlohy na konzoli, nebo do souboru,

version – vypíše verzi použitého systému PVM.

5.2.9 Konfigurace PVM pomocí hostfile Ačkoliv systém PVM musí být na počítačích nainstalován pouze jednou, jakmile

je jednou nakonfigurován, může ho používat každý uživatel, který má k použitým počítačům přístup. Každý konkrétní uživatel pak může používat různou konfiguraci paralelního počítače, kterou specifikuje buď ručně při startu PVM z PVM konzole a ručním přidáváním počítačů do konfigurace a nebo lépe pomocí hostfile. Tento soubor, který může mít každý z uživatelů svůj vlastní, specifikuje konfiguraci uživatelského paralelního počítače a jeho parametry, které pak mohou ovlivňovat jeho chování.

Vlastní hostfile tvoří soubor v textovém tvaru, kde na každém jeho řádku je uvedeno hostname počítače, který má být v dané konfiguraci paralelního počítače použit. Za ním mohou být uvedeny parametry, které ovlivňují další chování dané části paralelního počítače.

Z parametrů, které jsou uvedeny ve tvaru název_parametru=hodnota uvedu pouze ty nejpoužívanější:

ep – uživatelská cesta ke spustitelným programům. Programy, které chce uživatel spustit pomocí funkce spawn jsou implicitně hledány v podadresáři bin/$PVM_ARCH Tímto parametrem může uživatel specifikovat jiný adresář, ve kterém má PVM tyto spustitelné soubory hledat,

Page 57: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

55ČVUT, FSv, katedra mapování a kartografie

sp – umožňuje nastavit hodnotu relativní výpočetní rychlosti daného stroje, kterou je pak možno v průběhu výpočtu použít k přibližnému load balancingu,

obrázek 5.9: XPVM - právě probíhající paralelní program (playback)

wd – umožňuje zvolit pracovní adresář, který budou používat procesy zplozené

na konkrétním počítači pomocí funkce spawn, lo – umožňuje určit uživatelské jméno na konkrétním počítači, pokud uživatel

nepoužívá stejné jako na počítači, na kterém byl systém PVM nastartován,

Page 58: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

56 ČVUT, FSv, katedra mapování a kartografie

so – při startu PVM na daném počítači se PVM zeptá na uživatelské heslo (to je užitečné pokud uživatel nepoužívá stejné uživatelské jméno a heslo na všech počítačích v konfiguraci PVM)

Příklad hostfile, který jsem používal při testování na jedné z konfigurací

paralelního počítače je uveden zde: # basic config = Linux + Alphas

potato ep=/home/marvin/pgs/prog/plxs wd=/home/marvin/pgs/prog/plxs

csst06 ep=/www/user/marvin/pgs/prog/plxs wd=/www/user/marvin/pgs/prog/plxs

csst05 ep=/i5/csst/usr/marvin/pgs/prog/plxs wd=/i5/csst/usr/marvin/pgs/prog/plxs

csst04 ep=/zaloha/usr/marvin/pgs/prog/plxs wd=/zaloha/usr/marvin/pgs/prog/plxs

csst03 ep=/usr/users/marvin/pgs/prog/plxs wd=/usr/users/marvin/pgs/prog/plxs

5.2.10 XPVM XPVM je grafická konzole PVM kombinovaná s monitorem. Zprostředkovává

uživatelsky příjemnou formou komunikaci s jednotlivými komponenty paralelního počítače a zadávání příkazů PVM konzole. Pomocí grafických výstupů prezentuje informace o běhu a chování paralelních úloh a komunikaci mezi nimi. Tento výstup je pak neocenitelný při odlaďování programů a jejich profilingu.

Pro použití programu XPVM musí být paralelní programy přeloženy s podporou knihoven PVM verze minimálně 3.3 (tato verze má již implementovány funkce sledování - tracing). Jakýkoli paralelní proces pak vrací informace o svém běhu, které jsou zaznamenávány a mohou být i následně přehrávány.

obrázek 5.10: XPVM - detail komunikace mezi paralelními procesy

Page 59: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

57ČVUT, FSv, katedra mapování a kartografie

5.35.35.35.3 Další balíky pro paralelní výpočtyDalší balíky pro paralelní výpočtyDalší balíky pro paralelní výpočtyDalší balíky pro paralelní výpočty V této práci se zabývám téměř výhradně použitím systému PVM pro

distribuované paralelní výpočty. Mimo něj však existují i další systémy (programové balíky) určené k obdobným účelům, z nichž se krátce zmíním o balících MPI, P4, Express a Linda. Informace pro tuto kapitolu jsem čerpal mimo jiné z [12], [13] a webovských a manuálových stránek uvedených produktů.

5.3.1 Message Passing Interface Message Passing Interface (dále jen MPI) je výsledek iniciativy expertů na tvorbu

paralelního software a výrobců masivně paralelních počítačů – Message Passing Interface Forum, která vznikla v roce 1992 během konference Supercomputing 92 Conference. Cílem jejich úsilí bylo vytvořit standard pro syntaxi a sémantiku základu knihovny pro paralelní výpočty použitelné hlavně na masivně paralelních počítačích (MPP – Massively Parallel Processor). Do té doby totiž většina výrobců MPP tvořila vlastní message-passing systém, takže tvorba přenositelných paralelních programů byla nemožná. Hlavní výhodou, kterou s sebou takto vytvořený standard přináší je přenositelnost. Výrobcům MPP počítačů je dána definice rozhraní a seznam funkcí, které by měli implementovat do verze MPI přizpůsobené jejich HW (případně pro ně přímo zajistit hardwarovou podporu).

MPI samo o sobě neobsahuje obsluhu správy procesů, konfiguraci virtuálního počítače, ani podporu pro vstup a výstup. Z toho plyne, že MPI má sloužit jako vrstva komunikačního rozhraní položená nad vrstvou konkrétního paralelního hardware (s možností vykonávat některé funkce přímo pomocí hardware). Tato vlastnost umožňuje, aby na MPP strojích bylo PVM použito jako nadstavba nad MPI vrstvou. V takovém případě pak PVM těží z hardwarových a komunikačních urychlení implementovaných přímo výrobcem paralelního hardwaru do MPI vrstvy (v současné době je tato vlastnost využita u IBM SP2 MPP hardwaru viz 7.1.1).

Další informace o MPI a definovaných MPI standardech viz [34].

5.3.1.1 MPICH MPICH [35] je kompletní, volně dostupná, přenosná implementace MPI, jejíž

kořeny sahají až do roku 1992 – do okamžiku kdy byly položeny základy standardu MPI. Spolu s tímto krokem se objevila idea poskytnout uživatelům souběžně se vznikajícím standardem MPI i možnost s ním experimentovat, a to na pokud možno všech systémech schopných podporovat message-passing model.

CH v názvu (MPICH) znamená podle autorů “Chameleon“ – symbol rychlosti, adaptability k prostředí a tedy i přenositelnosti.

MPICH implementuje rozhranní MPI s odstraněním omezení na některé architektury a ponechává si standardní vysoký výkon MPI. Přitom nechává výrobcům paralelního hardware možnost tvorby vlastních implementací, optimalizovaných pro konkrétní hardware.

První verze MPI se objevila již několik dní po vytvoření prespecifikace MPI, a to díky existujícím přenositelným systémům P4 a Chameleon. Na jaře 1993 pak započalo další rozšiřování systému tak, aby pokrýval kompletní dosud uveřejněnou specifikaci MPI. Postup doplňování MPICH o další funkce, které se objevovaly ve vznikající MPI specifikaci přinesl své ovoce v květnu roku 1994, kdy byl ustanoven MPI standard.

Page 60: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

58 ČVUT, FSv, katedra mapování a kartografie

Téměř souběžně s definováním MPI standardu byl totiž k dispozici souběžně vznikající MPICH, který zahrnoval veškeré popsané funkce standardu.

Současná verze MPICH je tedy přenositelnou implementací standardu MPI (MPI-1.2) s podporou heterogenních sítí a s podporou funkcí zajišťujících fault tolerance (odolnost proti výpadkům).

5.3.2 P4 Balík P4 [36] pochází z Argonne National Laboratory a je určen pro

programování na mnoha paralelních platformách. Systém podporuje jak počítače se sdílenou pamětí, tak počítače s pamětí distribuovanou (s použitím message-passing). Při použití na počítačích se sdílenou pamětí jsou k dispozici předdefinované monitory a sada prototypů pro jejich konstrukci.

Konfigurace paralelního stroje v P4 není tak snadná jako s použitím PVM. Konfigurace je předem dána konfiguračním souborem umístěným na každém z použitých strojů, který obsahuje i informace o procesech, které se mají na daném uzlu nastartovat. Nový proces na lokálním počítači může dynamicky vytvořit pouze proces, který již byl nastartován pomocí zmíněného konfiguračního souboru.

Použití P4 na počítači s distribuovanou pamětí je obtížnější než použití PVM. Systém poskytuje obdobné služby jako PVM (výměna dat mezi heterogenními systémy, blokující a neblokující přenosy), ale značná část operací souvisejících se správou message buffers zůstává na uživateli. Kromě podobných funkcí jako PVM však podporuje P4 některé zajímavé globální operace, jako jsou globální maximum a minimum, bariérová synchronizace atp. Bližší informace o programování s použitím P4 viz [37].

5.3.3 Express Komerční nástroj vyvinutý firmou ParaSoft Corporation [38] (vývoj byl

v současné době zastaven). Express je balík, který se na rozdíl od ostatních zde zmiňovaných produktů skládá ze skupiny nástrojů zaměřených na konkrétní aspekty paralelního programování. Programy vytvořené pomocí balíku Express používají sady knihoven, které jim poskytují služby pro paralelní komunikaci pomocí message-passing a velkou množinu globálních operací.

Tvorba programu s použitím Express sestává z předem daného postupu od sériové verze programu až po paralelní verzi, který je nepřímo dán spektrem nástrojů, tvořícím daný produkt. Express poskytuje nástroje pro analýzu sekvenčních algoritmů z hlediska jejich možné paralelizace, nástroje pro automatickou paralelizaci a konečně nástroje pro ladění (paralelní debugger) a optimalizaci (profiling) vzniklého paralelního kódu.

Bližší informace o balíku Express viz [39].

5.3.4 Linda Linda je systém pro paralelní programování, který se vyvinul z výzkumného

projektu na Yale University – [40]. Jeho základem je takzvaný „tuple-space“, pomocí něhož komunikují spolupracující procesy. Tento koncept je alternativou k tradičním způsobům komunikace používajícím sdílenou paměť (shared memory) a message-passing. Tuple-space představuje distribuovanou shared memory (mohli

Page 61: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

59ČVUT, FSv, katedra mapování a kartografie

bychom jí označit jako virtual shared memory) neboli abstrakci sdílené paměti, pomocí které mohou procesy komunikovat bez ohledu na to, zda je paměť skutečně sdílená nebo není.

Samotný Linda systém se skládá ze dvou částí. Na každém stroji běží systémová část, která tvoří vlastní tuple-space a zabezpečuje jeho fungování. Podle použité hardwarové platformy (shared memory MP, message-passing MP, sítě pracovních stanic) používá systém různé metody pro realizaci tuple-space. Druhou částí systému Linda jsou knihovny, jejichž funkcí využívá paralelní software pro interakci s tuple-space.

Programátor využívající systém Linda tvoří program pomocí standardního programovacího jazyka (C, Fortran), přičemž používá funkce poskytované systémem Linda. Výsledný zdrojový kód pak přeloží speciálním kompilátorem podporujícím konstrukce systému Linda.

5.45.45.45.4 Stručné srovnání PVM a MPIStručné srovnání PVM a MPIStručné srovnání PVM a MPIStručné srovnání PVM a MPI Vzhledem k růstu zájmu o paralelní programování, jsou výrobci paralelního

hardware nuceni nabízet populární systémy pro paralelní výpočty (mezi které MPI a PVM jistě patří) i pro své platformy. Vznikají tedy verze MPI a PVM i pro nejrozšířenější multiprocesorové systémy a volba vhodného systému zůstává na programátorovi.

Následuje stručné shrnutí podmínek vzniku jednotlivých standardů, které se promítly do jejich současné podoby

● PVM se při svém vzniku soustředilo na distribuovanou heterogenní síť počítačů a kladlo si za cíl spíše přenositelnost než rychlost a efektivnost komunikace (mimo jiné i z důvodů, že komunikace přes internet žádnou zvláštní rychlostí nevynikala). Při vývoji PVM však byly postupně zohledněny i možnosti multiprocesorových počítačů a vysokorychlostních sítí.

● MPI naopak vznikalo jako standard pro výrobce masivně paralelních počítačů a jeho výhodou bylo tedy využití specifických funkcí poskytovaných daným hardwarem. Mimoto obsahuje specifikace MPI bohatou škálu funkcí pro efektivní komunikaci. Oproti PVM však nemá systém MPI tak rozsáhlé rozhraní pro obsluhu procesů a přímou možnost zabezpečit aplikace proti výpadkům.

S přihlédnutím k tomu, jak dané systémy vznikaly a co bylo při jejich tvorbě požadováno, je u MPI předpoklad, že bude rychlejší na multiprocesorových počítačích. MPI dovoluje specifikovat komunikační topologii a má lepší funkce pro komunikaci mezi procesy nebo skupinami procesů. To z něj činí favorita pro aplikace, jejichž algoritmy jsou náročné na rychlou a efektivní komunikaci.

PVM je oproti tomu ve výhodě, pokud aplikace běží na heterogenní síti, kde není kladen tak velký nárok na rychlost komunikace (například internet) a zároveň umožňuje zabezpečení aplikace proti výpadkům (ať už jednotlivých procesů, nebo celých částí paralelního stroje).

Oba systémy umožňují přenositelnost mezi různými architekturami. Zdrojový kód může být přenesen na jinou platformu a ve většině případů pouze znovu přeložen. PVM je však vzhledem k základnímu požadavku na heterogennost systémů schopen pracovat i na více architekturách současně. MPI je tedy přenositelné pouze v rámci skupin

Page 62: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

60 ČVUT, FSv, katedra mapování a kartografie

počítačů s totožnou architekturou, PVM na rozdíl od něj umožňuje komunikaci i ve skupině počítačů s heterogenní architekturou. Tato vlastnost je dána absencí požadavku na schopnost komunikace v heterogenním prostředí v úvodní specifikaci MPI. Žádná z implementací MPI na konkrétních hardwarových platformách tudíž komunikaci s jinou hardwarovou platformou přímo nepodporuje. Tato vlastnost je také důsledkem požadavku na rychlost komunikace, která je komunikací v heterogenním prostředí snížena. PVM platí za svou schopnost komunikace v heterogenním prostředí nižším výkonem při komunikaci. Při komunikaci mezi stejnými architekturami PVM používá nativní metody těchto architektur obdobně jako MPI, při komunikaci mezi rozdílnými architekturami však používá standardní síťové komunikační protokoly. Mimo to MPI (na rozdíl od PVM) neumožňuje komunikaci mezi programy napsanými v různých programovacích jazycích (konkrétně se jedná o C a Fortran). V systému PVM tedy mohou kooperovat procesy napsané v různých programovacích jazycích a přeložené s podporou PVM.

Na rozdíl od MPI, které postrádá širší funkce správy procesů, PVM umožňuje uživateli startovat a ukončovat procesy, posílat jim signály, zjišťovat, které procesy a kde jsou spuštěny. Standard MPI-2 naproti tomu definuje jen funkce pro nastartování procesu (nebo skupiny procesů) a pro posílání signálů (MPI-1 neobsahuje ani tyto funkce).

PVM poskytuje uživateli možnost dynamické alokace zdrojů, tedy možnost zvolit si, na kterém ze strojů zapojených do PVM poběží daná úloha. To může značně zvyšovat efektivnost využití výpočetních kapacit, kdy například pro výpočetně náročné části úlohy je použit výkonný MPP a sekvenční části algoritmu běží na pracovní stanici. MPI tuto možnost zcela postrádá a tuto nevýhodu mírně vyvažuje zvýšeným výkonem. PVM umožňuje na jedné straně uživateli používat celý systém jako anonymní výpočetní zdroj, na druhé straně však v okamžiku potřeby může uživatel postupně odkrývat jednotlivé vrstvy abstrakce a používat pro běh svých programů výpočetní prostředky s vhodným výkonem, architekturou, nebo přímo konkrétní počítače identifikované pomocí hostname. MPI umožňuje specifikovat logickou komunikační topologii mezi úlohami (spoléhajíc se na to, že odpovídá komunikační topologii použitého hardware), zatímco PVM žádnou takovou funkcí nedisponuje a nechává starost o topologicky správnou komunikaci na uživateli.

PVM nabízí jako jednu ze svých základních vlastností funkce, které umožňují psát aplikace, které jsou odolné proti výpadkům. Aplikace mohou být upozorněny na nenadálý konec některé části úlohy, případně na odpojení některého počítače z PVM tak, aby mohly na tuto událost příslušně reagovat (vytvoření náhradní úlohy za ztracenou, případně připojení náhradního počítače na místo odpojeného). Tato vlastnost je klíčovou podmínkou pro úspěšný běh náročných aplikací, které mohou být tvořeny stovkami úloh, běžících na mnoha počítačích i několik týdnů. Bez odolnosti proti chybám mohou být stovky hodin výpočetního času ztraceny vinou třeba jen dočasné nedostupnosti jediného počítače, případně může uživatel marně čekat na dokončení úlohy, zatímco se aplikace nachází v nedefinovaném stavu vinou nečekaného pádu jedné z úloh. Mimo to může být aplikace v PVM upozorněna na přidání dalších výpočetních prostředků do virtuálního stroje a příslušně na to reagovat (například přidáním dalších slave procesů a okamžitým využitím nabízených výpočetních kapacit). MPI naproti tomu ve své první specifikaci (MPI-1) předpokládá statickou skupinu běžících úloh a jakýkoliv výpadek má za následek nesplnění základní podmínky pro běh této skupiny. Specifikace MPI-2 již obsahuje funkce pro

Page 63: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

61ČVUT, FSv, katedra mapování a kartografie

upozorňování procesů na události podobně jako PVM a funkce pro startování dalších procesů, i když stále postrádá schopnost reakce na náhlou ztrátu běžícího procesu.

Dalším rozdílem mezi MPI a PVM je otázka komunikace. Při komunikaci používá systém pro odlišení jednotlivých zpráv nejen uživatelem specifikovanou etiketu (tag), ale i identifikátor kontextu, který je přisouzen systémem a nemůže být uživatelem změněn. V PVM se stará o tvorbu unikátních identifikátorů kontextu PVM démon, který zajišťuje unikátnost v rámci celého virtuálního počítače. V MPI je za identifikátor kontextu zodpovědný komunikátor (communicator) pouze v rámci skupiny procesů. Teoreticky tedy může nastat situace, kdy dvě nezávislé skupiny procesů používají týž identifikátor kontextu. V tom případě se mohou dohodnout na jedinečném identifikátoru, který zajišťuje takzvaný inter-communicator. MPI tak za cenu běhu bez použití jakéhokoliv démona platí jistou „zmateností“ v této oblasti.

Co tedy plyne z těchto poznatků pro programátora, který se rozhoduje mezi použitím některého z těchto standardů? MPI je vhodnou volbou v okamžiku, kdy je program vytvářen pro konkrétní masivně paralelní počítač. Software potom může být přenesen na jinou implementaci MPI pro jiný hardware. MPI s sebou také přináší bohatou škálu komunikačních funkcí. Za nevýhodu MPI můžeme považovat nemožnost spolupráce programů běžících na různých implementacích MPI. Druhou nevýhodou je nemožnost psát aplikace odolné proti chybám. Volba vhodného systému padá na PVM v okamžiku, kdy má aplikace běžet na skupině počítačů propojených sítí, zvláště pokud se jedná o heterogenní skupinu počítačů. Je vhodným kandidátem v okamžiku, kdy potřebujeme psát přenosné programy, schopné běžet jak na skupině pracovních stanic, tak na masivně paralelním počítači. PVM zajišťuje správu zdrojů a úloh a tím umožňuje psát aplikace odolné proti výpadkům a aplikace racionálně využívající dostupné zdroje. Tolerance proti výpadkům je klíčová pro tvorbu rozsáhlých aplikací, které jsou schopny pokračovat ve své práci i v případě výpadků, nebo měnit svůj výkon v závislosti na změnách dostupných výpočetních kapacit.

5.55.55.55.5 ScaLAPACKScaLAPACKScaLAPACKScaLAPACK Scalapack není sice systémem pro paralelní výpočty, ale je to knihovna pro

výpočty lineární algebry s použitím výše uvedených message-passing systémů. To z ní činí ideální nástroj dostupný každému i pro paralelní výpočty na sítích pracovních stanic.

ScaLAPACK (Scalable LAPACK [62]) je knihovna založená na knihovně LAPACK pro výpočty lineární algebry na paralelních a vektorových superpočítačích se sdílenou pamětí. Funkce ScaLAPACKu byly optimalizovány pro práci na paralelních MIMD (Multiple Instruction Multiple Data) počítačích s distribuovanou pamětí. ScaLAPACK používá datovou paralelizaci (data decomposition – pro výpočet jsou matice rozloženy na bloky) a jednotlivé spolupracující procesy používají message-passing technologii pro vzájemnou komunikaci. ScaLAPACK je dostupný pro platformy, na kterých je možno provozovat PVM nebo MPI (viz celá kapitola 5.1 a kapitola 5.3.1).

Page 64: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

62 ČVUT, FSv, katedra mapování a kartografie

6666 Aplikace paralelního zpracovAplikace paralelního zpracovAplikace paralelního zpracovAplikace paralelního zpracování datání datání datání dat Paralelní zpracování dat je dnes rutinně používáno v mnoha komerčních

aplikacích převážně v oblasti zpracování obrazu, počítačového vidění, designu, leteckého průmyslu a v jiných oblastech, kde je zapotřebí extrémního výpočetního výkonu.

V souvislosti s tím, že paralelní počítače stojí technologicky a cenově na vrcholku vývojové pyramidy, nacházejí aplikace paralelních výpočtů své místo především v oblastech, kde je na nákup paralelních systémů dostatek financí – tedy v armádě a výzkumných laboratořích podporovaných armádou případně komerčními organizacemi.

Druhou oblastí, kde se paralelní výpočty používají, jsou univerzitní, nebo méně finančně podporované laboratoře, kde nacházejí využití spíše levnější systémy clusterů a NOW, například na bázi Linuxu (viz 4.2.5.4 a 4.2.5.5).

6.16.16.16.1 Paralelní zpracování dat vParalelní zpracování dat vParalelní zpracování dat vParalelní zpracování dat v geodézii a DPZgeodézii a DPZgeodézii a DPZgeodézii a DPZ V rámci přípravy na svou disertační práci jsem se určitý čas zaměřil i na hledání

organizací či institucí z oblasti geodézie a dálkového průzkumu Země, které pro zpracování dat používají paralelní počítače, nebo které své síly zaměřují na zkoumání tohoto potenciálu.

Jako příklady aplikací paralelních výpočtů mohou posloužit i experimenty s paralelní aplikací úloh z oblasti geodézie a DPZ, které jsem v rámci příprav na svou disertační práci prováděl. Více o těchto experimentech viz kapitola 8.

Paralelní zpracování dat v geodézii a DPZ je dnes většinou ve stadiu výzkumných projektů a rutinní použití nachází pouze ve finančně silných státních a komerčních organizacích. Jako příklad mohu uvést následující projekty, ve kterých jsou paralelní počítače pro zpracování dat používány.

6.1.1 Danish Center for Remote Sensing V roce 1994 dánské ministerstvo školství vypsalo konkurs na návrhy projektů

týkajících se experimentů s paralelními počítači v oblasti vědeckých výpočtů. Pro vítězný projekt MPP byla vybrána tři výzkumná centra včetně Dánského centra pro dálkový průzkum Země (DCRS) [71], které je zřízeno při katedře elektromagnetických systémů (Department of Electromagnetic Systems - EMI) Technical University of Denmark (DTU).

Pro projekt byl, po testech výkonu a vhodnosti paralelních počítačů dostupných na trhu, vybrán počítač SiliconGraphics PowerChallenge. PowerChallenge použitý v tomto projektu je symetrický multiprocesorový systém (SMP) s dvanácti procesory R800 taktovanými na 90Mhz, poskytující výkon 4,3 GFLOPS. Systém je vybaven 4GB paměti a DCRS ho doplnila třemi externími diskovými systémy o celkové kapacitě 244Gbytes wide SCSI s I/O propustností 50Mbytes/s.

PowerChallenge je paralelní systém se sdílenou pamětí a jako takový poskytuje programátorům prostředí pro práci podobné práci s pracovními stanicemi. Podle zkušeností z DCRS pak pro paralelizaci zpracovávaných úloh běžně postačují paralelizující kompilátory. Jádro počítačového střediska DCRS je pak vybaveno osmi

Page 65: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

63ČVUT, FSv, katedra mapování a kartografie

pracovními stanicemi HP 9000 a síťové propojení jednotlivých komponentů je realizováno pomocí 100Mbit/s FDDI sítě.

Pro zálohování zpracovávaných dat jsou v DCRS k dispozici DLT pásky, Exabyte pásky, DAT pásky a magnetooptické disky. Výstupy pak mohou být zpracovány na film v rozlišení 8800x9600 pixelů, nebo pomocí sublimační tiskárny Kodak XLS8300 v rozlišení 300DPI na papír nebo průhledné fólie až do velikosti obrazu 2400x2890 pixelů.

Projekt byl zaměřen na paralelní zpracování dat získaných systémem EMISAR, což je polarimetrický a interferometrický SAR (Synstetic Aperture Radar) nesený letadlem, který byl vyvinut centrem DCRS. Typický polarimetrický snímek EMISAR pokrývající území o rozloze 12x12km je získán asi za 50 sekund a odpovídá asi 1GByte dat. Zpracování takovéhoto snímku trvá na pracovní stanici HP 9000 J210 přibližně 2 až 3 hodiny.

Během mapování jsou EMISAR data zaznamenávána na High Density Digital Tapes (HDDT) s přístupovou rychlostí až 240 Mbit/s, která je připojena k jedné z pracovních stanic. Tato stanice poté zkontroluje kvalitu dat a předzpracuje pomocná data. Data jsou zformátována, zálohována a přenesena do paralelního počítače pro následné zpracování.

DCRS také zpracovává data ze satelitů ERS-1 a ERS-2 vypuštěných European Space Agency (ESA) v letech 1991 a 1995. DCSR pracuje na čtyřech projektech ESA a spolupracuje na dvou dalších projektech týkajících se využití dat získaných SAR systémy které oba satelity nesou. Tyto projekty umožňují přístup k stovkám ERS scén, každá 100x100km (odpovídající 1GByte dat), a i když velké části těchto scén nejsou zpracovávány, zpracování řízené DCRS je extrémně výpočetně náročné.

Zmiňovaný projekt zabývající se využitím masivně paralelních počítačů byl ukončen v roce 1998 a paralelní počítač se stal majetkem DCRS, kde je i nadále používán pro výpočty nejen v oblasti DPZ.

6.1.2 Univerzita v Adelaide K.A.Hawick a H.A.James v Depatment of Computer Science, Faculty of

Engineering university v Adelaide pracují na projektu nazvaném Distributed GIS Project (DGIS). Tento projekt zahrnuje mimo jiné i distribuované a paralelní algoritmy pro zpracování dat dálkového průzkumu Země jakými jsou například snímky z geostacionárních družic.

Vytvořili distribuovanou bázi dat založenou na modelu client-server ve velmi rychlé síti ATM s implementovanými paralelními moduly pro zpracování dat. Soustřeďují se na algoritmy pro klasifikaci, korelaci či histogramovou analýzu dat. Pro svůj projekt používají multispektrální data z Visual and Infra-red Spin Scan Radiometer (VISSR) umístěném na japonském geostacionárním meteorologickém satelitu GMS-5 a z družic NOAA.

Pro paralelizaci používají HPF (High Performance Fortran), CC++ (Concurrent C++) a MPI (Message-Passing Interface). Paralelní moduly, které provádějí zpracování dat využívají výpočetní výkon několika superpočítačových center, ke kterým má tento projekt přístup. Tam jsou úlohy zpracovávány na počítačích Thinking Machines CM-5, SGI PowerChallenge a dvou AlphaStation farms (v Adelaide a Canberra).

Page 66: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

64 ČVUT, FSv, katedra mapování a kartografie

Vyvíjený systém poskytuje kromě prohlížecího rozhraní k bázi dat také služby zpracování a analýzy dat na požádání. Systém by měl zvládnout služby zpracování dat i na dálku a poskytnout tak vzdáleným uživatelům s omezenou přístupovou rychlostí získat odvozená data v libovolném rozlišení.

Bližší informace o projektu DGIS a jeho částech viz [72].

6.1.3 NASA Goddard Space Flight Center James C. Tilton pracuje na projektu implementace segmentace obrazu metodami

region growing a spectral clustering s natural convergence criteria na počítači theHIVE (Highly-parallel Integrated Virtual Environment) [58]. Tento projekt je pokračováním projektu zaměřeného na hierarchickou segmentaci (HSEG) na masivně paralelním počítači MasPar MP-2.

TheHIVE je paralelní počítač třídy Beowulf (cluster PC kompatibilních počítačů pracujících pod systémem Linux propojených vlastní LAN sítí viz 4.2.5.4). Tento počítač je vybaven 64-mi výpočetními jednotkami (včelami), královnou (počítač spravující theHIVE) a trubci (počítače umožňující uživatelský přístup k theHIVE).

Při použití masivně paralelního počítače byl pro HSEG použit pixelově orientovaný přístup, kdy je každému virtuálnímu procesoru v MasPar přisouzen jeden pixel. Tento přístup se ale ukázal nevhodný v případě, že se v obraze nacházejí velké regiony. Informaci o sousedním regionu (určenou jinak implicitně fyzickým rozložením dat ve virtuálních procesorech) bylo nutno rozšiřovat mezi všechny virtuální procesory zpracovávající pixely daného regionu.

V implementaci HSEG na theHIVE je informace o regionech uchována v datové struktuře ve formě linked-listu, která obsahuje informace o sousedících regionech a je obnovována po každém sloučení regionů. Tento přístup je označován jako regionově orientovaný.

S pomocí divide-and-conquer přístupu k regionově orientované HSEG je zpracováván čtyřpásmový Landsat MSS snímek za přibližně 30 minut na počítači theHIVE. Předchozí pixelově orientovaná implementace HSEG by pak na stejnou úlohu vyžadovala 16 MasPar MP-2 počítačů na 9 hodin.

Více informací o tomto projektu viz [73].

6.1.4 Clemson Regional Data Center Clemson Regional Data Center je zřízeno v Department of Electrical and

Computer Engineering na Clemson University. Clemson RDC je testovacím pracovištěm pro výzkum v počítačových systémech zaměřených na DPZ. Laboratoř se zaměřuje kromě klasického zpracování obrazu i na úlohy zpracování družicových měření včetně kalibrace a formátovaní výstupního obrazu, vytváření a údržbu databází a numerickou simulaci Zemského systému.

Ke zpracování dat je v Clemson RDC používán Grendel – cluster třídy Beowulf složený ze 18-ti počítačů s procesorem Pentium 150Mhz s 64MB paměti a každý s 2GB diskem. Tyto počítače jsou propojeny dvěmi 100Mbps Ethernet sítěmi.

Jedním z projektů Clemson RDC využívajícím paralelní počítače je CERSe (Component-based Environment for Remote Sensing) [75] – vyvíjený ve spoluprácí s Clemson University Parallel Architecture Research Laboratory [74] a NASA. Cílem

Page 67: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

65ČVUT, FSv, katedra mapování a kartografie

CERSe je vytvořit jednoduché modulární prostředí pro aplikace DPZ s využitím výkonných paralelních počítačů, tedy pomocí služeb poskytovaných použitým clusterem Beowulf, mezi které můžeme počítat MPI-MPICH message passing systém a PVFS (paralelní souborový systém).

6.26.26.26.2 Paralelní výpočty na naší fakultěParalelní výpočty na naší fakultěParalelní výpočty na naší fakultěParalelní výpočty na naší fakultě Příkladem využití paralelních výpočtů na naší fakultě pro aplikace použitelné

v praxi může být práce Ing. Jaroslava Kruise, Ph.D. z katedry stavební mechaniky na téma „Využití paralelních počítačů při řešení velkých soustav rovnic“ [19]. K nutnosti řešit rozsáhlé soustavy lineárních algebraických rovnic často vede metoda konečných prvků používaná nejen v jeho oboru. Tyto velké soustavy lze na klasických počítačích řešit pouze obtížně, a to především vzhledem k nárokům na paměť, které rostou proporcionálně s velikostí úlohy.

Ve zmiňované práci je popsána aplikace paralelního přístupu na řešení velkých soustav lineárních rovnic s použitím doménové dekompozice, případně pomocí metody sdružených gradientů. Paralelní algoritmy testoval Ing. Kruis na paralelním počítači IBM SP2 zmíněném v kapitole 7.1.1 a v heterogenní síti počítačů katedry stavební mechaniky stavební fakulty ČVUT. Pro komunikaci paralelních částí uvedených programů používal message-passing knihovnu MPI popsanou v kapitole 5.3.1.

Page 68: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

66 ČVUT, FSv, katedra mapování a kartografie

7777 Použité technologiePoužité technologiePoužité technologiePoužité technologie Pro experimenty v oblasti paralelních výpočtů jsem používal technologii

dostupnou při mém studiu na stavební fakultě, případně technologii dostupnou v mém zaměstnání. Z oblasti masivně paralelních počítačů se jedná především o počítač IBM SP2, k němuž jsem získal přístup díky experimentům v oblasti paralelních výpočtů prováděným v rámci mého doktorandského studia. Další paralelní počítač řadící se do skupiny distribuovaných paralelních počítačů NOW byl tvořen sítí pracovních stanic s operačními systémy Linux a OSF.

V experimentech jsem pro tvorbu programů používal knihovnu pro paralelní výpočty PVM a v pozdějších fázích i další knihovny pro lineární algebru a geodetické výpočty. Paralelní programy jsem zpočátku psal v jazyce C (ANSI C), v závěrečných fázích pak v jazyce C++.

7.17.17.17.1 HardwareHardwareHardwareHardware

7.1.1 SP2 Pro některé experimenty v oblasti paralelních výpočtů jsem využíval paralelní

superpočítač IBM SP2 v SSC (Společné Superpočítačové Centrum ČVUT-VŠCHT-IBM – viz [61] – dříve označované jako CIV – Centrum Intenzivních Výpočtů) k němuž jsem měl v rámci doktorandského studia přístup.

IBM SP2 je paralelní počítač s distribuovanou pamětí používající pro paralelní běh programů message-passing princip. SP2 je (jak se u paralelních systémů stává dobrým zvykem) modulární systém, který může obsahovat 2 až 512 uzlů. Uzly jsou osazeny superskalárními POWER2 RISC System RS/6000 procesory, každý uzel je vybaven lokální pamětí, diskovým prostorem a vlastní kopií operačního systému AIX. Existují tři základní typy uzlů – thin node, thin node 2 a wide node – lišící se lokálním diskovým prostorem, lokální pamětí, počtem rozšiřujících slotů, velikostí a samozřejmě i cenou. Uzly jsou v rámci SP2 propojeny vysokokapacitní propojovací sítí HPS (High Performance Switch) s rychlostí přenosu 40MBps.

Systém umožňuje rozšiřovat v případě nutnosti konfiguraci po malých přírůstcích (jeden nebo dva uzly). V konfiguraci SP2 jsou definovány dva typy uzlů – výpočetní (slouží k běhu uživatelských úloh) a uzly serverovské (poskytují služby nutné pro běh uživatelských úloh – sdílené diskové služby, konektivita, …). V konfiguraci SP2 mohou být některé uzly vyčleněny do takzvaného parallel pool, kdy tvoří výpočetní skupinu uzlů pro úlohy, které jsou zpracovávány paralelně. Uživatelská paralelní úloha pak může exkluzivně využívat přidělenou množinu uzlů pro svou práci (pro zvýšení výkonu zde existuje i možnost přímé komunikace běžících paralelních úloh bez účasti operačního systému).

Jedním ze základních předpokladů pro komerční úspěch SP2 je podpora co nejvíce programovacích modelů pro paralelní programování. Proto je pro SP2 nabízena podpora několika nejpopulárnějších programovacích modelů, k nimž patří například MPL.

MPL – Message Passing Library je knihovna pro paralelní výpočty vytvořená IBM původně jen pro systémy s distribuovanou pamětí (SP, SP2). MPL podporuje programový model SIMD, přičemž se jedná o ruční paralelizaci – uživatel musí

Page 69: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

67ČVUT, FSv, katedra mapování a kartografie

specifikovat, které operace se provádí paralelně a jejich provádění následně implementovat pomocí struktur jazyka.

Dalším podporovaným prostředkem pro paralelní výpočty je PVMe – verze knihovny PVM (viz kapitola 5.1 optimalizovaná IBM pro práci s jejich hardware), případně MPI (viz kapitola 5.3.1). Pro SP2 existuje i podpora HPF (High Performance FORTRAN [42]), která umožňuje uživateli relativně jednoduchou tvorbu programů s využitím datového paralelismu.

Uživatelské paralelní úlohy využívající parallel pool mohou být na počítači spouštěny dávkově pomocí software nazývaného LoadLeveller, který umožňuje dávkové spouštění i neparalelních úloh. SP2 Resource Manager zajišťuje přisouzení potřebného počtu paralelně spolupracujících uzlů každé paralelní úloze běžící na vytvořeném parallel pool.

IBM SP2 v SSC je v současné době (léto 2001) používán v následující konfiguraci: 21 thin nodes, 1 wide node a řídící stanice. Celkový diskový prostor na všech uzlech se blíží 250GB a kromě interního HPS jsou uzly propojeny i 10Mbps Ethernetem.

SP2 v SSC je vybaven opravdu širokou škálou prostředků pro paralelní výpočty včetně MPI, PVM, PVMe (PVM optimalizované firmou IBM), MPL; je možné používat i High Performance Fortran (HPF).

Detailní informace o aktuální hardwarové konfiguraci, programovém vybavení, organizaci přístupu a běžících projektech viz [49].

Více informací o samotném systému IBM SP2 viz. [48] a [60].

7.1.2 Heterogenní síť počítačů Při experimentech jsem kromě výše uvedeného masivně paralelního počítače IBM

SP2 používal také heterogenní síť počítačů složenou z počítačů různých výrobců, různých architektur a různého výkonu.

V testovací konfiguraci bylo zapojeno celkem pět počítačů:

● Cluster dvou serverů AlphaServer 4100 s OS OSF1 4.0d (každý ze serverů v clusteru je SMP se dvěma procesory)

● AlphaServer 4000/720 s OS OSF1 4.0d

● AlphaServer 300 4/266 s OS OSF1 4.0d

● Počítač s procesorem Intel PIII/500 s OS Linux Debian – potato 2.2.15)

Tyto počítače byly propojeny následujícími typy propojovacích sítí:

● 100 Mbit Ethernet

● Propojovací síť clusteru (interní 100Mbit, ale nezatížená vnějším provozem)

V dalším textu je tato síť označována jako malý (nebo heterogenní) Linuxový cluster.

Tato, ač na první pohled značně nevyvážená konfigurace, se ukázala ideální pro experimenty s paralelními výpočty na NOW, jelikož obsahovala prvky, které byly nehomogenní jak z hlediska architektury a datového formátu, tak z hlediska operačního systému a binárního formátu spustitelných souborů. Navíc byly jednotlivé části celého

Page 70: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

68 ČVUT, FSv, katedra mapování a kartografie

systému propojeny sítí s nehomogenním rozložením zátěže, která navíc vykazovala značné změny v čase.

Výše uvedená nehomogennost není sice ideální z hlediska reálného použití paralelního počítače, ale díky ní bylo možno testovat vliv nehomogenity na výkon paralelního počítače s, případně bez použití load balancingu. Nehomogenita operačních systémů a datových formátů navíc umožnila otestovat možnost spolupráce systémů, v nichž jsou čísla reprezentovány jiným formátem, případně jiným počtem bitů.

7.1.3 Homogenní síť počítačů Kromě výše uvedené heterogenní sítě počítačů, jsem dostal možnost, využívat na

naší katedře síť devatenácti počítačů v počítačové učebně pro své paralelní výpočty.

Síť tvořilo devatenáct totožných počítačů – počítače měly totožný hardware (procesor, osazené paměti, disky) i software (operační systém a jeho komponenty, instalovaný software, etc.).

Jednalo se o tuto konfiguraci počítačů:

● Procesor: Intel Pentium II-MMX 333MHz

● Paměť: 64MB

● Operační systém: Debian Linux (potato) 2.2.19

● Jako propojovací síť mezi těmito počítači byl použit 100 Mbit Ethernet

V dalším textu je tato síť počítačů označována jako velký (nebo homogenní) Linuxový cluster.

Díky tomu, že testování na této konfiguraci paralelního počítače jsem prováděl bez jakéhokoliv konkurenčního přístupu k hardware, lze říci, že výsledky získané z této konfigurace nebyly na rozdíl od výše zmiňovaného malého clusteru ovlivněny proměnlivou zátěží jednotlivých výpočetních uzlů způsobenou během procesů jiných uživatelů.

7.27.27.27.2 SoftwareSoftwareSoftwareSoftware

7.2.1 Linux Linux zde není zmiňován jako software používaný pro testování, ale hlavně jako

použitý operační systém. Ve stadiu příprav na experimenty s paralelními výpočty vyvstala otázka vhodného operačního systému pro použitou síť pracovních stanic, která se zdála ideální pro prvotní pokusy s paralelními výpočty.

Pro vytvoření distribuovaného paralelního počítače bylo logické použít stabilní a pokud možno i víceuživatelský operační systém, který by zajišťoval stabilitu budoucího paralelního počítače a zároveň byl vhodnou platformou pro běh uživatelských paralelních programů. Z mnoha důvodů, které zde uvedu, jsem tedy jako platformu pro své paralelní výpočty vybral Linux.

Linux je víceuživatelský, multitask operační systém, vyvíjený původně jako hobby finského studenta Linuse Torvaldse ([email protected]) na University of Helsinki. Linux je volnou reimplementací specifikace POSIXu s rozšířeními z SYSV a BSD (tváří se tedy jako Unix, ale nepochází ze stejného zdrojového kódu). Linux je

Page 71: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

69ČVUT, FSv, katedra mapování a kartografie

vyvíjen pod GNU General Public License a jeho zdrojové kódy jsou volně dostupné komukoliv. Právě tato politika otevřené dostupnosti zdrojových kódů a z ní vyplývající rychlý vývoj jsou jednou z hlavních deviz tohoto operačního systému. V současné době se Linux pro svou dostupnost a stabilitu stává stále častěji platformou pro výpočetně náročné aplikace (viz [25]).

Hardwarové požadavky pro chod Linuxu nejsou nikterak přehnané. Samotný Linux lze v jeho „okleštěné“ podobě rozběhnout na počítači s procesorem 386/SX s 1MB RAM a disketovou jednotkou – případně 5-10MB pro software. Konfigurace použitelná pro práci by měla mít minimálně 4MB RAM (8MB při použití X Window) – 64MB je rozumná velikost RAM při dnešních cenách pamětí. Základ systému pak zabere méně než 10MB na disku – instalace Linuxu z nejpopulárnějších distribucí (viz dále) pak zabere od 60 do 600MB, což je při cenách diskového prostoru celkem zanedbatelné.

Linux vzhledem k šířce vývojářské základny podporuje nespočetně druhů hardware od populárních akcelerovaných grafických karet až po značně exotický hardware. Díky otevřenosti kódu může neexistující ovladač pro konkrétní hardware vytvořit prakticky kdokoliv s dostatečnými znalostmi. Díky popularitě Linuxu však již dnes řada výrobců hardware dodává ke svým výrobkům drivery pro Linux (případně jsou již drivery přímo součástí zdrojových textů jádra). Z podporovaných platforem zmíním alespoň procesory řady 386 a jejich nástupce, počítače Amiga a Mac, pracovní stanice a servery Digital Alpha (Compaq), PowerPC a mnoho dalších včetně multiprocesorových systémů.

Dostupný zdrojový kód a volná šiřitelnost jsou lákadlem pro mnoho vývojářů, kteří mohou přispět i svým kouskem zdrojového kódu k vývoji tohoto operačního systému a na něm běžících programů. Existují tisíce programů, které lze pod Linuxem provozovat a spolu s jeho volnou šiřitelností tak dávají vzniknout různým distribucím Linuxu. Distribuce Linuxu jsou tvořeny firmami nebo zájmovými organizacemi, které vytvoří balík z jádra Linuxu a dalších aplikací, který je distribuován pod jménem distribuce. V současné době existuje několik desítek plnohodnotných distribucí Linuxu, které se liší rozsahem, poskytovanými programy, podporovanými hardwarovými platformami nebo třeba uživatelskou náročností. Další desítky distribucí jsou jazykově lokalizované, nebo jsou to miniaturní distribuce sloužící jako operační systémy pro Linuxové boxy (jednoúčelová zařízení pracující pod Linuxem) např. routery, firewally atd.

Z dnes nejpopulárnějších volně dostupných distribucí, mezi které patří například RedHat, Mandrake, Slackware a další, jsem si vybral distribuci Debian [26], a to hlavně pro relativně širokou paletu software, který je v ní distribuován, její stabilitu a Linuxovými odborníky kladně hodnocenou bezpečnost.

Instalace Linuxu na počítače s Intel kompatibilními procesory je většinou otázka několika desítek minut, přičemž instalaci je možno provádět z CD, případně s vynaložením minimální námahy i z internetu. Linux je možno v případě potřeby instalovat také z disket nebo přes paralelní port. Instalační CD je možno získat zadarmo přes internet [24], [27] nebo za malý poplatek od distributora.

Distribuce Debian již obsahuje možnost instalace softwaru pro paralelní výpočty, a to hned několika nejpopulárnějších softwarových knihoven pro distribuované výpočty (PVM a MPICH) a dokonce i ScaLAPACK (viz 5.5).

Page 72: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

70 ČVUT, FSv, katedra mapování a kartografie

Linux se tedy stal základní platformou pro mé paralelní experimenty na síti pracovních stanic (NOW). Jeho relativně snadná instalace (instalace trvá s využitím předdefinovaných profilů několik desítek minut a s využitím klonovacího software (například Norton Ghost) lze pak další stanice nainstalovat v totožné konfiguraci za několik minut) byla jedním z kladů, které mne utvrdily v jeho dalším používání, neboť síť pracovních stanic potřebnou pro testy paralelních programů jsem mohl nainstalovat a nakonfigurovat během jednoho dne.

Pro Linux mluví také široká paleta distribuovaného software, která mnohonásobně převyšovala množství software, standardně dostupného v komerčních operačních systémech, které jsem také používal (například OSF). Dostupnost Linuxu a i jeho možnost koexistence s jiným operačním systémem (například MS Windows) umožnila vytvořit během několika dní síť pracovních stanic fungující ve dne jako standardní pracovní stanice se systémem MS Windows, která se na noc měnila v distribuovaný paralelní systém pracující pod Linuxem.

Systém Linux nezklamal ani svou stabilitou. Za celou dobu používání Linuxu jsem nezaznamenal jediný případ nestability nebo dokonce pádu systému. Jeden z používaných serverů byl nepřetržitě v provozu po dobu více jak jednoho roku, zatímco fileservery s Windows NT, na kterých jsem ukládal výsledná data a zdrojové kódy, měly průměrnou dobu běhu systému bez chyby nebo pádu systému přibližně 60 dní.

7.2.2 GaMaLib a gMatVec GaMaLib a gMatVec jsou objektové knihovny, vytvořené v jazyce C++

Doc. A.Čepkem a jeho studenty na naší katedře mapování a kartografie. Tyto knihovny jsou základem projektu vyrovnání geodetických sítí GaMa, který je šířen pod obecnou GNU licencí. Základní informace o tomto projektu jsou zveřejněny na [66] a zdrojové kódy GaMaLibu a knihovny pro maticové výpočty gMatVecu jsou volně k dispozici na [68] a [69]. Projekt GaMa byl prezentován na pracovním setkání FIG na Helsinki University of Technology viz [67].

7.37.37.37.3 Programovací jazykProgramovací jazykProgramovací jazykProgramovací jazyk Ještě před začátkem svých experimentů s paralelními výpočty jsem se rozhodoval

jaký programovací jazyk by bylo vhodné použít. Z nepřeberné škály programovacích jazyků, které byly do dnešní doby vyvinuty, jen malá skupina umožňuje (s použitím speciálních knihoven nebo paralelizujících kompilátorů) paralelní programování. Mezi nejrozšířenější z nich patří C a FORTRAN.

V prvotních experimentech, kdy jsem začínal s používáním knihovny PVM, jsem se rozhodl pro jazyk C, a to z následujících důvodů. Pro PVM existuje nativní rozhranní pro jazyk C, rozhranní pro FORTRAN pouze převádí volání FORTRANu do podoby použitelné pro knihovnu v jazyce C. Ryze subjektivním důvodem bylo, že jsem jazyk C považoval za používanější než FORTRAN, dále nízkoúrovňovější a proto i rychlejší a bližší jazyku Pascal, se kterým jsem měl již značné zkušenosti. Pro seznámení s jazykem C jsem použil dle méno názoru velice kvalitní skriptum [14].

V Linuxu (který jsem zpočátku pro své experimenty používal) je implicitně k dispozici velmi kvalitní překladač GNU gcc, jenž byl volně ke stažení z [64] i pro servery Alpha s operačním systémem OSF, které jsem v pozdějších fázích do experimentů zapojil.

Page 73: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

71ČVUT, FSv, katedra mapování a kartografie

Ve fázi příprav na experiment s metodou LTS (viz 8.4) jsem se vzhledem k relativní složitosti celého problému, a k existenci C++ verzí knihoven gMatVec a GaMaLib (viz 7.2.2) a podpoře C++ v PVM, rozhodl přejít k vývojově vyšší verzi jazyka, a to k C++ [15].

I když jazyk C++ z jazyka C vychází, liší se od něj natolik (hlavně objektovým přístupem k programování, že mi zpočátku činilo velké obtíže se vzdát konvencí používaných v C (tento problém trefně postihuje [17]). Velmi užitečným se také ukázalo být skriptum [16], které mi poskytlo informace potřebné k přechodu od C k C++ dostatečně výstižnou a přitom stručnou formou.

C++ se i vzhledem k počátečním obtížím ukázalo jako neskutečně mocný a všestranný nástroj, který mi díky objektovému přístupu velmi usnadnil paralelizaci i následné ladění a úpravy vytvářeného programu.

Page 74: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

72 ČVUT, FSv, katedra mapování a kartografie

8888 ExperimentyExperimentyExperimentyExperimenty Pro seznámení se s problematikou paralelizace algoritmů jsem experimentálně

prováděl paralelizaci několika algoritmů převážně z oblasti zpracování obrazu. Informace o úlohách, které byly předmětem těchto experimentů zde uvádím současně s použitým způsobem paralelizace a s výsledky, kterých bylo pomocí paralelního zpracování dosaženo.

8.18.18.18.1 Obrazová korelaceObrazová korelaceObrazová korelaceObrazová korelace Jednou ze standardních úloh dálkového průzkumu Země je umístění družicových

snímků do mapy. Úkolem je přitom určit pro každý pixel snímku jeho souřadnice v systému, ve kterém pracujeme. K tomu se používá transformace s použitím dráhových efemerid družice nebo metoda orientace pomocí vlícovacích bodů.

Úloha obrazové korelace se v dálkovém průzkumu Země používá jak pro vlícování družicových snímků do mapy, tak i pro vlícování jednoho obrazu do druhého. Druhá uvedená úloha je pak využitelná například při konstrukci multispektrálního obrazu z několika obrazů různých vlnových pásem, nebo při vlícování snímku s nižším rozlišením do snímku s rozlišením vyšším. Metoda orientace dvou snímků pomocí vlícovacích bodů vyžaduje určení několika totožných bodů na těchto obrazových datech. Při orientaci používáme kromě snímku, který potřebujeme orientovat (transformovaný) i snímek, jehož orientace je nám známá (referenční) a jsme tedy schopni určit souřadnice jeho pixelů v námi využívaném referenčním souřadnicovém systému.

Při hledání totožných vlícovacích bodů v obou obrazech je možno použít kromě identifikace vlícovacích bodů operátorem na displeji i metodu obrazové korelace malé části jednoho obrazu s obrazem druhým. Obrazové korelace se také využívá například při automatické tvorbě digitálního modelu terénu ze získaných družicových snímků, v digitální fotogrammetrii nebo v aplikacích počítačového vidění a umělé inteligence.

8.1.1 Teoretický nástin problému Základní myšlenkou metody označované jako obrazová korelace je určit

vzájemnou polohu dvou snímků na principu maximální podobnosti jejich obrazových funkcí. Předpokládejme, že hledáme vzájemnou polohu obou snímků (referenčního a transformovaného) tak, aby si obrazy téhož vlícovacího bodu na obou snímcích odpovídaly.

Postup obrazové korelace lze pak popsat následovně. Z jednoho ze snímků (například z transformovaného) vybereme čtvercovou obrazovou submatici o velikosti M krát M pixelů, kterou budeme dále označovat jako vyhledávací oblast. Z druhého snímku (referenčního) vybereme rovněž submatici, kterou nazveme okénko a která bude mít velikost N krát N (M>N). Okénko nebo vyhledávací oblast budou v tomto případě obrazové okolí vlícovacího bodu. Okenním párem budeme pak označovat okénko a libovolnou submatici vyhledávací oblasti o velikosti N krát N pixelů.

Page 75: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

73ČVUT, FSv, katedra mapování a kartografie

Pixel – obrazový element

Vektor posunu

Okénko

Okenní pár odpovídajícísprávnému vlícování

Vyhledávací oblast

N

N

M

M

obrázek 8.1: Princip obrazové korelace

Vzájemnou podobnost různých okenních párů (které odpovídají různému vektoru translace okénka po vyhledávací oblasti) můžeme porovnávat některou podobnostní mírou. Nejčastěji se pro tento účel používá koeficient výběrové korelace (korelační koeficient) z čehož plyne i název této metody. Číselné hodnoty míry podobnosti pro všechny okenní páry tvoří pak čtvercovou korelační matici o dimenzi M-N+1. Poloha globálního maxima (nebo minima – podle použité podobnostní míry) v korelační matici poté určuje nejlepší polohu obou snímků s nejlepším ztotožněním obou obrazů vlícovacího bodu.

Podmínkou pro použití tohoto postupu je úprava okénka a vyhledávací oblasti před zpracováním tak, aby si jejich obrazové funkce byly co nejpodobnější. K tomu se používají metody geometrické transformace (korekce) obrazu, různé úpravy obrazu (filtrace, extrakce hran, zaostření) a normalizace.

Při výpočtu korelační matice určujeme pouze vektor posunu obou obrazových okolí a proto je potřeba, aby okénko i vyhledávací oblast měly stejné (nebo alespoň podobné) geometrické základy, neboť i malé geometrické zkreslení může výrazně zhoršit kvalitu obrazové korelace. Splnění požadavku podobnosti geometrických

Page 76: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

74 ČVUT, FSv, katedra mapování a kartografie

základů obrazových okolí se dá zajistit předběžnou geometrickou transformací okénka nebo vyhledávací oblasti.

Pohybující se submatice vyhledávací oblastiVyhledávací oblast

obrázek 8.2: Pohyb submatice okenního páru po vyhledávací oblasti

Úpravou obrazu (předzpracováním) docílíme odstranění šumu a zvýraznění těch charakteristik obrazu, které jsou v obou zpracovávaných okolích vlícovacího bodu stejné. Při korelaci se používají různé metody filtrace obrazu nebo detekce hran. Záleží však vždy na konkrétních obrazových datech zda bude vhodné danou metodu předzpracování použít.

Normalizace obrazu vychází z předpokladu, že statistické rozdělení obrazových funkcí vyhledávací oblasti a okénka patří do stejné skupiny rozdělení. Normalizací obrazu se jim pak přisuzují stejné parametry. Exaktní normalizace se provádí převedením obrazových funkcí okenního páru na stejnou střední hodnotu a rozptyl. Tato metoda je dosti časově náročná – vyhledávací oblast je potřeba takto modifikovat (M-N+1)2 krát. Proto se často používá pouze přibližná normalizace, která převádí okénko a vyhledávací oblast na stejnou střední hodnotu i za cenu možného snížení přesnosti výsledků.

Algoritmy pro obrazovou korelaci lze rozdělit podle kvantování obrazových funkcí okenního páru do tří skupin:

● Víceúrovňové korelátory pracují s obrazy kvantovanými do n úrovní šedi (n>2), tedy například s jednotlivými složkami barevného snímku, nebo s šedotónovým obrazem.

● Binární korelátory pracují s binárním obrazem, ve kterém může jeden obrazový bod nabývat pouze dvou barev (např. černá a bílá). Takovýto obraz můžeme dostat například po prahování (prahování je postup, při kterém je obrazovým elementům, které mají hodnotu větší než určitá mez (práh), přisouzena určitá hodnota (1) a obrazovým elementům s hodnotou menší než práh je přisouzena hodnota 0).

● Smíšené korelátory pracují s jedním víceúrovňovým obrazem a jedním obrazem kvantovaným binárně. Použijeme je například budeme-li chtít

Page 77: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

75ČVUT, FSv, katedra mapování a kartografie

transformovat šedotónový (víceúrovňový obraz) obraz do scanované mapy (monochromatický obraz).

Víceúrovňové obrazy mají tu vlastnost, že při korelaci závisí přesnost na podobnosti obou předzpracovaných okolí a na množství informací, které o nich máme. Množství informace pak závisí na velkosti těchto okolí a na počtu úrovní šedi v obraze. Pro závislost přesnosti korelace na kvantování vstupních obrazů pak lze odvodit vztah, z něhož plyne, že okénko pro binární korelátor by muselo být 72 násobně větší než okénko pro obraz kvantovaný na 256 úrovní, aby bylo dosaženo stejné kvality korelace. Proto se ve většině případů používá víceúrovňová korelace. Může však nastat i situace, kdy při zpracování silně degradovaných obrazů je možné provést korelaci jen s využitím některé z metod detekce hran a následného použití binárního korelátoru na hranový obraz.

8.1.1.1 Binární korelátory Binární korelátory slouží k výpočtu míry podobnosti dvou binárních obrazů.

První ze dvou nejpoužívanějších podobnostních měr přičte k podobnostní míře 1, pokud jsou hodnoty odpovídajících si pixelů v okenním páru rovny 1. Druhý z používaných algoritmů přičte k podobnostní míře 1 v případě rovnosti hodnot odpovídajících si pixelů. V opačném případě pak od míry podobnosti odečte 1. Výhodou těchto algoritmů je jejich jednoduchost a tím i velká rychlost. Nevýhodou je pak již dříve zmíněná nízká spolehlivost při malé velikosti okénka.

8.1.1.2 Smíšené korelátory U smíšené korelace lze výpočet míry podobnosti také provádět sčítáním

(odečítáním) víceúrovňového kvantovaného obrazu, který je obvykle upraven přibližnou normalizací. Tento postup je výpočetně výhodný (z důvodu své jednoduchosti) a spolehlivý.

8.1.1.3 Víceúrovňové korelátory Tyto korelátory jsou nejpoužívanější z důvodů vyšší přesnosti korelace pro

víceúrovňový obraz při stejné velikosti okénka. Pokusím se nyní uvést alespoň některé z používaných podobnostních měr. V následujícím přehledu bude použita uvedená symbolika.

(k, l) Hledaný vektor translace N Velikost okénka M Velikost vyhledávací oblasti i, j Celočíselné souřadnice pixelu v obrazovém okénku

x(i, j) Diskrétní obrazová funkce okénka y(i, j) Diskrétní obrazová funkce vyhledávací oblasti r(k, l) Hodnota podobnostní míry pro daný vektor translace

První z podobnostních měr je odvozena od korelačního koeficientu definovaného v následující rovnici, kde A, B jsou náhodné veličiny, c(A, B) je jejich kovariance a σ(A) σ(B) jsou jejich rozptyly.

Page 78: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

76 ČVUT, FSv, katedra mapování a kartografie

(8.1.1)

)().(),(),(BA

BAcBAσσ

ρ =

Koeficient výběrové korelace je pak odhadem korelačního koeficientu pro daný okenní pár

(8.1.2)

),(.),(

),(lkss

lkslkr

yyxx

xy=

kde rozptyly vypočteme jako

(8.1.3)

[ ][ ]⌠⌠= =

−++−−=N

i

N

jxy lkYljkiyXjixNlks

1 1

2 ),(),(.),()1/(1),(

(8.1.4)

[ ]⌠⌠= =

−−=N

i

N

jxx XjixNs

1 1

22 ),()1/(1

(8.1.5)

[ ]⌠⌠= =

−++−=N

i

N

jyy lkYljkiyNlks

1 1

22 ),(),()1/(1),(

(8.1.6)

⌠⌠= =

=N

i

N

jjixNX

1 1

2 ),(/1

(8.1.7)

⌠⌠= =

++=N

i

N

jljkiyNY

1 1

2 ),(/1

Výhodou koeficientu výběrové korelace je, že při jeho použití nemusíme obraz normalizovat. Jeho výpočet je však poměrně zdlouhavý a tím pádem je celý proces korelace časově náročný. Zrychlení celého výpočtu lze dosáhnout předběžnou normalizací obrazového okolí na stejné rozptyly sxx=syy , poté dostáváme takzvaný seminormalizovaný korelační koeficient

(8.1.8)

xx

xy

slks

lkr),(

),( =

Tento seminormalizovaný koeficient při normalizaci na nulovou střední hodnotu (X=Y=0) vypadá následovně

Page 79: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

77ČVUT, FSv, katedra mapování a kartografie

(8.1.9)

��

��

= =

= =

++= N

i

N

j

N

i

N

j

jix

ljkiyjixlkr

1 1

2

1 1

),(

),().,(),(

Ačkoliv tato úprava vypadá komplikovaně, je výhodné ji použít, neboť výraz

��= =

N

i

N

jjix

1 1

2 ),( ve jmenovateli je nutno vypočíst jen jednou pro všechny polohy okénka.

V další skupině podobnostních měr se používá metrický princip. Jako míry lze chápat vzdálenost definovanou ve vektorovém prostoru všech matic dimenze N krát N. Jako míry podobnosti se nejčastěji používají

● součet absolutních hodnot rozdílů v okenním páru

(8.1.10)

��= =

++−=N

i

N

jljkiyjixlkr

1 1

),(),(),(

● součet kvadrátů rozdílů

(8.1.11)

[ ]��= =

++−=N

i

N

jljkiyjixlkr

1 1

2),(),(),(

Obě předchozí míry vyžadují, aby byl okenní pár předem normalizován na stejnou střední hodnotu a rozptyl.

Někdy se po výpočtu korelační matice provádí zpřesnění polohy hledaného extrému interpolací jeho neceločíselné polohy. Extrém v korelační matici má vždy celočíselnou polohu vzhledem k diskrétnímu charakteru obrazových dat. Tato interpolace se může stát nezbytnou zvláště v případě, kdy dva sousední prvky v korelační matici dosáhly stejné extrémní hodnoty.

Pro účely interpolace lze diskrétní hodnoty korelační matice aproximovat spojitou plochou. Její parametry se nejčastěji určují metodou nejmenších čtverců (MNČ) z okolí extrémního bodu o velikosti 3 krát 3 nebo 5 krát 5 pixelů. Pro aproximaci se používá polynom 2. nebo 3. stupně, rotační paraboloid, nebo kužel.

8.1.2 Paralelní zpracování Úloha obrazové korelace je vhodnou úlohou pro paralelní zpracování, protože

obsahuje velký počet elementárních operací, které lze řešit paralelně, a jen malá část úlohy vyžaduje sekvenční řešení.

Pro řešení paralelní obrazové korelace jsem použil princip divide and conquer (rozděl a panuj). Celý proces zpracování je kontrolován hlavním (master) procesem a většinu operací vykonávají podřízené (slave) procesy. Hlavní (řídící) proces vykonává sekvenční operace, které nelze zpracovat paralelně a zprostředkovává řízení a komunikaci s podřízenými procesy. Každý z podřízených procesů pak provádí určenou část paralelního výpočtu podle instrukcí řídícího procesu ve spolupráci s ostatními paralelně pracujícími procesy.

Page 80: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

78 ČVUT, FSv, katedra mapování a kartografie

Paralelní obrazová korelace začíná spuštěním řídícího procesu. Jemu je jako parametr předáno umístění obrazových dat a počet procesů P, které mají na řešení úlohy spolupracovat. Řídící proces poté vypočte velikosti vstupních dat, která budou podřízené procesy zpracovávat a velikosti výstupních dat, která každý z podřízených procesů vypočte.

Vstupní data jednotlivého procesu tvoří část vyhledávací oblasti a to taková část, aby proces mohl provést výpočet jemu přidělené části korelační matice bez jakékoliv komunikace s ostatními procesy nebo řídícím procesem. Jednotlivé části vyhledávací oblasti přisouzené jednotlivým podřízeným procesům se tedy překrývají.

Výstupní data, která musí každý paralelní proces vypočíst jsou částí korelační matice, která je takto rozdělena na P částí, jejichž hodnoty jsou v průběhu výpočtu zpracovávány paralelně všemi procesy.

Po určení velikostí korelačních submatic a datových oblastí spustí řídící proces příslušný počet paralelních procesů, které budou provádět paralelní korelaci. Počet paralelních procesů je třeba vhodně zvolit v závislosti na počtu processing elements, kterými je vybaven paralelní počítač, respektive kterých chceme při paralelním zpracování použít.

Vyhledávací oblast Korelační matice

korelační submatice 1

korelační submatice 2

korelační submatice 3

korelační submatice 4

oblast 1

oblast 2

oblast 3

oblast 4

obrázek 8.3: Rozdělení korelace obrazu mezi paralelně pracující procesy

Pokud se podaří všechny podřízené procesy úspěšně spustit, zašle jim řídící proces informace o velikostech datových bloků, které jim byly přisouzeny a informace o velikosti korelačních submatic jejichž hodnoty mají vypočítat. Poté jim zasílá potřebná vstupní data včetně obrazových dat okénka.

Pokud komunikace proběhla úspěšně a všechny procesy mají potřebná data a informace, je zahájena paralelní část výpočtu obrazové korelace.

Každý paralelně pracující proces provádí obrazovou korelaci nad jemu přisouzenou částí obrazu. Postupně tedy počítá hodnoty části korelační matice, která mu byla řídícím procesem předurčena. Výsledná data každý proces ukládá ve své lokální paměti, aby výpočet nebyl zdržován předáváním dat po síti.

Page 81: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

79ČVUT, FSv, katedra mapování a kartografie

Poté co všechny procesy ukončily výpočet, oznámí tuto skutečnost řídícímu procesu. Teoreticky by měly procesy ukončit výpočet současně, ale vzhledem k možnému nerovnoměrnému zatížení jednotlivých processing elements dalšími zpracovávanými úlohami tomu tak nemusí být. Tímto okamžikem skončila paralelní část výpočtu a iniciativu přebírá zpět řídící proces.

Řídící proces po ukončení výpočtu vyzve jednotlivé paralelní procesy, aby mu zaslaly výsledná data. Tyto data přijme postupně od jednotlivých procesů a uloží je v určeném formátu. Poté jsou podřízené procesy ukončeny.

Vstupy pro paralelní řešení obrazové korelace tvoří víceúrovňová obrazová data pro vyhledávací oblast a okénko. Tato obrazová data jsou uložena ve formátu TIFF (Tagged Image File Format) a jsou načítána s použití funkcí knihovny libtiff (volně dostupná knihovna pro zpracování obrazů ve formátu TIFF [65]).

Výstupem řešení je korelační matice uložená v textovém tvaru do souboru a tatáž korelační matice uložená jako víceúrovňová obrazová data. Textová data tak lze použít pro další zpracování (hledání maxima, interpolace, srovnání apod.), zatímco grafická data lze použít pro názornější grafickou prezentaci významu korelační matice.

8.1.3 Dosažené výsledky Jako podobnostní míru jsem při paralelní obrazové korelaci použil koeficient

výběrové korelace vypočtený podle výše uvedených vzorců. Protože použité obrazy byly již příslušně upraveny nebylo nutné provádět geometrickou transformaci ani další úpravy obrazu. Díky použitým rovnicím pro výpočet koeficientu výběrové korelace také nebylo třeba provádět normalizaci obrazu.

Po odladění programu jsem prováděl testování délky běhu paralelního programu pro různé počty paralelně pracujících procesorů. K testování jsem použil části družicových dat zapůjčených naší laboratoří dálkového průzkumu Země. Víceúrovňová data kvantovaná na 256 úrovní šedi byla uložena v grafickém formátu TIFF. Vyhledávací oblast měla velikost 200 krát 200 pixelů a jako okénko jsem použil část obrazu o velikost 110 krát 110 obrazových bodů.

Při testování byl měřen skutečný čas výpočtu jednotlivých slave procesů a do měřených časů nebyl započítán čas potřebný pro načtení zdrojových dat a odeslání výsledných dat. Testy byly prováděny na jednom až šesti výpočetních uzlech počítače IBM SP2 v neexkluzivním režimu. Pro testování bylo naměřeno padesát opakování pro každou konfiguraci paralelního počítače.

Page 82: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

80ČVUT, FSv, katedra mapování a kartografie

1PE čas [s] 2PE čas [s] 3PE čas [s] 4PE čas [s] 5PE čas [s] 6PE čas [s]33,60 21,36 21,05 15,43 12,29 11,5933,60 31,01 21,08 15,54 12,39 13,2133,60 31,29 21,43 15,55 12,61 15,0933,60 31,29 21,44 15,60 12,72 15,2133,60 31,33 21,65 15,63 12,95 15,4333,60 31,33 21,78 16,00 15,75 15,7233,60 31,50 29,83 22,13 17,86 15,8233,60 31,53 30,38 22,17 17,88 15,8333,60 31,53 30,44 22,21 18,04 15,8833,61 31,55 30,47 22,28 18,04 16,0333,61 31,58 30,53 22,29 18,07 16,0833,61 31,59 30,55 22,40 18,08 16,1133,61 31,61 30,60 22,41 18,09 16,1133,61 31,68 30,74 22,48 18,10 16,1233,61 31,71 30,75 22,48 18,13 16,1233,61 31,72 30,77 22,49 18,14 16,1533,61 31,73 30,82 22,56 18,19 16,1533,61 31,79 30,91 22,58 18,23 16,1533,61 31,82 30,94 22,62 18,25 16,2133,61 31,82 30,98 22,63 18,27 16,2133,62 31,89 30,98 22,65 18,32 16,2833,62 31,92 31,11 22,71 18,35 16,2833,62 31,95 31,11 22,71 18,36 16,3033,63 31,96 31,16 22,72 18,36 16,3133,63 31,96 31,16 22,73 18,37 16,3133,64 31,98 31,17 22,74 18,38 16,3233,64 32,01 31,19 22,75 18,38 16,3233,65 32,02 31,23 22,76 18,40 16,3233,65 32,02 31,23 22,78 18,42 16,3333,65 32,05 31,23 22,81 18,43 16,3333,65 32,07 31,26 22,87 18,45 16,34

Tabulka naměřených časů při paralelní obrazové korelaci (tabulka pokračuje na následující stránce)

Page 83: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

81ČVUT, FSv, katedra mapování a kartografie

1PE čas [s] 2PE čas [s] 3PE čas [s] 4PE čas [s] 5PE čas [s] 6PE čas [s]33,65 32,09 31,29 22,89 18,48 16,3533,66 32,09 31,29 22,90 18,50 16,3533,66 32,09 31,40 22,93 18,51 16,3533,67 32,21 31,42 22,95 18,51 16,3633,67 32,22 31,45 22,98 18,57 16,3833,67 32,23 31,46 22,98 18,60 16,3833,67 32,24 31,46 22,98 18,61 16,4033,68 32,30 31,47 23,00 18,62 16,4733,69 32,33 31,49 23,03 18,64 16,4933,70 32,37 31,53 23,03 18,65 16,5233,71 32,39 31,54 23,07 18,65 16,5233,72 32,41 31,60 23,09 18,72 16,5633,78 32,46 31,61 23,10 18,73 16,8133,82 32,47 31,68 23,10 18,80 16,8733,83 32,48 31,70 23,14 18,85 16,9233,87 32,56 31,77 23,16 18,90 17,1233,89 32,60 31,80 23,17 18,94 17,2633,98 32,71 32,09 23,18 18,97 17,5452,98 32,74 32,40 23,26 19,04 18,04

Průměr 34,05 Průměr 31,75 Průměr 30,01 Průměr 21,91 Průměr 17,79 Průměr 16,17Medián 33,64 Medián 31,96 Medián 31,16 Medián 22,73 Medián 18,37 Medián 16,31

Legenda:- Medián- Odlehlé hodnoty - svědčí o tom, že celkový výsledek je zkreslen nerovnoměrným zatížením počítače v průběhu měření- Odlehlá hodnota - vzniklá zřejmě jednorázovým zatížením systému v průběhu měření (odstraněna)

tabulka 8.1: Tabulka naměřených časů při paralelní obrazové korelaci

Page 84: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

82 ČVUT, FSv, katedra mapování a kartografie

Počet použitých procesorů 1 2 3 4 5 6Čas [sec] 33,6 32,0 31,2 22,7 18,4 13,3

tabulka 8.2: Medián naměřených časů při paralelní obrazové korelaci

Časy paralelní obrazové korelace

33,6 32,0 31,2

22,718,4

13,3

0,05,0

10,015,020,025,030,035,040,0

1 2 3 4 5 6

Počet použitých procesorů

Čas

[sec

]

graf 8.1: Časy naměřené při paralelní obrazové korelaci

Naměřené časy byly mírně ovlivněny proměnlivou zátěží jednotlivých procesorů paralelního počítače během testovacího výpočtu. V prvním sloupci tabulky je uveden čas který byl dosažen s použitím sekvenčního algoritmu, v dalších sloupcích pak časy dosažené použitím paralelního algoritmu na jednom až šesti paralelně pracujících procesorech.

Zrychlení dosažené paralelizací

1

2

3

4

5

6

7

1 2 3 4 5 6

Počet procesorů

Výko

nnos

t

Lineární růst výkonuNaměřený růst výkonu

graf 8.2: Růst výkonu v závislosti na počtu použitých procesorů

Jak je vidět z předchozího grafu, růst výkonu dosahovaný paralelizací této úlohy je podle předpokladu sublineární. To je samozřejmě způsobeno nedokonalou paralelizací algoritmu, tedy neodstranitelnou sekvenční částí celého procesu, která vychází z podstaty úlohy. Paralelizace algoritmu byla v tomto případě vhodným krokem, protože přinesla při použití šesti procesorů přibližně trojnásobné zrychlení.

Page 85: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

83ČVUT, FSv, katedra mapování a kartografie

8.28.28.28.2 Obrazové filtryObrazové filtryObrazové filtryObrazové filtry Jednou z velmi často používaných úloh v dalších oblastech zabývajících se

zpracováním digitálních obrazových dat je úprava (předzpracování) použitých obrazových dat. Tato operace má za cíl zlepšit kvalitu zpracovávaného obrazu tak, aby obraz lépe odpovídal požadavkům kladeným na něj při dalším zpracování. Cílem takovýchto úprav může být také extrakce informací obsažených v obraze, které z něj nejsou pouhým okem patrné nebo je obtížné je rozlišit.

Mezi operace sloužící k úpravě digitálních obrazových dat patří mimo jiné úprava jasu a kontrastu obrazu, zaostření obrazu, odstranění šumu, zahlazování hran, prahování, detekce hran nebo filtrace obrazových dat.

Mezi těmito operacemi jsem si vybral obrazovou filtraci jako vhodnou úlohu pro paralelní řešení. Úloha filtrace spočívá v postupné aplikaci obrazových filtrů na celý zdrojový obraz. Výsledkem je pak upravený obraz, u kterého může aplikace obrazového filtru způsobit zaostření, zvýraznění nebo vylišení hran, úpravu kontrastu a mnoho dalších efektů. Pro svůj experiment jsem si zvolil filtry sloužící pro detekci hran a zaostření obrazu.

8.2.1 Teoretický nástin problému Pro další úvahy předpokládejme, že filtrovaný obraz je víceúrovňový, kvantovaný

na 256 úrovní šedi. Takovýto šedotónový obraz můžeme získat například jako jedno barevné pásmo z barevného 24-bitového obrazu.

8.2.1.1 Detekce hran V takovémto šedotónovém obraze budeme hranou rozumět nespojitost obrazové

funkce, čili místo v obraze, kde se výrazně nebo skokem mění hodnota pixelu. Podle konfigurace obrazových bodů, kterými jsou hrany tvořeny, můžeme pak tyto rozdělit do tří základních skupin:

● hrany tvořené světlým objektem na tmavém pozadí, nazývané střechové

● příkopové hrany, tvořené tmavým objektem na světlém pozadí

● hrany stupňové, které jsou tvořeny rozhraními mezi objekty s různou světlostí.

K detekci hran se často používají obrazové filtry, které pracují s malými částmi obrazu, což značně zjednodušuje celý postup zpracování. Také díky tomu lze zpracování obrazu rozdělit na menší celky, které lze s výhodou zpracovávat paralelně. Při zpracování obrazu pomocí obrazových filtrů se okénko obrazového filtru (nejčastěji o velikosti 3x3 nebo 5x5 pixelů) pohybuje po zpracovávaném obraze a výsledkem aplikace filtru na obraz je hodnota hledaného pixelu výsledného obrazu. Vzhledem k tomu, že hodnota filtru je počítána pro středový bod matice filtru, je získaný obraz o několik pixelů menší než obraz zdrojový (velikost filtru – 1). Tomu lze zamezit generováním umělých dat pro výpočet hodnot filtru pro hraniční pixely zdrojového obrazu (je možné okrajové řádky a sloupce obrazu pouze zkopírovat, nebo je možnost použít extrapolace).

Page 86: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

84 ČVUT, FSv, katedra mapování a kartografie

Legenda:

Zpracovávaný bitmapový obraz Velikost výsledného obrazu Maska použitého filtru Pixel reprezentovaný výslednou hodnotou použitého filtru Směr pohybu masky filtru

obrázek 8.4: Princip aplikace obrazového filtru

Speciální množinou obrazových filtrů je skupina filtrů umožňujících zvýraznění či detekci hran v obraze. Aplikací těchto filtrů na zpracovávaný obraz pak získáme obraz, ve kterém jsou všechny domnělé hrany zvýrazněny, případně jsou z obrazu ponechány pouze tyto hrany a ostatní informace jsou potlačeny. V takovémto obraze pak stupně šedi odpovídají míře přítomnosti hrany v daném místě obrazu. Vzniká tedy obraz, ve kterém vystupují hrany tvořené pixely vysokých hodnot z pozadí tvořeného pixely nízkých, téměř nulových hodnot.

Při takovémto postupu filtrace je většinou nalezeno nadbytečné množství hran, jelikož jako hrany jsou označeny i hrany uvnitř objektů, případně i pixely, které na hranách neleží. Z toho důvodu je po provedené filtraci ještě nutno výsledný obraz dále upravovat prahováním a získané hrany ještě ztenčovat.

Page 87: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

85ČVUT, FSv, katedra mapování a kartografie

Takto získaný obraz se dá dále využít pro segmentaci či rozpoznávání obrazu, pro vylišení liniových prvků, případně jako další vodítko pro klasifikaci.

8.2.2 Použité obrazové filtry Pro program paralelní filtrace obrazu byly použity následující obrazové filtry,

které patří mezi klasické filtry pro detekci a zvýraznění hran viz [4] a [3].

8.2.2.1 Zvýraznění hran Laplaceovský operátor 1

0 -1 0

-1 4 -1

0 -1 0

B C D

E F G

H I J

obrázek 8.5: 1. Laplaceovský operátor (lap1)

(8.2.1) IGECFG lap −−−−= .4)1(

Tento operátor provádí pouze mírné zvýraznění hran v obraze. Na obraze nejsou patrná žádná větší zkreslení, hrany jsou výraznější.

Laplaceovský operátor 2

-1 -1 -1

-1 8 -1

-1 -1 -1

B C D

E F G

H I J

obrázek 8.6: 2. Laplaceovský operátor (lap2)

(8.2.2) JIHGEDCBFG lap −−−−−−−−= .8)2(

Druhý Laplaceovský operátor silně zvýrazňuje hrany v obraze. I dříve nezřetelné hrany jsou výrazné, obraz je značně světlejší a jsou zvýrazněny i poruchy v obraze, textury jsou znehodnocené. Je stejně výpočetně náročný jako lap1.

Page 88: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

86 ČVUT, FSv, katedra mapování a kartografie

8.2.2.2 Zaostření obrazu Sharpening operator

F X

Y Z

obrázek 8.7: Sharpening operátor (sha)

(8.2.3)

22)( yxF

FXyFYx

sha ∆+∆=

−=∆−=∆

Matice zaostřovacího operátoru má velikost 2 x 2 pixely. Obraz je vyváženější, dříve viditelné hrany jsou zvýrazněny, dříve nezřetelné hrany jsou viditelné, textury zůstávají nepoškozené.

8.2.2.3 Detekce hran Robertsův operátor

F X

Y Z

obrázek 8.8: Robertsův operátor (rob)

(8.2.4)

YXZFF rob −+−=)(

Robertsův operátor ve výsledném obraze ponechává pouze nejvýraznější stupňové hrany.

Page 89: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

87ČVUT, FSv, katedra mapování a kartografie

Sobelův operátor

-1 -2 -1

0 0 0

1 2 1

B C D E F G H I J

-1 0 1

-2 0 2

-1 0 1

B C D E F G H I J

obrázek 8.9: Sobelův operátor - 2 kernely (sob2)

(8.2.5) ( )).2.2(),.2.2(max)2( HEBJGDDCBJIHF sob −−−++−−−++=

Tento operátor ve výsledném obraze ponechává velmi výrazné příkopové a střechové hrany a méně výrazné stupňové hrany. Ze dvou získaných hodnot pro daný pixel uvažujeme tu větší.

-1 0 1

-2 0 2

-1 0 1

-2 -1 0

-1 0 1

0 1 2

-1 -2 -1

0 0 0

1 2 1

0 -1 -2

1 0 -1

2 1 0

0 1 2

-1 0 1

-2 -1 0

1 2 1

0 0 0

-1 -2 -1

2 1 0

1 0 -1

0 -1 -2

1 0 -1

2 0 -2

1 0 -1

obrázek 8.10: Sobelův operátor - 8 kernelů (sob8)

Výpočet je obdobný jako sob2, pro daný pixel je použita maximální hodnota z 8-mi vypočtených. Ve výsledném obraze ponechává velmi výrazné příkopové a střechové hrany a méně výrazné stupňové hrany. Ačkoliv je výpočetně osmkrát náročnější, v testovaném obraze nejsou mezi sob2 a sob8 výraznější viditelné změny.

Page 90: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

88 ČVUT, FSv, katedra mapování a kartografie

Prewittův operátor

-1 -1 -1

0 0 0

1 1 1

B C D E F G H I J

-1 0 1

-1 0 1

-1 0 1

B C D E F G H I J

obrázek 8.11: Prewittův operátor - 2 kernely (pre2)

(8.2.6) ( ))(),(max)2( HEBJGDDCBJIHF pre −−−++−−−++=

Podobně jako sob2 zanechává pre2 ve výsledném obraze velmi výrazné příkopové a střechové hrany a méně výrazné stupňové hrany, i když oproti sob2 je méně citlivý. Při výpočtu hodnoty hledaného pixelu uvažujeme vyšší ze dvou vypočtených hodnot.

-1 0 1

-1 0 1

-1 0 1

-1 -1 0

-1 0 1

0 1 1

-1 -1 -1

0 0 0

1 1 1

0 -1 -1

1 0 -1

1 1 0

0 1 1

-1 0 1

-1 -1 0

1 1 1

0 0 0

-1 -1 -1

1 1 0

1 0 -1

0 -1 -1

1 0 -1

1 0 -1

1 0 -1

obrázek 8.12: Prewittův operátor - 8 kernelů (pre8)

Výpočet je obdobný jako u pre2, pro daný pixel je použita maximální hodnota z 8-mi vypočtených. Stejně jako u Sobelova operátoru je zde rozdíl mezi pre2 a pre8 minimální, víceméně bez viditelných změn.

Page 91: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

89ČVUT, FSv, katedra mapování a kartografie

Lineární operátor

-1 -1 -1

2 2 2

-1 -1 -1

B C D E F G H I J

-1 2 -1

-1 2 -1

-1 2 -1

B C D E F G H I J

obrázek 8.13: Lineární operátor - 2 kernely (lin2)

(8.2.7) ( )).2.2.2(),.2.2.2(max)2( JGDHEBIFCJIHDCBGFEF lin −−−−−−++−−−−−−++=

Lineární operátor zanechává ve výsledném obraze stopy výrazných stupňových hran, má však problémy u méně výrazných příkopových hran. Celkově jsou detekované hrany neostré, někdy dvojité.

-1 2 -1

-1 2 -1

-1 2 -1

-1 -1 2

-1 2 -1

2 -1 -1

-1 -1 -1

2 2 2

-1 -1 -1

2 -1 -1

-1 2 -1

-1 -1 2

obrázek 8.14: Lineární operátor - 4 kernely (lin4)

Výpočet je obdobný jako u lin2, Výsledný pixel má maximální hodnotu ze čtyřech vypočtených. Kvalitnější výsledek než lin2, stále jsou však detekované hrany podivně roztřepené.

Robinsonův operátor

-1 -1 -1

1 -2 1

1 1 1

1 -1 -1

1 -2 -1

1 1 1

1 1 -1

1 -2 -1

1 1 -1

1 1 1

1 -2 -1

1 -1 -1

-1 -1 1

-1 -2 1

1 1 1

-1 1 1

-1 -2 1

-1 1 1

1 1 1

-1 -2 1

-1 -1 1

1 1 1

1 -2 1

-1 -1 -1

obrázek 8.15: Robinsonův operátor - 8 kernelů (rob8)

Page 92: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

90 ČVUT, FSv, katedra mapování a kartografie

Výpočet obdobný jako u jiných operátorů s osmi maticemi. Výsledky srovnatelný s sob8 a pre8 i když detekované hrany nejsou tak ostré.

Kirschův operátor

5 5 5

-3 0 -3

-3 -3 -3

-3 5 5

-3 0 5

-3 -3 -3

-3 -3 5

-3 0 5

-3 -3 5

-3 -3 -3

-3 0 5

-3 5 5

5 5 -3

5 0 -3

-3 -3 -3

5 -3 -3

5 0 -3

5 -3 -3

-3 -3 -3

5 0 -3

5 5 -3

-3 -3 -3

-3 0 -3

5 5 5

obrázek 8.16: Kirschův operátor - 8 kernelů (kir)

Tento operátor velmi zřetelně detekuje i sebemenší hrany, naproti tomu díky své citlivosti je ve výsledném obraze příliš elementů, které jsou pravděpodobně jen zvýrazněné poruchy obrazu.

8.2.3 Paralelní zpracování Úlohu filtrace obrazových dat jsem opět paralelizoval přístupem divide and

conquer (rozděl a panuj). Při startu paralelního programu může uživatel zvolit typ filtru, který chce na data aplikovat. Program umožňuje aplikaci následujících filtrů:

● Robertsův gradientový operátor, ● Prewittův operátor se 2, případně s 8 maticemi, ● Sobelův operátor se 2, případně s 8 maticemi, ● Lineární operátor se 2, případně se 4 maticemi, ● Robinsonův operátor s 8 maticemi, ● Kirschův operátor s 8 maticemi.

Uživatel může specifikovat i počet procesů, které mají danou úlohu zpracovávat, jinak je jako počet procesů použit počet procesorů, kterými je vybaven použitý paralelní počítač.

Program vytvoří příslušný počet paralelních procesů a rozdělí jim části zpracovávaného obrazu. Spolu s informací o parametrech filtru, který mají použít jim poté zašle i potřebná obrazová data. Procesy potom paralelně provedou přidělenou část výpočtu. V této fázi není nutná téměř žádná komunikace mezi procesy navzájem, nebo procesy a řídícím programem, což přispívá k urychlení vlastního paralelního zpracování. Po ukončení zpracování zašlo paralelní procesy řídícímu programu vypočtená data a ten z nich poté složí výsledný obraz a zapíše ho na disk.

Page 93: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

91ČVUT, FSv, katedra mapování a kartografie

8.2.4 Dosažené výsledky Časové testy jsem prováděl na počítači IBM SP2 v SSC (CIV) – viz 7.1.1 –

s testovacím družicovým obrazem o velikosti 3000x3000 pixelů, který poskytla naše laboratoř dálkového průzkumu Země.

Měřené časy uvádějí čas paralelního výpočtu. Každý paralelně pracující proces registruje dobu, po kterou provádí zpracování části dat, kterou má přisouzenu. Maximální hodnota z hodnot naměřených všemi paralelními procesy je brána jako doba běhu paralelní části programu.

V naměřených časech není tedy zahrnut čas potřebný pro načítání dat z disku a zápis výsledných dat.

Jménofiltru 1 2 3 4 5 6

lap1 9,6 4,3 2,7 1,8 1,3 1,2lap2 12,2 5,8 3,5 2,8 2,1 1,9sha 15,5 8,2 7,4 7,0 5,7 5,5rob 5,0 2,2 1,3 0,8 0,6 0,4sob2 12,6 6,1 3,8 2,8 2,2 2,1sob8 27,1 13,4 8,8 6,4 5,8 5,6pre2 6,1 5,5 3,6 2,4 2,1 1,8pre8 22,7 11,4 7,4 5,5 4,5 4,3lin2 13,0 6,3 4,0 3,0 2,4 2,2lin4 18,4 8,6 5,8 4,6 4,5 3,8rob8 27,0 13,6 8,7 6,4 5,2 4,3kir 36,1 26,1 11,6 8,5 7,8 6,4

Počet procesů

tabulka 8.3: Výsledky časových testů paralelní obrazové filtrace

Získané časy byly bohužel nepříznivě ovlivněny změnami zatížení jednotlivých procesorů během provádění testů. Tyto nepředvídatelné změny zátěže byly způsobeny během paralelního programu v nededikovaném režimu za současného běhu úloh jiných uživatelů. Nedefinovaná doba běhu a zátěž generovaná „parazitujícími“ programy měla za následek zkreslení výsledků naměřených v desítkách opakování.

Page 94: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

92ČVUT, FSv, katedra mapování a kartografie

Výsledky časových testů paralelní obrazové filtrace

0,0

5,0

10,0

15,0

20,0

25,0

30,0

35,0

40,0

1 2 3 4 5 6

Počet použitých procesorů

Čas

[sec

]

lap1lap2sharobsob2sob8pre2pre8lin2lin4rob8kir

graf 8.3: Závislost výsledných časů na počtu použitých procesorů

Page 95: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

93ČVUT, FSv, katedra mapování a kartografie

Výsledný nárůst výkonu

1

2

3

4

5

6

7

8

9

10

11

12

13

1 2 3 4 5 6

Počet použitých procesorů

Výko

n

lap1

lap2

sha

rob

sob2

sob8

pre2

pre8

lin2

lin4

rob8

kir

lineární

graf 8.4: Výsledný nárůst výkonu při paralelní obrazové filtraci

Page 96: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

94 ČVUT, FSv, katedra mapování a kartografie

8.2.5 Hodnocení Z grafu nárůstu výkonu je patrné, že růst výkonu se pohybuje kolem hranice

linearity. Není pravděpodobné, že by superlineární růst výkonu u operátorů lap1 a rob a sublineární růst výkonu u operátorů sha a pre2 byl výsledkem provedené paralelizace algoritmu. Spíše se, s ohledem na velikost naměřených časů, jedná o výsledek zmiňovaných odchylek v zátěži systému během běhu testů, případně nerovnoměrné zátěže jednotlivých výpočetních uzlů během výpočtu (jelikož výsledný čas je maximální hodnotou z jednotlivých výpočetních uzlů).

Z výše uvedeného závěru plyne, že měření časů na nerovnoměrně zatíženém systému, v koincidenci s poměrně krátkým časem výpočtu, nemá přílišnou vypovídací hodnotu s ohledem na zjištění nárůstu výkonu. I přesto je z naměřených hodnot dobře patrný následující závěr.

Z grafu závislosti času výpočtu na počtu použitých výpočetních uzlů je vidět že získané zrychlení výpočtu se se stoupajícím počtem použitých procesorů zmenšuje. Kolem hranice 4 až 5 procesorů již dochází k situaci, kdy by další zvyšování počtu procesorů použitých pro zpracování této úlohy bylo neekonomické.

8.38.38.38.3 Paralelní transformace souřadnicParalelní transformace souřadnicParalelní transformace souřadnicParalelní transformace souřadnic

8.3.1 Nástin problému V tomto případě jsem se nepokoušel vytvořit paralelní program včetně

paralelizace známých algoritmů, ale zaměřil jsem se spíše na paralelizaci již ověřeného programu, který poskytuje kvalitní výsledky ve své sekvenční verzi.

Mým cílem tedy byla paralelizace programu pro transformaci souřadnic ze souřadnicového systému JTSK do systému S42 a zpět. Tento program je postaven na knihovně funkcí matkart, kterou vyvinul prof. Ing. Bohuslav Veverka, DrSc. Tuto knihovnu pak z jejího pascalovského tvaru převedl do jazyka C můj školitel doc. Ing. Aleš Čepek, Csc., který k ní rovněž napsal i program Transf provádějící transformaci souřadnic uložených v textovém souboru podle požadavků uživatele.

8.3.2 Paralelizace Abych urychlil paralelní zpracování, provedl jsem nejprve několik triviálních

zásahů do programu. Jelikož přenos po propojovací síti je nejpomalejší částí paralelního algoritmu, stanovil jsem předpoklad, že zpracovávaná data jsou přítomna na disku každého jednotlivého paralelního stroje.

Tento předpoklad lze jednoduše splnit například pomocí sdílení jedné kopie dat pomocí NFS (Network FileSystem). Na paralelním počítači lze takto vytvořit sdílený adresář, který vidí všechny paralelní stroje a mohou z něj číst identická zdrojová data. V nejhorším případě je možno takovýto adresář částečně simulovat pomocí lokálních kopií zdrojových dat na disky všech částí paralelního počítače.

Tímto předpokladem jsem zajistil to, že každá instance paralelně pracujícího programu má přímý přístup k datům a tato data nemusí být přenášena po síti během výpočtu. K tomu, aby paralelní program mohl číst zdrojová data jsem odstranil čtení dat ze standardního vstupu a jejich zápis na standardní výstup, které bylo implementováno v původním programu Doc. Ing. Čepkem, CSc. Tento přístup je sice

Page 97: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

95ČVUT, FSv, katedra mapování a kartografie

obvykle výhodný, ale v tomto případě by způsoboval obtíže s určováním standardních I/O kanálů jednotlivých paralelních instancí.

V tomto stadiu tedy jednotlivé paralelní instance programu načítají vstupní souřadnice (pro jednoduchost jsem zvolil postup, při kterém n-tá paralelní instance zpracovává každý n-tý řádek vstupního souboru) a provádějí požadovanou transformaci (tento postup je jednoduchý na implementaci, při testování však absence load balancingu značně degradovala dosažitelný výkon – viz 8.3.3). Zbývá však poslední etapa, tedy uložení výsledných dat do souboru ve stejném pořadí v jakém byla ve vstupním souboru.

K řešení tohoto problému jsem zvažoval dva přístupy, které zde rozeberu spolu s posouzením jejich kladů a záporů.

8.3.2.1 Varianta A - použití odkládacích souborů První z možností bylo použití odkládacích souborů. Každý paralelní proces si

vytvoří odkládací soubor, do kterého odkládá zpracované souřadnice, případně i soubor pro odkládání chybových zpráv. Po ukončení běhu paralelních částí programu je potom z těchto souborů sestaven soubor s výsledky, ve kterém jsou zpracované souřadnice ve stejném pořadí jako v souboru vstupním. Tento postup je v dalším textu označen jako varianta A1 a je znázorněn na vývojových grafech viz obrázek 8.18 a

obrázek 8.19.

obrázek 8.17: Ukázka výstupu programu - varianta A

Tento postup funguje bezchybně až do té doby, kdy se ve zdrojovém souboru vyskytne chybný údaj, který nelze zpracovat. Tento je pak zapsán do chybového souboru, čímž se poruší informace o pořadí údajů uložených v odkládacích souborech a data ve výstupním souboru již nelze poskládat ve stejném pořadí v jakém byla uložena v souboru vstupním. Pokud však netrváme na stejném pořadí zpracovaných souřadnic ve výstupním souboru jako bylo pořadí, ve kterém byly načteny, je tento přístup použitelný.

Page 98: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

96 ČVUT, FSv, katedra mapování a kartografie

Start programu

Vstup informacío úloze

Zplozenía inicializaceslave procesů

pvm_spawn(...

Konec programu

Slav

epr

oces

y

pvm_send(...

fileinfofileinfo,, konverzekonverze

fileinfofileinfo

Čtení přicházejícíchchybových věta zápis na disk

Čtení přicházejícíchdatových vět

a zápis na disk datová větadatová věta

pvm_recv(..

chybová větachybová věta

pvm_recv(..

Start programu

Vstup informacío úloze

Zplozenía inicializaceslave procesů

pvm_spawn(...

Konec programu

Slav

epr

oces

ySl

ave

proc

esy

pvm_send(...

fileinfofileinfo,, konverzekonverze

fileinfofileinfo

Čtení přicházejícíchchybových věta zápis na disk

Čtení přicházejícíchdatových vět

a zápis na disk datová větadatová věta

pvm_recv(..

chybová větachybová věta

pvm_recv(..

obrázek 8.18: Schéma práce master procesu - varianta A1

Postup je také použitelný, pokud předpokládáme, že ve vstupním souboru nejsou chybná data (například proto, že byl před zpracováním zkontrolován). Kritickým místem tohoto algoritmu je zcela zřejmě přenos dat po síti zpět k master procesu po ukončení zpracování. I přesto, že je přenos realizován až po skončení výpočtu, je součástí paralelního zpracování a zabírá většinovou část času potřebného pro zpracování.

Page 99: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

97ČVUT, FSv, katedra mapování a kartografie

Mas

ter

proc

es

Zplození programu

Vstup informacío úloze

Transformacepodle určené

konverze

Jsou zdedalší datové

věty?

ano

ne

Konec programu

d.v.d.v.

pvm_send(..

pvm_recv(...

fileinfofileinfo, konverze, konverze

Čtení příslušejícídatové věty

Uložení výsledkudo souboru

pvm_spawn(...

Čtení výsledkůa jejich odesílání

errorerror

pvm_send(.. Čtení chyba jejich odesílání

Mas

ter

proc

esM

aste

rpr

oces

Zplození programu

Vstup informacío úloze

Transformacepodle určené

konverze

Transformacepodle určené

konverze

Jsou zdedalší datové

věty?

ano

ne

Konec programu

d.v.d.v.

pvm_send(..

pvm_recv(...

fileinfofileinfo, konverze, konverze

Čtení příslušejícídatové věty

Uložení výsledkudo souboru

pvm_spawn(...

Čtení výsledkůa jejich odesílání

errorerror

pvm_send(.. Čtení chyba jejich odesílání

obrázek 8.19: Schéma práce slave procesu - varianta A1

Page 100: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

98 ČVUT, FSv, katedra mapování a kartografie

Jistou alternativou tohoto přístupu je paralelní zpracování načtených dat a uložení výsledných hodnot do výstupních souborů každým slave procesem.

Slave – zplození

Vstup informacío úloze

Transformacepodle určené

konverze

Jsou zdedalší datové

věty?

ano

ne

Konec programu

pvm_recv(...

fileinfofileinfo, konverze, konverze

Čtení příslušejícídatové věty

Uložení výsledkudo souboru

Master - start

Vstup informacío úloze

Zplozenía inicializaceslave procesů

pvm_spawn(...

pvm_send/pvm_recv

fileinfofileinfo

Konec programu

Slave – zplození

Vstup informacío úloze

Transformacepodle určené

konverze

Transformacepodle určené

konverze

Jsou zdedalší datové

věty?

ano

ne

Konec programu

pvm_recv(...

fileinfofileinfo, konverze, konverze

Čtení příslušejícídatové věty

Uložení výsledkudo souboru

Master - start

Vstup informacío úloze

Zplozenía inicializaceslave procesů

pvm_spawn(...

pvm_send/pvm_recv

fileinfofileinfo

Konec programu

obrázek 8.20: Schéma práce master a slave procesu - varianta A2

Page 101: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

99ČVUT, FSv, katedra mapování a kartografie

Tím odpadá nejnáročnější část programu, kterou je přenos výsledných dat po síti a zůstává vlastně jen část paralelní. Výsledné hodnoty jsou ovšem rozmístěny v několika oddělených souborech a na uživateli poté zůstává, aby je spojil do jediného souboru (pokud je to nutné). Tuto alternativu jsem označil jako variantu A2. Schéma práce této varianty je popsáno ve vývojovém diagramu – viz obrázek 8.20.

8.3.2.2 Varianta B - přenos výsledných dat po síti Druhou možností, kterou jsem posuzoval byl přenos výsledných dat po síti.

Jednotlivé instance paralelního programu načítají zpracovávaná data a výsledky či případné chybové zprávy jsou ihned odesílány řídícímu procesu, který je ve správném pořadí ukládá do souboru. Tento postup je dále označován písmenem B a je prezentován ve vývojových diagramech viz obrázek 8.22 a obrázek 8.23.

S použitím tohoto postupu dostáváme soubor s výsledky uspořádanými v korektním pořadí podle vstupního souboru. Chod programu není pak narušen ani výskytem chybných vět, neboť řídící program zapisuje údaje přicházející od jednotlivých paralelních instancí v takovém pořadí, v jakém byly načteny ze vstupního souboru.

obrázek 8.21: Ukázka výstupu programu - varianta B

Přenos dat po relativně pomalé (v porovnání s přístupem do lokální paměti) propojovací síti DMPC můžeme, stejně jako ve variantě A1, již předem označit za kritický faktor pro snížení rychlosti a ztrátu efektivity paralelního algoritmu (viz 4.2.3.5). Tento přenos, který je uskutečňován jako součást výpočtu, drasticky zpomaluje chod celého programu a v extrémních případech (přenos několika set tisíc údajů s výsledky v krátkém časovém úseku) vedl u počtu 50.000 a více datových vět ke zhroucení samotného systému PVM v důsledku nedostatku paměti na jednom výpočetním uzlu, který byl zatížen během jiné úlohy.

Page 102: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

100 ČVUT, FSv, katedra mapování a kartografie

Start programu

Vstup informacío úloze

Zplozenía inicializaceslave procesů

pvm_spawn(...

Konec programu

Slav

epr

oces

y

pvm_send(...

fileinfofileinfo,, konverzekonverze

fileinfofileinfo

Čtení přicházejícíchdatových vět

a zápis na disk data data || fail|| fail

pvm_recv(..

Existujínepřijatá

data?

ano

ne

Start programu

Vstup informacío úloze

Zplozenía inicializaceslave procesů

pvm_spawn(...

Konec programu

Slav

epr

oces

ySl

ave

proc

esy

pvm_send(...

fileinfofileinfo,, konverzekonverze

fileinfofileinfo

Čtení přicházejícíchdatových vět

a zápis na disk data data || fail|| fail

pvm_recv(..

Existujínepřijatá

data?

ano

ne

obrázek 8.22: Schéma práce master procesu - varianta B

Page 103: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

101ČVUT, FSv, katedra mapování a kartografie

Mas

ter

proc

es

Zplození programu

Vstup informacío úloze

Transformacepodle určené

konverze

Jsou zdedalší datové

věty?

ano

ne

Konec programu

d.v. d.v. || fail|| fail

pvm_send(..

pvm_recv(...

fileinfofileinfo, konverze, konverze

Čtení příslušejícídatové věty

Odeslání výsledkutransformace

pvm_spawn(...

Mas

ter

proc

esM

aste

rpr

oces

Zplození programu

Vstup informacío úloze

Transformacepodle určené

konverze

Transformacepodle určené

konverze

Jsou zdedalší datové

věty?

ano

ne

Konec programu

d.v. d.v. || fail|| fail

pvm_send(..

pvm_recv(...

fileinfofileinfo, konverze, konverze

Čtení příslušejícídatové věty

Odeslání výsledkutransformace

pvm_spawn(...

obrázek 8.23: Schéma práce slave procesu - varianta B

8.3.3 Dosažené výsledky Testování jsem prováděl na heterogenní síti počítačů s využitím knihovny pro

paralelní výpočty PVM (verze 3.4.3). Protože jsem měl k dispozici 100Mbps síť s poměrně výkonnými UNIXovými servery (viz 7.1.2), testoval jsem program na této heterogenní síti. Konfigurace použité sítě se sestávala ze čtyř počítačů – ze dvou výkonných serverů DEC AlphaServer 4100, serveru DEC AlphaServer 4000 a serveru DEC AlphaServer 300 – viz kapitola 7.1.2.

Page 104: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

102 ČVUT, FSv, katedra mapování a kartografie

Jelikož mi nebyl znám přesný výkon (ani poměr výkonů) jednotlivých serverů, nemohl jsem provést optimální load balancing a ve výsledných hodnotách je nevyrovnaný výkon jednotlivých platforem patrný. Uplatnění load balancingu v distribuci dat jednotlivým úlohám by eliminovalo rozdíly ve výkonu jednotlivých výpočetních uzlů viditelné zvláště v naměřeném nárůstu výkonu.

Ve výsledcích jsou patrné chvilkové výkyvy ve výkonu jednotlivých strojů, které byly nepravidelně zatěžovány uživatelskými úlohami.

Testování jsem prováděl na vygenerovaných datových souborech obsahujících 5.000, 10.000, 25.000 a 50.000 zpracovávaných datových vět – náhrada skutečných dat daty vygenerovanými neměla v tomto případě žádný vliv na naměřené hodnoty, neboť nijak nezměnila složitost výpočtu.

V měřených výsledcích jsou viditelná odlehlá měření (v tabulce výsledků jsou barevně odlišená) způsobená chvilkovými změnami zátěže použitých serverů v okamžicích, kdy na nich probíhaly rutinní úlohy. Díky velkému počtu opakování však nebyl velký problém tyto hodnoty odlišit a díky tomu jsou získané časy minimálně zkreslené vlivem náhodných proměn zátěže.

8.3.3.1 Varianta A Varianta A, tedy výpočet s použitím odkládacích souborů netrpěla problémy

s nedostatkem paměti jako varianta B, testování bylo tedy možno provést na všech sadách dat s využitím jednoho až čtyř procesorů.

Už na první pohled jsou výsledné časy varianty A uspokojivější než časy dosažené použitím varianty B algoritmu (viz dále). Samotná alternativa A2 pak poskytla velice kvalitní časy.

Následující tabulky obsahují časy naměřené v padesáti opakováních. Výsledné hodnoty jsou uvedeny v posledním řádku tabulky, levá hodnota pro variantu A1, pravá (menší) pak pro variantu A2.

Počet

vět 1 2 3 45000 2,61 1,34 1,28 1,05

10000 5,21 2,62 2,58 2,3125000 12,84 6,48 6,60 5,8050000 25,67 12,91 19,32 17,19

Počet procesorů

tabulka 8.4: Výsledky časových testů paralelní transformace – varianta A1

Page 105: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

103ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master 5000 Master 10000 Master 25000 Master 50000uzel csst5 csst5 csst5 csst5 csst5 csst5 csst5 csst5

2,61 0,10 5,23 0,22 12,85 0,34 25,70 0,692,61 0,11 5,21 0,21 12,83 0,33 25,66 0,652,62 0,11 5,22 0,21 12,84 0,33 25,66 0,662,63 0,11 5,21 0,21 12,84 0,32 25,67 0,652,63 0,11 5,21 0,21 12,83 0,33 25,66 0,652,61 0,10 5,21 0,21 12,84 0,32 25,67 0,662,61 0,11 5,21 0,21 12,83 0,32 25,67 0,662,61 0,11 5,21 0,21 12,83 0,33 25,66 0,652,60 0,10 5,21 0,21 12,85 0,34 25,67 0,662,61 0,11 5,21 0,21 12,83 0,33 25,66 0,652,61 0,11 5,21 0,21 12,84 0,33 25,67 0,662,61 0,11 5,21 0,21 12,83 0,33 25,67 0,662,62 0,11 5,21 0,21 12,84 0,33 25,67 0,662,61 0,10 5,21 0,21 12,84 0,32 25,66 0,652,61 0,10 5,21 0,21 12,84 0,33 25,67 0,662,61 0,11 5,21 0,21 12,92 0,33 25,68 0,662,61 0,10 5,21 0,21 12,87 0,33 25,67 0,662,66 0,11 5,21 0,21 12,90 0,34 25,66 0,662,61 0,10 5,21 0,21 12,89 0,34 25,68 0,662,62 0,10 5,22 0,22 12,89 0,36 25,66 0,652,61 0,11 5,21 0,21 12,84 0,33 25,66 0,662,61 0,11 5,21 0,21 12,83 0,32 25,71 0,652,61 0,11 5,21 0,21 12,84 0,33 25,67 0,662,60 0,10 5,21 0,21 12,84 0,33 25,66 0,662,61 0,11 5,21 0,21 12,84 0,34 25,76 0,652,61 0,11 5,22 0,21 12,83 0,33 26,89 0,672,62 0,11 5,21 0,21 12,85 0,34 27,95 0,652,61 0,11 5,21 0,21 12,84 0,34 25,69 0,672,61 0,11 5,21 0,21 12,85 0,33 25,67 0,662,61 0,11 5,21 0,21 12,84 0,33 25,67 0,662,61 0,10 5,22 0,21 12,83 0,33 25,67 0,662,61 0,11 5,21 0,21 12,84 0,33 25,66 0,652,61 0,11 5,21 0,21 12,85 0,33 25,67 0,662,61 0,11 5,21 0,21 12,84 0,34 25,67 0,662,61 0,11 5,21 0,21 12,84 0,33 27,29 0,662,61 0,10 5,21 0,21 12,84 0,33 26,00 0,762,61 0,10 5,21 0,21 12,83 0,33 25,67 0,662,62 0,10 5,21 0,21 12,83 0,32 25,67 0,662,60 0,10 5,21 0,21 12,84 0,33 25,68 0,662,61 0,11 5,21 0,21 12,84 0,33 25,72 0,662,62 0,11 5,21 0,21 12,83 0,33 25,67 0,662,61 0,10 5,21 0,21 12,86 0,34 25,67 0,662,61 0,11 5,21 0,21 12,83 0,33 25,66 0,652,61 0,11 5,21 0,21 12,84 0,33 25,67 0,652,61 0,11 5,22 0,22 12,83 0,33 25,67 0,662,61 0,10 5,21 0,21 12,84 0,33 25,80 0,662,61 0,10 5,21 0,21 12,83 0,33 25,79 0,672,61 0,10 5,22 0,21 12,83 0,33 25,93 0,672,61 0,10 5,22 0,22 12,84 0,33 25,82 0,682,61 0,11 5,21 0,21 12,84 0,33 25,82 0,67

Průměr 2,61 0,11 5,21 0,21 12,84 0,33 25,69 0,66Medián 2,61 0,11 5,21 0,21 12,84 0,33 25,67 0,66Modus 2,61 0,11 5,21 0,21 12,84 0,33 25,67 0,66Výsledek 2,61 0,11 5,21 0,21 12,84 0,33 25,67 0,66

měřěn

é ča

sy [s

ec]

tabulka 8.5: Paralelní transformace souřadnic – varianta A – 1PN

Page 106: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

104 ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Master Master Masteruzel csst5 csst5 csst4 csst5 csst5 csst4 csst5 csst5 csst4 csst5 csst5 csst4

1,42 0,11 0,12 2,62 0,11 0,12 6,49 0,17 0,22 13,12 0,35 0,421,36 0,06 0,06 2,62 0,11 0,12 6,52 0,17 0,22 13,17 0,35 0,401,50 0,07 0,07 2,62 0,11 0,12 6,47 0,18 0,20 15,84 0,34 0,401,35 0,06 0,06 2,62 0,10 0,11 6,60 0,17 0,21 13,05 0,36 0,391,35 0,06 0,06 2,62 0,11 0,12 6,46 0,17 0,20 12,98 0,34 0,421,34 0,06 0,06 2,62 0,11 0,11 6,47 0,17 0,20 12,95 0,35 0,401,34 0,06 0,06 2,63 0,11 0,12 6,47 0,17 0,20 12,92 0,34 0,391,32 0,06 0,05 2,62 0,11 0,12 6,66 0,17 0,20 13,00 0,34 0,401,34 0,06 0,06 2,62 0,11 0,11 6,48 0,17 0,20 12,92 0,34 0,401,34 0,06 0,06 2,62 0,10 0,11 6,46 0,17 0,20 12,92 0,34 0,391,34 0,07 0,06 2,66 0,10 0,12 6,48 0,17 0,22 12,93 0,35 0,401,33 0,07 0,06 2,63 0,10 0,12 6,46 0,17 0,20 12,96 0,34 0,411,33 0,06 0,06 2,63 0,11 0,12 6,53 0,17 0,20 12,95 0,34 0,391,36 0,07 0,06 2,62 0,10 0,12 6,63 0,17 0,20 18,35 0,34 0,401,33 0,06 0,06 2,62 0,11 0,12 7,49 0,17 0,22 28,11 0,37 0,401,35 0,07 0,06 2,62 0,10 0,11 7,92 0,17 0,21 13,03 0,34 0,391,43 0,06 0,06 2,62 0,11 0,12 6,48 0,17 0,20 13,09 0,34 0,401,36 0,06 0,06 2,62 0,10 0,11 7,38 0,17 0,20 12,92 0,34 0,411,34 0,06 0,06 2,62 0,10 0,11 7,33 0,17 0,21 13,39 0,34 0,401,34 0,07 0,06 2,62 0,11 0,12 7,87 0,18 0,21 13,36 0,34 0,401,34 0,06 0,06 2,62 0,10 0,11 6,51 0,19 0,21 13,33 0,35 0,401,34 0,06 0,07 2,62 0,11 0,12 6,50 0,17 0,20 15,29 0,35 0,401,36 0,07 0,06 2,62 0,10 0,11 6,48 0,17 0,20 14,10 0,36 0,391,33 0,07 0,06 2,62 0,11 0,12 6,48 0,17 0,20 13,82 0,37 0,401,33 0,07 0,07 2,62 0,11 0,11 6,47 0,17 0,19 16,76 0,41 0,411,36 0,07 0,06 2,61 0,10 0,12 6,49 0,17 0,20 14,87 0,35 0,391,35 0,07 0,06 2,62 0,11 0,12 6,51 0,18 0,20 17,33 0,35 0,391,39 0,07 0,06 2,62 0,11 0,12 6,58 0,17 0,19 16,84 0,36 0,391,38 0,07 0,06 2,63 0,10 0,12 9,24 0,18 0,20 16,59 0,35 0,401,37 0,06 0,06 2,62 0,11 0,12 6,59 0,18 0,20 15,30 0,35 0,401,32 0,06 0,05 2,62 0,11 0,10 6,49 0,17 0,20 12,91 0,34 0,391,35 0,06 0,05 2,62 0,10 0,12 7,09 0,18 0,20 12,91 0,34 0,391,33 0,06 0,06 2,62 0,11 0,12 7,61 0,22 0,22 12,91 0,34 0,401,34 0,07 0,06 2,62 0,11 0,11 6,50 0,18 0,20 12,91 0,34 0,401,33 0,06 0,06 2,62 0,11 0,11 6,58 0,18 0,20 12,90 0,34 0,391,33 0,06 0,05 2,62 0,10 0,11 6,56 0,17 0,20 12,91 0,34 0,391,33 0,06 0,06 2,63 0,10 0,12 6,66 0,17 0,19 12,91 0,34 0,401,47 0,06 0,06 2,62 0,11 0,12 6,68 0,18 0,20 12,91 0,34 0,401,54 0,07 0,06 2,62 0,10 0,11 6,56 0,18 0,20 12,90 0,34 0,401,90 0,07 0,06 2,63 0,11 0,12 6,61 0,17 0,20 12,91 0,34 0,401,43 0,07 0,11 2,62 0,11 0,11 6,54 0,17 0,20 12,91 0,34 0,401,50 0,07 0,11 2,62 0,10 0,11 6,51 0,17 0,20 12,92 0,35 0,401,87 0,06 0,08 2,62 0,10 0,11 6,72 0,18 0,20 12,92 0,34 0,391,45 0,07 0,06 2,64 0,10 0,12 6,56 0,17 0,21 12,92 0,35 0,401,45 0,07 0,06 2,62 0,11 0,11 6,61 0,20 0,20 12,90 0,34 0,391,37 0,08 0,06 2,62 0,11 0,11 6,56 0,18 0,20 12,90 0,34 0,391,35 0,07 0,06 2,62 0,11 0,12 6,58 0,18 0,20 12,91 0,34 0,401,39 0,07 0,06 2,62 0,11 0,12 6,60 0,17 0,19 12,93 0,34 0,411,38 0,06 0,06 2,62 0,11 0,11 6,54 0,18 0,20 12,91 0,34 0,391,36 0,07 0,06 2,62 0,11 0,12 6,46 0,19 0,20 12,91 0,34 0,40

Průměr 1,37 0,07 0,06 2,62 0,11 0,12 6,54 0,17 0,20 13,00 0,34 0,40Medián 1,35 0,07 0,06 2,62 0,11 0,12 6,52 0,17 0,20 12,92 0,34 0,40Modus 1,34 0,06 0,06 2,62 0,11 0,12 6,48 0,17 0,20 12,91 0,34 0,40Výsledek 1,34 2,62 6,48 12,91

měřěn

é ča

sy [s

ec]

5000 10000 25000 50000

0,06 0,12 0,20 0,40

tabulka 8.6: Paralelní transformace souřadnic – varianta A – 2PN

Page 107: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

105ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst5 csst5 csst4 csst03

1,35 0,09 0,07 0,21 2,73 0,10 0,06 0,401,24 0,04 0,03 0,18 2,70 0,09 0,06 0,371,27 0,04 0,03 0,18 2,73 0,08 0,06 0,371,26 0,04 0,03 0,18 2,63 0,08 0,06 0,361,26 0,04 0,03 0,18 2,66 0,08 0,05 0,361,27 0,04 0,03 0,18 2,57 0,08 0,05 0,361,26 0,04 0,03 0,18 2,66 0,09 0,06 0,371,33 0,04 0,03 0,19 2,62 0,09 0,06 0,371,26 0,04 0,03 0,18 2,71 0,09 0,06 0,361,27 0,04 0,03 0,19 2,70 0,08 0,05 0,361,24 0,04 0,04 0,18 2,61 0,08 0,05 0,361,28 0,04 0,04 0,18 2,56 0,08 0,05 0,361,32 0,04 0,03 0,18 2,60 0,08 0,06 0,361,26 0,04 0,03 0,18 2,65 0,09 0,06 0,371,25 0,04 0,03 0,18 2,58 0,08 0,06 0,361,28 0,04 0,03 0,19 2,58 0,09 0,06 0,371,29 0,04 0,03 0,19 2,70 0,09 0,06 0,371,27 0,04 0,03 0,18 2,67 0,08 0,05 0,371,27 0,04 0,03 0,18 2,59 0,08 0,05 0,361,26 0,04 0,04 0,18 2,56 0,08 0,05 0,361,34 0,04 0,11 0,18 2,66 0,08 0,07 0,371,28 0,04 0,07 0,18 2,57 0,09 0,08 0,361,28 0,04 0,04 0,18 2,53 0,08 0,07 0,361,33 0,05 0,03 0,18 2,75 0,09 0,06 0,361,26 0,04 0,03 0,18 2,65 0,09 0,06 0,361,28 0,04 0,04 0,18 2,58 0,08 0,05 0,371,27 0,04 0,04 0,18 2,63 0,08 0,06 0,371,34 0,04 0,04 0,19 2,63 0,08 0,10 0,361,31 0,04 0,10 0,18 2,62 0,08 0,06 0,361,28 0,03 0,05 0,18 2,66 0,09 0,06 0,361,35 0,04 0,04 0,19 2,58 0,08 0,06 0,361,27 0,04 0,03 0,18 2,62 0,08 0,08 0,361,27 0,04 0,04 0,18 2,57 0,08 0,11 0,371,45 0,04 0,07 0,18 2,68 0,09 0,06 0,361,33 0,04 0,07 0,18 2,67 0,08 0,09 0,371,34 0,04 0,05 0,18 2,58 0,08 0,06 0,371,28 0,04 0,05 0,18 2,65 0,09 0,05 0,371,28 0,04 0,06 0,18 2,87 0,08 0,05 0,371,31 0,04 0,03 0,18 2,71 0,08 0,06 0,381,32 0,04 0,03 0,18 2,81 0,08 0,05 0,381,29 0,04 0,03 0,18 2,75 0,09 0,07 0,361,29 0,04 0,04 0,18 2,70 0,08 0,06 0,361,31 0,04 0,04 0,18 2,69 0,08 0,11 0,371,35 0,04 0,04 0,18 2,80 0,08 0,05 0,371,28 0,04 0,04 0,18 2,85 0,08 0,05 0,371,26 0,04 0,03 0,19 2,74 0,08 0,07 0,361,29 0,04 0,07 0,18 2,69 0,08 0,05 0,361,31 0,04 0,08 0,18 2,61 0,09 0,06 0,361,32 0,04 0,03 0,18 2,64 0,09 0,06 0,361,32 0,04 0,07 0,19 2,77 0,08 0,05 0,37

Průměr 1,29 0,04 0,04 0,18 2,65 0,08 0,06 0,37Medián 1,28 0,04 0,04 0,18 2,65 0,08 0,06 0,36Modus 1,28 0,04 0,03 0,18 2,58 0,08 0,06 0,36Výsledek 1,28 2,58

5000 10000

měřěn

é ča

sy [s

ec]

0,18 0,36

tabulka 8.7: Paralelní transformace souřadnic – varianta A – 3PN (5000 a 10000 d.v.)

Page 108: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

106 ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst5 csst5 csst4 csst03

6,88 0,12 0,13 0,46 19,32 0,25 0,27 0,976,91 0,12 0,14 0,46 18,64 0,25 0,27 0,916,60 0,12 0,13 0,46 20,04 0,25 0,26 0,916,54 0,12 0,13 0,46 19,91 0,25 0,26 0,926,53 0,13 0,14 0,47 18,91 0,25 0,26 0,916,63 0,12 0,13 0,47 20,71 0,25 0,27 0,926,71 0,12 0,13 0,46 19,29 0,25 0,27 0,926,57 0,12 0,13 0,46 20,67 0,25 0,29 0,916,96 0,13 0,13 0,47 18,85 0,26 0,27 0,916,72 0,13 0,13 0,46 18,19 0,24 0,26 0,916,64 0,12 0,13 0,46 17,88 0,25 0,26 0,936,76 0,12 0,13 0,46 19,30 0,25 0,26 0,916,66 0,12 0,13 0,46 21,03 0,25 0,26 0,926,92 0,13 0,13 0,50 19,62 0,25 0,27 0,926,55 0,13 0,13 0,46 21,96 0,25 0,26 0,916,66 0,12 0,14 0,47 19,35 0,25 0,27 0,926,78 0,13 0,14 0,46 19,09 0,25 0,26 0,916,69 0,13 0,14 0,46 19,99 0,24 0,26 0,946,61 0,12 0,13 0,47 20,11 0,25 0,27 0,926,78 0,13 0,13 0,47 21,18 0,25 0,26 0,916,62 0,12 0,15 0,46 19,51 0,25 0,28 0,916,60 0,12 0,15 0,47 20,01 0,25 0,30 0,916,64 0,13 0,15 0,46 19,90 0,25 0,28 0,916,67 0,12 0,24 0,47 19,23 0,25 0,28 0,906,48 0,12 0,18 0,47 19,41 0,24 0,29 0,917,11 0,13 0,14 0,47 18,75 0,25 0,27 0,906,61 0,12 0,20 0,47 19,93 0,25 0,29 0,926,44 0,13 0,20 0,47 18,40 0,25 0,32 0,927,04 0,13 0,14 0,46 18,30 0,25 0,30 0,937,57 0,13 0,16 0,46 21,28 0,25 0,28 0,916,85 0,12 0,14 0,46 19,80 0,25 0,27 0,917,41 0,12 0,14 0,46 21,26 0,24 0,26 0,916,96 0,12 0,13 0,45 18,92 0,25 0,30 0,916,82 0,13 0,14 0,47 20,59 0,25 0,27 0,916,71 0,13 0,16 0,46 19,30 0,24 0,30 0,927,13 0,12 0,16 0,46 21,78 0,25 0,29 0,926,91 0,13 0,15 0,46 21,28 0,26 0,27 0,096,72 0,12 0,25 0,46 21,53 0,26 0,30 0,926,93 0,13 0,15 0,46 24,83 0,25 0,27 0,907,44 0,13 0,15 0,46 24,41 0,26 0,26 0,917,31 0,13 0,15 0,46 23,47 0,25 0,25 0,916,67 0,13 0,18 0,46 21,30 0,26 0,27 0,917,37 0,12 0,13 0,48 18,86 0,25 0,26 0,916,69 0,12 0,18 0,46 19,32 0,25 0,26 0,916,60 0,13 0,17 0,46 26,69 0,25 0,29 0,916,59 0,13 0,15 0,47 21,26 0,28 0,26 0,926,98 0,13 0,14 0,46 24,75 0,26 0,26 0,906,80 0,13 0,15 0,47 22,22 0,26 0,27 0,926,52 0,13 0,14 0,46 23,04 0,25 0,26 0,936,79 0,13 0,15 0,47 23,34 0,25 0,27 0,91

Průměr 6,72 0,12 0,15 0,46 19,86 0,25 0,27 0,90Medián 6,69 0,12 0,14 0,46 19,71 0,25 0,27 0,91Modus 6,60 0,12 0,13 0,46 19,32 0,25 0,26 0,91Výsledek 6,60 19,32

50000

0,900,46

25000

měřěn

é ča

sy [s

ec]

tabulka 8.8: Paralelní transformace souřadnic – varianta A – 3PN (25000 a 50000 d.v.)

Page 109: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

107ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst06 csst5 csst5 csst4 csst03 csst06

1,10 0,03 0,03 0,11 0,09 3,77 0,06 0,06 0,24 0,181,09 0,03 0,03 0,12 0,09 3,09 0,06 0,06 0,23 0,171,05 0,03 0,03 0,12 0,09 2,84 0,06 0,06 0,23 0,171,16 0,03 0,03 0,12 0,09 4,00 0,06 0,06 0,23 0,171,06 0,03 0,04 0,12 0,09 3,57 0,06 0,06 0,24 0,171,10 0,03 0,03 0,12 0,09 3,21 0,05 0,06 0,24 0,181,13 0,03 0,04 0,12 0,09 3,28 0,06 0,06 0,23 0,171,11 0,03 0,03 0,11 0,09 2,34 0,06 0,06 0,23 0,171,08 0,03 0,03 0,12 0,09 2,38 0,06 0,06 0,24 0,171,11 0,03 0,03 0,12 0,09 2,30 0,06 0,06 0,24 0,171,07 0,03 0,03 0,11 0,09 2,31 0,06 0,06 0,23 0,181,06 0,03 0,03 0,12 0,10 2,27 0,06 0,06 0,24 0,181,03 0,03 0,03 0,12 0,08 2,25 0,05 0,06 0,24 0,171,05 0,03 0,03 0,12 0,08 2,43 0,06 0,06 0,23 0,171,07 0,03 0,03 0,11 0,09 2,34 0,06 0,06 0,23 0,171,05 0,03 0,03 0,12 0,09 2,36 0,06 0,05 0,25 0,171,06 0,03 0,03 0,12 0,09 2,29 0,06 0,06 0,23 0,171,05 0,03 0,03 0,11 0,09 2,34 0,06 0,06 0,23 0,171,08 0,03 0,03 0,12 0,09 2,36 0,06 0,06 0,23 0,171,11 0,03 0,03 0,12 0,09 2,45 0,06 0,06 0,23 0,171,08 0,03 0,08 0,12 0,09 2,23 0,06 0,07 0,24 0,171,06 0,03 0,03 0,12 0,08 2,79 0,06 0,06 0,24 0,171,09 0,03 0,03 0,12 0,09 2,30 0,05 0,06 0,23 0,171,02 0,03 0,03 0,12 0,09 2,33 0,06 0,07 0,24 0,021,06 0,03 0,03 0,12 0,08 2,31 0,06 0,06 0,23 0,171,24 0,03 0,04 0,13 0,08 2,39 0,06 0,07 0,23 0,171,05 0,03 0,03 0,12 0,09 2,56 0,05 0,06 0,24 0,171,06 0,03 0,03 0,12 0,09 2,32 0,05 0,08 0,23 0,171,07 0,03 0,03 0,12 0,09 2,20 0,05 0,06 0,24 0,171,03 0,04 0,04 0,11 0,09 2,24 0,06 0,06 0,23 0,171,31 0,03 0,03 0,11 0,08 2,21 0,06 0,06 0,24 0,171,12 0,03 0,04 0,11 0,08 2,31 0,06 0,07 0,24 0,231,09 0,02 0,03 0,11 0,08 2,18 0,06 0,06 0,24 0,171,05 0,03 0,03 0,12 0,10 2,31 0,06 0,07 0,23 0,171,07 0,03 0,04 0,12 0,09 2,31 0,05 0,06 0,23 0,171,06 0,03 0,04 0,12 0,08 2,26 0,06 0,06 0,25 0,181,05 0,02 0,03 0,12 0,08 2,45 0,07 0,07 0,24 0,171,06 0,03 0,03 0,12 0,09 2,34 0,05 0,06 0,24 0,171,10 0,03 0,03 0,12 0,08 2,42 0,06 0,08 0,23 0,171,07 0,02 0,03 0,12 0,08 2,31 0,05 0,06 0,23 0,181,17 0,03 0,03 0,12 0,09 2,59 0,06 0,07 0,23 0,171,08 0,03 0,04 0,12 0,09 2,32 0,05 0,13 0,23 0,171,13 0,03 0,03 0,12 0,08 2,29 0,06 0,08 0,24 0,171,03 0,03 0,04 0,12 0,09 2,21 0,05 0,06 0,24 0,171,05 0,03 0,04 0,12 0,08 2,20 0,06 0,06 0,24 0,171,25 0,03 0,03 0,11 0,08 2,22 0,05 0,06 0,24 0,171,05 0,03 0,03 0,12 0,09 2,57 0,06 0,06 0,24 0,171,16 0,03 0,03 0,12 0,09 2,16 0,06 0,07 0,23 0,171,19 0,03 0,03 0,12 0,09 2,20 0,06 0,08 0,23 0,171,12 0,03 0,03 0,12 0,08 2,85 0,05 0,06 0,23 0,17

Průměr 1,09 0,03 0,03 0,12 0,09 2,32 0,06 0,07 0,24 0,17Medián 1,07 0,03 0,03 0,12 0,09 2,31 0,06 0,06 0,23 0,17Modus 1,05 0,03 0,03 0,12 0,09 2,31 0,06 0,06 0,23 0,17Výsledek 1,05 2,31

měřěn

é ča

sy [s

ec]

5000 10000

0,12 0,23

tabulka 8.9: Paralelní transformace souřadnic – varianta A – 4PN (5000 a 10000 d.v.)

Page 110: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

108 ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst06 csst5 csst5 csst4 csst03 csst06

5,95 0,09 0,10 0,37 0,30 18,52 0,18 0,21 0,72 0,565,76 0,09 0,10 0,36 0,28 18,64 0,18 0,20 0,72 0,525,80 0,09 0,10 0,36 0,20 20,19 0,18 0,20 0,72 0,525,81 0,09 0,10 0,36 0,26 17,67 0,18 0,20 0,72 0,526,13 0,09 0,11 0,36 0,27 17,18 0,18 0,20 0,72 0,525,97 0,09 0,10 0,36 0,26 19,44 0,18 0,21 0,72 0,515,92 0,10 0,11 0,36 0,26 29,90 0,18 0,21 0,72 0,516,09 0,10 0,11 0,36 0,25 19,89 0,18 0,20 0,72 0,515,90 0,09 0,10 0,36 0,26 19,25 0,19 0,21 0,71 0,525,91 0,09 0,11 0,37 0,26 17,22 0,18 0,20 0,72 0,535,92 0,09 0,11 0,36 0,26 17,69 0,19 0,32 0,72 0,526,01 0,09 0,10 0,36 0,26 17,19 0,18 0,21 0,71 0,576,05 0,09 0,10 0,36 0,26 18,17 0,18 0,20 0,72 0,526,08 0,09 0,10 0,36 0,26 17,37 0,18 0,23 0,71 0,525,98 0,09 0,11 0,37 0,26 16,41 0,18 0,23 0,71 0,526,00 0,09 0,11 0,37 0,34 17,75 0,19 0,25 0,71 0,525,96 0,10 0,10 0,36 0,26 16,78 0,18 0,26 0,72 0,515,73 0,09 0,11 0,37 0,25 16,42 0,18 0,24 0,71 0,526,24 0,09 0,11 0,36 0,35 18,98 0,18 0,25 0,72 0,515,86 0,09 0,10 0,36 0,26 34,32 0,20 0,22 0,72 0,525,87 0,10 0,12 0,36 0,26 18,42 0,19 0,23 0,74 0,525,79 0,09 0,10 0,37 0,26 18,49 0,18 0,24 0,72 0,525,80 0,09 0,11 0,36 0,25 17,81 0,18 0,21 0,72 0,515,42 0,09 0,10 0,36 0,26 17,41 0,18 0,21 0,71 0,515,74 0,09 0,10 0,36 0,26 17,80 0,18 0,21 0,72 0,525,95 0,09 0,11 0,36 0,26 16,43 0,18 0,27 0,71 0,525,70 0,09 0,10 0,37 0,26 17,46 0,19 0,21 0,71 0,525,73 0,09 0,11 0,36 0,26 18,85 0,18 0,25 0,71 0,525,72 0,09 0,11 0,36 0,25 16,08 0,18 0,21 0,71 0,515,76 0,09 0,11 0,36 0,26 17,16 0,18 0,22 0,71 0,525,85 0,09 0,12 0,36 0,26 19,03 0,18 0,25 0,78 0,515,78 0,09 0,11 0,35 0,26 16,38 0,18 0,21 0,71 0,525,87 0,09 0,10 0,37 0,26 18,61 0,18 0,22 0,71 0,536,02 0,09 0,12 0,36 0,26 18,58 0,18 0,51 0,72 0,525,73 0,09 0,10 0,37 0,27 18,42 0,18 0,28 0,73 0,525,58 0,09 0,21 0,37 0,26 16,81 0,18 0,25 0,73 0,525,97 0,09 0,11 0,37 0,26 17,34 0,18 0,22 0,72 0,525,69 0,09 0,11 0,37 0,26 17,34 0,18 0,23 0,72 0,525,56 0,10 0,11 0,36 0,26 16,99 0,18 0,23 0,73 0,525,53 0,10 0,11 0,36 0,26 17,40 0,18 0,23 0,72 0,565,67 0,09 0,11 0,36 0,26 22,23 0,18 0,23 0,72 0,515,75 0,09 0,11 0,36 0,26 19,89 0,18 0,24 0,72 0,515,82 0,09 0,12 0,38 0,26 17,76 0,18 0,28 0,71 0,525,77 0,09 0,11 0,36 0,26 19,48 0,18 0,28 0,71 0,525,89 0,09 0,10 0,36 0,26 17,19 0,20 0,34 0,78 0,525,80 0,09 0,10 0,37 0,26 20,94 0,18 0,26 0,72 0,536,15 0,09 0,11 0,37 0,26 16,35 0,18 0,30 0,71 0,595,86 0,10 0,11 0,36 0,26 15,93 0,18 0,22 0,72 0,556,82 0,09 0,11 0,37 0,26 17,54 0,18 0,24 0,71 0,616,87 0,09 0,11 0,37 0,26 17,44 0,19 0,29 0,72 0,52

Průměr 5,85 0,09 0,11 0,36 0,26 17,49 0,18 0,24 0,72 0,53Medián 5,86 0,09 0,11 0,36 0,26 17,41 0,18 0,23 0,72 0,52Modus 5,80 0,09 0,11 0,36 0,26 17,19 0,18 0,21 0,72 0,52Výsledek 5,80 17,19 0,72

25000 50000

měřěn

é ča

sy [s

ec]

0,36

tabulka 8.10: Paralelní transformace souřadnic – var. A – 4PN (25000 a 50000 d.v.)

Page 111: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

109ČVUT, FSv, katedra mapování a kartografie

Výsledky časových testů paralelní transformace souřadnic

0,00

5,00

10,00

15,00

20,00

25,00

30,00

1 2 3 4

Počet procesorů

Čas

[sec

]

5000

10000

25000

50000

graf 8.5: Závislost času paralelní transformace souřadnic na počtu procesorů – var. A1

Page 112: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

110ČVUT, FSv, katedra mapování a kartografie

Výsledky časových testů paralelní transformace souřadnic

0,00

0,10

0,20

0,30

0,40

0,50

0,60

0,70

0,80

0,90

1,00

1 2 3 4

Počet procesorů

Čas

[sec

]

5000

10000

25000

50000

graf 8.6: Závislost času paralelní transformace souřadnic na počtu procesorů – var. A2

Page 113: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

111ČVUT, FSv, katedra mapování a kartografie

Nárůst výkonu při paralelní transformaci souřadnic

1,00

2,00

3,00

4,00

1 2 3 4

Počet procesorů

Výko

n

5000

10000

25000

50000

lineární

graf 8.7: Výsledný nárůst výkonu při paralelní transformaci souřadnic – varianta A1

Page 114: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

112 ČVUT, FSv, katedra mapování a kartografie

Nárůst výkonu při paralelní transformaci souřadnic

0,00

1,00

2,00

3,00

4,00

1 2 3 4

Počet procesorů

Výko

n

5000

10000

25000

50000

lineární

graf 8.8: Výsledný nárůst výkonu při paralelní transformaci souřadnic – varianta A2

Page 115: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

113ČVUT, FSv, katedra mapování a kartografie

Tabulka souhrnných hodnot výsledků časových testů pro variantu A2 je uvedena zde (z porovnání tabulek výsledků variant A2 a A1 – viz tabulka 8.11 a tabulka 8.4 – je zřejmé, že varianta A2 poskytuje oproti variantě A1 značně lepší výsledky)

Početvět 1 2 3 4

5000 0,11 0,06 0,18 0,1210000 0,21 0,12 0,36 0,2325000 0,33 0,20 0,46 0,3650000 0,66 0,40 0,90 0,72

Počet procesorů

tabulka 8.11: Výsledky časových testů paralelní transformace – varianta A2

8.3.3.2 Varianta B Problémy s nedostatkem paměti na jednom ze serverů (zapříčiněné

pravděpodobně využitím paměti pro běh několika databází) způsobily nestabilitu systému PVM během testování s použitím nejrozsáhlejších sad dat (50.000 datových vět na čtyřech procesorech). PVM potom vinou nedostatku paměti ukončilo svůj chod, protože nemohlo alokovat paměť potřebnou pro odesílací buffery.

Tento nedostatek paměti byl tedy příčinou absence výsledků pro test použití 4 PN pro zpracování 50.000 datových vět. Uváděný výsledek je určen pouze odhadem.

V následujících tabulkách jsou uvedeny naměřené výsledné časy v padesáti opakováních.

Početvět 1 2 3 4

5000 2,50 1,25 1,09 1,0810000 5,00 2,51 2,25 2,3625000 12,50 6,26 8,47 10,2350000 25,01 12,51 33,60 70,00

Počet procesorů

tabulka 8.12: Výsledky časových testů paralelní transformace – varianta B

Přehledně tyto časy prezentují také dále uvedené grafy (viz graf 8.9 a graf 8.10).

Page 116: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

114 ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master 5000 Master 10000 Master 25000 Master 50000uzel csst5 csst5 csst5 csst5 csst5 csst5 csst5 csst5

2,55 2,55 5,01 5,01 12,52 12,52 25,00 25,002,50 2,50 5,02 5,02 12,50 12,50 25,01 25,012,50 2,50 5,00 5,00 12,51 12,50 25,00 25,002,50 2,49 5,00 5,00 12,50 12,50 25,01 25,002,50 2,50 5,00 5,00 12,51 12,51 25,01 25,012,50 2,49 5,00 5,00 12,50 12,50 25,01 25,002,50 2,49 5,00 5,00 12,52 12,51 25,00 25,002,50 2,50 5,00 4,99 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,02 25,012,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,002,51 2,51 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,012,50 2,50 5,00 5,00 12,50 12,50 25,02 25,022,50 2,50 5,00 5,00 12,50 12,50 25,01 25,002,50 2,50 5,00 5,00 12,51 12,51 25,01 25,012,50 2,50 5,00 5,00 12,50 12,50 25,01 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,012,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,51 2,50 5,00 5,00 12,50 12,50 25,01 25,002,50 2,49 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,51 12,50 25,01 25,002,50 2,50 5,01 5,01 12,52 12,52 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,002,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,02 25,022,50 2,50 5,00 5,00 12,50 12,50 25,02 25,012,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,51 12,51 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 4,99 12,50 12,50 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,00 25,002,50 2,50 5,00 4,99 12,50 12,50 25,01 25,012,50 2,50 5,00 5,00 12,50 12,50 25,01 25,012,50 2,50 5,00 5,00 12,50 12,50 25,02 25,022,50 2,50 5,00 5,00 12,51 12,50 25,00 25,002,50 2,50 5,00 5,00 12,51 12,51 25,00 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,002,50 2,50 5,00 5,00 12,50 12,50 25,01 25,012,50 2,50 5,00 4,99 12,50 12,50 25,01 25,002,50 2,49 5,01 5,01 12,51 12,50 25,03 25,032,50 2,49 5,00 5,00 12,50 12,50 25,01 25,002,50 2,49 5,02 5,02 12,50 12,50 25,01 25,012,50 2,49 5,00 5,00 12,51 12,49 25,01 25,012,50 2,49 5,00 5,00 12,50 12,50 25,01 25,002,50 2,49 5,00 5,00 12,51 12,51 25,02 25,02

Průměr 2,50 2,50 5,00 5,00 12,50 12,50 25,01 25,00Medián 2,50 2,50 5,00 5,00 12,50 12,50 25,01 25,00Modus 2,50 2,50 5,00 5,00 12,50 12,50 25,01 25,00Výsledek 25,01

měřěn

é ča

sy [s

ec]

2,50 5,00 12,50

tabulka 8.13: Paralelní transformace souřadnic – varianta B – 1PN

Page 117: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

115ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Master Master Masteruzel csst5 csst5 csst4 csst5 csst5 csst4 csst5 csst5 csst4 csst5 csst5 csst4

1,29 1,25 1,29 2,55 2,50 2,55 6,29 6,25 6,28 12,51 12,51 12,511,25 1,25 1,25 2,66 2,50 2,59 6,30 6,25 6,30 12,50 12,50 12,501,25 1,25 1,25 2,51 2,50 2,51 10,02 6,26 6,41 12,59 12,53 12,591,25 1,25 1,25 2,51 2,51 2,51 6,27 6,25 6,27 12,53 12,51 12,521,26 1,25 1,25 2,50 2,50 2,50 6,26 6,25 6,26 12,51 12,51 12,501,26 1,25 1,26 2,51 2,50 2,51 6,29 6,27 6,29 12,57 12,51 12,571,85 1,26 1,45 2,51 2,50 2,51 6,26 6,25 6,26 12,65 12,52 12,501,26 1,25 1,26 2,52 2,50 2,51 6,26 6,25 6,26 12,51 12,50 12,511,25 1,25 1,25 2,51 2,50 2,51 6,27 6,25 6,26 12,51 12,51 12,511,26 1,25 1,25 2,50 2,50 2,50 6,27 6,25 6,27 12,60 12,50 12,601,25 1,25 1,25 2,50 2,50 2,50 6,26 6,25 6,26 14,20 12,54 12,541,30 1,25 1,30 2,57 2,50 2,57 6,32 6,26 6,32 12,50 12,50 12,501,26 1,25 1,25 2,51 2,50 2,51 6,26 6,25 6,26 12,52 12,50 12,511,26 1,25 1,26 2,54 2,50 2,51 6,43 6,25 6,27 12,64 12,50 12,641,25 1,25 1,25 2,51 2,50 2,51 6,28 6,25 6,28 12,55 12,55 12,501,26 1,25 1,26 2,52 2,50 2,51 6,27 6,26 6,26 12,52 12,52 12,511,25 1,25 1,25 2,51 2,50 2,51 6,28 6,25 6,28 12,53 12,50 12,531,25 1,25 1,25 2,50 2,50 2,50 6,30 6,25 6,27 14,68 12,56 12,611,26 1,25 1,25 2,52 2,50 2,51 6,26 6,25 6,26 12,51 12,50 12,511,25 1,25 1,25 2,50 2,50 2,50 6,27 6,25 6,27 12,51 12,50 12,511,25 1,25 1,25 2,50 2,50 2,50 6,45 6,26 6,45 13,01 12,52 13,011,25 1,25 1,25 2,51 2,50 2,51 6,35 6,25 6,35 12,51 12,51 12,511,25 1,25 1,25 2,51 2,51 2,50 6,42 6,25 6,26 12,52 12,52 12,501,27 1,25 1,25 2,50 2,50 2,50 6,37 6,27 6,37 12,51 12,50 12,511,26 1,25 1,26 2,51 2,50 2,51 6,43 6,39 6,43 12,51 12,50 12,511,26 1,25 1,25 2,50 2,50 2,50 6,27 6,27 6,26 12,51 12,50 12,511,25 1,25 1,25 2,50 2,50 2,50 6,26 6,26 6,26 12,51 12,51 12,501,25 1,25 1,25 2,50 2,50 2,50 6,26 6,25 6,26 12,58 12,50 12,581,25 1,25 1,25 2,50 2,50 2,50 6,26 6,26 6,26 14,26 12,79 12,531,26 1,25 1,26 2,53 2,50 2,53 6,31 6,25 6,31 12,52 12,52 12,501,26 1,25 1,25 2,50 2,50 2,50 6,27 6,26 6,27 12,52 12,52 12,511,25 1,25 1,25 2,50 2,50 2,50 6,26 6,25 6,25 12,57 12,51 12,571,25 1,25 1,25 2,56 2,50 2,56 6,26 6,25 6,26 12,53 12,51 12,531,25 1,25 1,25 2,55 2,51 2,54 6,26 6,26 6,25 12,53 12,50 12,521,27 1,27 1,26 2,51 2,50 2,51 6,25 6,25 6,25 12,51 12,51 12,511,25 1,25 1,25 2,64 2,50 2,64 6,26 6,26 6,26 12,61 12,51 12,611,25 1,25 1,25 2,66 2,50 2,65 6,29 6,25 6,29 12,51 12,51 12,511,27 1,25 1,25 2,69 2,50 2,52 6,27 6,25 6,27 12,51 12,50 12,511,26 1,26 1,25 2,51 2,50 2,51 6,28 6,25 6,28 12,55 12,50 12,551,29 1,28 1,26 2,51 2,50 2,50 6,27 6,27 6,26 12,64 12,52 12,491,27 1,26 1,25 2,52 2,50 2,51 6,26 6,25 6,26 12,75 12,54 12,561,27 1,25 1,27 2,53 2,50 2,53 6,51 6,25 6,43 12,53 12,53 12,521,31 1,25 1,29 2,52 2,50 2,52 6,36 6,25 6,36 12,51 12,50 12,511,35 1,25 1,33 2,51 2,51 2,51 6,34 6,26 6,34 12,60 12,53 12,591,25 1,25 1,25 2,50 2,50 2,50 6,46 6,25 6,30 12,51 12,50 12,511,27 1,25 1,27 2,50 2,50 2,50 6,27 6,25 6,27 12,52 12,50 12,521,25 1,25 1,25 2,51 2,51 2,50 7,21 6,25 6,36 12,51 12,51 12,501,28 1,25 1,25 2,52 2,50 2,52 6,52 6,26 6,52 13,09 12,53 13,081,25 1,25 1,25 2,51 2,50 2,51 6,27 6,25 6,27 12,52 12,52 12,501,25 1,25 1,25 2,51 2,50 2,51 6,26 6,25 6,26 12,53 12,53 12,50

Průměr 1,26 1,25 1,26 2,53 2,50 2,52 6,31 6,26 6,29 12,54 12,51 12,53Medián 1,26 1,25 1,25 2,51 2,50 2,51 6,27 6,25 6,27 12,52 12,51 12,51Modus 1,25 1,25 1,25 2,51 2,50 2,51 6,26 6,25 6,26 12,51 12,50 12,51Výsledek

měřěn

é ča

sy [s

ec]

1,25 2,51 6,26 12,51

5000 10000 25000 50000

obrázek 8.24: Paralelní transformace souřadnic – varianta B – 2PN

Page 118: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

116 ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst5 csst5 csst4 csst03

1,08 0,83 0,83 0,98 2,33 1,67 1,66 1,951,08 0,84 0,84 0,98 2,32 1,67 1,68 1,961,14 0,83 0,84 0,97 2,31 1,67 1,67 1,961,11 0,83 0,85 0,97 2,33 1,68 1,67 1,971,06 0,84 0,84 0,98 2,35 1,66 1,66 1,961,09 0,83 0,83 0,97 2,24 1,67 1,66 1,961,14 0,84 0,84 0,98 2,29 1,78 1,67 1,951,67 0,83 0,83 1,30 2,31 1,67 1,67 1,961,06 0,84 0,84 0,98 2,26 1,68 1,66 1,961,08 0,83 0,83 0,97 2,22 1,67 1,67 1,961,07 0,83 0,84 0,98 2,21 1,67 1,67 1,951,07 0,84 0,84 0,98 2,22 1,67 1,67 1,961,15 0,86 0,83 0,99 2,20 1,66 1,67 1,951,09 0,84 0,83 0,98 2,25 1,68 1,66 1,951,07 0,84 0,84 0,98 2,35 1,72 1,66 1,951,10 0,83 0,83 0,98 2,27 1,67 1,67 1,961,10 0,83 0,83 0,97 2,24 1,67 1,66 1,961,09 0,83 0,85 0,98 2,20 1,67 1,67 1,951,14 0,90 0,84 0,98 2,21 1,66 1,67 1,981,08 0,84 0,84 0,98 2,35 1,70 1,67 1,951,13 0,84 0,83 0,98 2,29 1,67 1,67 1,961,15 0,84 0,84 0,98 2,31 1,82 1,67 1,951,19 0,85 0,84 0,98 2,28 1,67 1,68 1,951,19 0,84 0,85 0,98 2,36 1,66 1,66 1,951,15 0,84 0,84 0,98 2,25 1,67 1,66 1,951,24 0,83 0,83 0,98 2,25 1,67 1,66 1,951,24 0,84 0,83 0,97 2,36 1,67 1,66 1,971,26 0,83 0,83 0,98 2,25 1,67 1,67 1,961,18 0,84 0,83 0,98 2,31 1,67 1,68 1,961,15 0,83 0,83 0,97 2,28 1,74 1,68 1,951,14 0,84 0,84 0,98 2,41 1,67 1,68 1,951,11 0,84 0,83 0,98 2,29 1,68 1,67 1,961,13 0,83 0,83 0,97 2,24 1,67 1,67 1,951,07 0,83 0,83 0,97 2,27 1,66 1,66 1,971,05 0,83 0,83 0,97 2,40 1,66 1,66 1,951,09 0,83 0,83 0,98 2,33 1,68 1,67 1,951,08 0,84 0,84 0,98 2,43 1,70 1,67 1,951,10 0,83 0,84 0,98 2,33 1,68 1,67 1,961,10 0,83 0,83 0,97 2,26 1,67 1,67 1,961,09 0,83 0,83 0,98 2,35 1,66 1,66 1,951,09 0,83 0,83 0,98 2,32 1,67 1,67 1,951,13 0,83 0,83 0,99 2,41 1,68 1,71 1,961,07 0,83 0,83 0,98 2,25 1,67 1,67 1,961,08 0,84 0,84 0,98 2,26 1,66 1,67 1,951,09 0,84 0,84 0,98 2,46 1,67 1,67 1,951,09 0,84 0,83 0,98 2,24 1,67 1,67 1,961,11 0,83 0,83 0,97 2,27 1,67 1,66 1,951,09 0,83 0,84 0,98 2,31 1,66 1,67 1,951,17 0,83 0,83 0,98 2,27 1,66 1,66 1,981,16 0,85 0,83 0,98 2,25 1,66 1,66 1,95

Průměr 1,11 0,84 0,84 0,98 2,30 1,68 1,67 1,96Medián 1,10 0,84 0,83 0,98 2,29 1,67 1,67 1,95Modus 1,09 0,83 0,83 0,98 2,25 1,67 1,67 1,95Výsledek

5000 10000

měřěn

é ča

sy [s

ec]

1,09 2,25

tabulka 8.14: Paralelní transformace souřadnic – varianta B – 3PN (5000 a 10000 d.v.)

Page 119: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

117ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst5 csst5 csst4 csst03

9,72 4,41 4,17 4,89 32,29 8,39 9,35 9,809,36 4,17 4,17 4,91 33,85 8,54 8,34 9,77

10,44 4,19 4,16 4,88 33,79 8,63 8,39 9,769,20 4,18 4,17 4,91 31,46 8,51 8,34 9,768,79 4,25 4,17 4,89 37,55 8,46 8,77 9,798,47 4,19 4,17 4,89 36,34 8,78 8,41 9,788,99 4,31 4,16 4,88 34,87 8,46 8,34 9,799,00 4,18 4,16 4,89 34,57 8,42 8,34 9,789,17 4,22 4,16 4,88 36,32 8,38 8,41 9,788,86 4,19 4,17 4,90 34,12 8,43 8,35 9,779,78 4,26 4,17 4,88 36,43 8,41 9,64 9,799,35 4,20 4,17 4,90 33,45 8,48 8,65 9,788,61 4,18 4,17 4,88 35,27 8,38 8,74 9,799,21 4,19 4,17 4,89 38,35 8,38 8,44 9,898,77 4,20 4,17 4,88 32,94 8,37 8,36 9,809,49 4,18 4,16 4,89 35,61 8,41 8,34 9,789,35 4,20 4,16 4,88 33,04 8,41 8,36 9,799,25 4,17 4,16 4,88 36,92 8,38 8,86 9,808,28 4,18 4,16 4,88 33,20 8,34 8,34 10,138,49 4,18 4,17 4,88 35,43 8,37 8,33 9,779,75 4,19 4,17 5,15 30,80 8,46 8,33 9,778,10 4,18 4,19 4,88 33,98 8,39 8,43 9,769,18 4,19 4,16 4,88 32,07 8,55 8,35 9,798,72 4,17 4,16 4,89 37,26 8,39 8,35 9,788,40 4,26 4,19 4,88 31,75 8,37 8,34 9,798,50 4,17 4,17 4,91 35,00 8,52 8,35 9,798,44 4,19 4,17 4,88 34,19 8,53 8,35 9,78

10,18 4,37 4,17 4,90 35,20 8,46 8,34 9,7910,02 4,50 4,16 4,89 35,03 8,54 8,33 9,78

8,48 4,17 4,17 4,88 34,45 8,37 8,33 9,778,38 4,19 4,16 4,89 36,85 8,48 8,79 9,778,46 4,27 4,16 4,89 39,09 8,41 8,55 9,778,30 4,34 4,16 4,89 34,49 8,58 8,61 9,798,44 4,20 4,17 4,91 35,20 8,40 8,60 9,788,37 4,32 4,17 4,88 31,07 8,38 8,34 9,788,57 4,21 4,17 4,90 32,72 8,38 8,33 9,779,16 4,20 4,17 4,88 33,06 8,67 8,35 9,778,45 4,19 4,17 4,90 35,42 8,43 8,44 9,809,86 4,18 4,17 4,88 33,82 8,41 8,34 9,778,82 4,20 4,17 4,91 36,59 8,39 8,34 9,80

10,12 5,59 4,17 5,18 35,32 8,36 8,33 9,798,27 4,19 4,20 4,88 35,59 8,37 8,34 9,788,66 4,20 4,17 4,88 32,09 8,37 8,33 9,808,76 4,18 4,17 4,91 33,33 8,39 8,42 9,78

10,82 4,99 4,17 4,89 37,55 8,38 8,43 10,028,47 4,17 4,17 4,89 31,82 8,37 8,34 9,808,21 4,19 4,17 4,89 35,33 8,70 8,33 9,778,08 4,17 4,17 4,88 31,80 8,66 8,34 9,778,75 4,19 4,18 4,89 31,33 8,57 8,34 9,779,48 4,19 4,17 4,90 31,48 8,37 8,34 9,78

Průměr 8,73 4,20 4,17 4,89 33,60 8,45 8,41 9,79Medián 8,66 4,19 4,17 4,89 33,82 8,41 8,34 9,78Modus 8,47 4,19 4,17 4,88 35,20 8,37 8,34 9,77Výsledek 33,60

25000 50000

8,47

měřěn

é ča

sy [s

ec]

tabulka 8.15: Paralelní transformace souřadnic – var. B – 3PN (25000 a 50000 d.v.)

Page 120: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

118 ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst06 csst5 csst5 csst4 csst03 csst06

0,96 0,63 0,66 0,74 0,77 2,60 1,27 1,26 1,47 1,541,04 0,68 0,63 0,73 0,77 2,36 1,27 1,26 1,46 1,500,95 0,62 0,62 0,73 0,76 2,59 1,26 1,25 1,50 1,501,08 0,64 0,62 0,74 0,74 2,43 1,33 1,26 1,46 1,521,03 0,62 0,62 0,73 0,74 2,54 1,25 1,25 1,47 1,501,08 0,64 0,62 0,74 0,76 2,74 1,25 1,26 1,46 1,481,21 0,63 0,64 0,74 0,91 2,36 1,27 1,26 1,46 1,491,09 0,63 0,62 0,73 0,76 2,27 1,26 1,25 1,47 1,481,09 0,64 0,63 0,74 0,75 2,49 1,27 1,28 1,46 1,491,19 0,63 0,63 0,73 0,75 2,28 1,25 1,26 1,53 1,501,05 0,63 0,64 0,79 0,75 2,34 1,25 1,26 1,47 1,501,24 0,63 0,63 0,73 0,75 2,41 1,28 1,25 1,47 1,491,16 0,63 0,63 0,73 0,75 2,40 1,25 1,26 1,46 1,491,22 0,63 0,62 0,74 0,79 2,54 1,28 0,25 1,46 1,491,12 0,63 0,63 0,73 0,75 2,42 1,26 1,26 1,47 1,491,33 0,70 0,62 0,73 0,75 2,42 1,27 1,25 1,47 1,491,12 0,62 0,62 0,74 0,74 2,34 1,25 1,25 1,50 1,501,18 0,98 0,63 0,73 0,75 2,49 1,24 1,25 1,47 1,491,18 0,64 0,68 0,73 0,75 2,60 1,26 1,25 1,46 1,501,22 0,64 0,62 0,75 0,75 2,67 1,25 1,25 1,46 1,481,25 0,81 0,63 0,89 0,76 2,61 1,29 1,25 1,46 1,491,06 0,62 0,62 0,74 0,76 2,35 1,26 1,25 1,47 1,481,03 0,62 0,63 0,74 0,75 2,39 1,27 1,25 1,47 1,501,13 0,63 0,62 0,73 0,86 2,44 1,26 1,25 1,53 1,501,08 0,62 0,62 0,73 0,77 2,32 1,25 1,26 1,47 1,511,10 0,62 0,66 0,74 0,76 2,49 1,28 1,25 1,47 1,501,11 0,63 0,63 0,73 0,75 2,74 1,76 1,26 1,46 1,501,14 0,63 0,63 0,73 0,80 2,30 1,26 1,26 1,47 1,481,03 0,63 0,63 0,73 0,76 2,97 1,26 1,26 1,47 1,491,05 0,62 0,62 0,74 0,75 2,19 1,27 1,25 1,46 1,501,08 0,62 0,62 0,73 0,73 2,56 1,26 1,25 1,51 1,491,14 0,62 0,62 0,74 0,76 2,70 1,26 1,25 1,47 1,500,99 0,63 0,63 0,73 0,76 2,38 1,26 1,25 1,46 1,481,12 0,63 0,63 0,73 0,76 2,69 1,25 1,25 1,47 1,481,07 0,63 0,63 0,74 0,75 2,43 1,27 1,25 1,47 1,481,11 0,63 0,62 0,74 0,75 2,49 1,27 1,26 1,46 1,491,17 0,62 0,63 0,74 0,75 2,24 1,27 1,26 1,47 1,501,10 0,63 0,63 0,73 0,75 2,74 1,26 1,25 1,51 1,480,98 0,63 0,63 0,73 0,76 2,40 1,26 1,25 1,46 1,511,02 0,63 0,63 0,73 0,76 2,54 1,25 1,26 1,46 1,481,17 0,62 0,64 0,78 0,76 2,59 1,28 1,26 1,46 1,511,16 0,63 0,63 0,73 0,76 2,37 1,27 1,25 1,46 1,491,16 0,80 0,63 0,73 0,78 2,76 1,28 1,26 1,47 1,511,17 0,62 0,63 0,74 0,74 2,42 1,32 1,25 1,46 1,491,11 0,63 0,63 0,73 0,76 2,57 1,26 1,26 1,48 1,481,12 0,62 0,62 0,73 0,75 2,36 1,27 1,25 1,47 1,520,99 0,62 0,62 0,74 0,76 2,43 1,25 1,25 1,47 1,481,04 0,63 0,63 0,73 0,75 2,46 1,25 1,25 1,46 1,491,17 0,63 0,63 0,73 0,74 2,37 1,25 0,27 1,46 1,651,00 0,62 0,62 0,74 0,74 2,36 1,26 1,25 1,47 1,49

Průměr 1,11 0,64 0,63 0,74 0,76 2,46 1,27 1,21 1,47 1,50Medián 1,11 0,63 0,63 0,73 0,75 2,43 1,26 1,25 1,47 1,49Modus 1,08 0,63 0,63 0,73 0,75 2,36 1,26 1,25 1,47 1,49Výsledek

5000 10000

měřěn

é ča

sy [s

ec]

1,08 2,36

tabulka 8.16: Paralelní transformace souřadnic – varianta B – 4PN (5000 a 10000 d.v.)

Page 121: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

119ČVUT, FSv, katedra mapování a kartografie

Počet d.v. Master Masteruzel csst5 csst5 csst4 csst03 csst06 csst5 csst5 csst4 csst03 csst06

11,54 3,22 3,14 3,69 3,7210,02 3,26 3,13 4,01 3,7011,56 3,13 3,18 3,66 3,7010,40 3,21 3,14 3,66 3,6910,49 3,17 3,14 3,67 3,6911,56 3,14 3,13 3,68 3,6912,08 3,26 3,13 3,66 3,6912,72 3,21 3,15 3,66 3,7010,25 3,32 4,16 3,69 3,6910,98 3,28 3,49 3,67 3,6912,00 3,50 3,13 3,66 3,7211,58 3,52 3,12 3,68 3,7112,56 3,57 3,13 3,66 3,7112,37 3,70 3,13 3,66 3,7110,50 4,16 3,12 3,71 3,7011,03 4,32 3,16 3,66 3,7211,14 4,94 3,16 3,67 3,7310,73 4,73 3,12 3,72 3,7010,41 4,17 3,13 3,66 3,7111,49 4,58 3,13 3,68 3,7110,47 4,39 3,14 3,66 3,7011,64 4,02 3,14 3,66 3,7112,35 4,88 3,13 3,66 3,7010,68 4,70 3,13 3,66 3,7111,68 4,21 3,30 3,66 3,7310,66 3,79 3,14 3,67 3,7011,47 3,69 3,13 3,66 3,7011,63 3,66 3,13 3,69 3,709,33 3,13 3,13 3,67 3,71

10,06 3,15 3,13 3,66 3,709,66 3,15 3,13 3,66 3,70

10,21 3,14 3,14 3,66 3,699,96 3,16 3,13 3,68 3,68

10,32 3,16 3,17 3,66 3,6810,41 3,17 3,17 3,71 3,7010,61 3,13 3,24 3,67 3,699,70 3,15 3,27 3,66 3,709,46 3,16 3,53 3,67 3,699,70 3,13 3,26 3,67 3,688,46 3,22 3,41 3,72 3,70

10,14 3,12 3,13 3,67 3,6910,89 3,16 3,14 3,71 3,6912,73 5,26 3,14 3,66 3,7212,42 5,31 3,15 3,66 3,7211,24 5,17 3,21 3,69 3,7011,60 5,07 3,25 3,66 3,7112,28 5,54 3,20 3,67 3,7510,91 5,22 3,20 3,70 3,7110,70 4,60 3,18 3,67 3,7011,90 5,72 3,20 3,67 3,73

Průměr 10,23 3,56 3,23 3,69 3,70 #DIV/0! #DIV/0! #DIV/0! #DIV/0! #DIV/0!Medián 10,40 3,17 3,14 3,67 3,70 #NUM! #NUM! #NUM! #NUM! #NUM!Modus 10,41 3,16 3,13 3,66 3,70 #N/A #N/A #N/A #N/A #N/AVýsledek 70,00

25000 50000

měřěn

é ča

sy [s

ec]

10,23

tabulka 8.17: Paralelní transformace souřadnic – var. B – 4PN (25000 a 50000 d.v.)

Page 122: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

120ČVUT, FSv, katedra mapování a kartografie

Výsledky časových testů paralelní transformace souřadnic

0,00

5,00

10,00

15,00

20,00

25,00

30,00

35,00

40,00

1 2 3 4

Počet procesorů

Čas

[sec

]

5000

10000

25000

50000

graf 8.9: Závislost času paralelní transformace souřadnic na počtu procesorů – var. B

Page 123: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

121ČVUT, FSv, katedra mapování a kartografie

Nárůst výkonu při paralelní transformaci souřadnic

0,00

1,00

2,00

3,00

4,00

1 2 3 4

Počet procesorů

Výko

n

5000

10000

25000

50000

lineární

graf 8.10: Výsledný nárůst výkonu při paralelní transformaci souřadnic – varianta B

Page 124: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

122 ČVUT, FSv, katedra mapování a kartografie

8.3.4 Hodnocení

8.3.4.1 Varianta A – využití odkládacích souborů Z výsledků časových testů je patrné, že tento přístup je při použití více procesorů

lepší než varianta B. Je to zapříčiněno způsobem komunikace, která v obou případech (varianta A1 i varianta B) tvoří převážnou část procesorového času potřebného pro řešení úlohy.

Nepoměr výkonu prvních dvou procesorů a přidaného třetího procesoru způsobil, že celkový čas běhu úlohy byl závislý výhradně na výkonu nejpomalejšího z procesorů, kterým byl právě poslední přidaný procesor. To se týká jak varianty A1, tak varianty A2. Přidáním dalšího procesoru se tento handicap částečně kompenzuje a graf 8.5 a graf 8.6 opět získává klesající tendenci.

Nepravidelnost v grafech závislosti naměřených časů na počtu použitých procesorů (graf 8.5 a graf 8.6) je způsobena absencí load balancingu. Při jeho použití by byla tato nepravidelnost eliminována a graf by si teoreticky uchovával klesající tendenci po celé své délce.

Nerovnoměrný výkon použitých paralelních uzlů je pak patrný zvláště na grafech růstu výkonu (graf 8.7 a graf 8.8), kdy po nárůstu výkonu způsobeném přidáním druhého procesoru je vidět jeho následný propad zapříčiněný již zmíněnou závislostí dosažených časů na rychlosti nejpomalejšího paralelního uzlu.

Velmi pozitivní výsledky nezatížené přenosem po propojovací síti poskytuje varianta A2, a to vzhledem k téměř úplnému vyloučení komunikace po ICNW v průběhu výpočtu. Jedná se asi o nejrychlejší řešení ze všech použitých. Získané časy jsou v porovnání s ostatními variantami méně než desetinové. Tuto variantu vidím v konečném důsledku jako nejpoužitelnější ze všech testovaných – mimo jiné také proto, že jako jediná dosahuje při paralelním zpracování časů lepších než sekvenční verze programu. U varianty A2 jsou sice dosažené časy pro 3 a 4 procesory horší než časy dosažené zpracováním jedním procesem, ale to je způsobeno výše zmíněnou absencí load balancingu. Při jeho aplikaci by tato varianta zřejmě vykazovala sublineární růst výkonu.

8.3.4.2 Varianta B - přenos dat po síti Z uvedených grafů závislosti naměřeného času na počtu použitých procesorů je

patrné, že s růstem počtu zpracovávaných datových vět pomalu klesá čas výsledného zpracování – v případě souborů s větším objemem dat (25.000 a 50.000 datových vět) se čas zpracování po přidání třetího procesoru naopak drasticky zvyšuje. Je to způsobeno jednak absencí load balancingu a jednak nárůstem objemu a složitosti komunikace procesů po propojovací síti.

Z grafu růstu výkonu je patrné, že po přidání druhého procesoru výkon vzrostl téměř lineárně, přidání dalších procesorů však nezpůsobilo markantnější zvýšení výkonu, naopak je možno říci, že u větších objemů dat vedlo rozdrobení úlohy mezi více procesorů k poklesu výkonu, a to až pod hodnoty dosahované jedním procesorem.

Ztráta výkonu po přidání dalších procesorů byla způsobena nejen nižším výkonem třetího a čtvrtého procesoru v porovnáním s prvními dvěma, ale také vyššími nároky na komunikaci mezi větším počtem současně komunikujících paralelních uzlů.

Page 125: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

123ČVUT, FSv, katedra mapování a kartografie

8.3.5 Závěr Naměřené výsledky potvrzují teoretický předpoklad, že větší míra komunikace po

relativně pomalé ICNW (v porovnání s přístupem do paměti) povede k prudkému poklesu výkonu a ke ztrátě efektivnosti paralelního zpracování. Z výsledných hodnot je patrné, že použití přenosu po propojovací síti je kritickým nedostatkem použitého postupu a znehodnocuje paralelní zpracování hluboko pod úroveň použití sekvenčního algoritmu.

Z výše uvedeného závěru těží varianta A2 algoritmu, která komunikaci po ICNW používá jen minimálně a naměřené časy jsou v porovnání s variantami A1 a B nesrovnatelně menší.

Kritickým omezením pro růst výkonu paralelního systému se ukázala být absence load balancingu, která vedla ke snížení výkonu až pod úroveň dosaženou jedním procesorem. To bylo důsledkem nevyrovnaného výkonu jednotlivých uzlů a záviselo na pořadí v jakém byly procesorové uzly přidávány do konfigurace. Pokud by byly procesory přidávány od nejpomalejšího z nich k nejrychlejším, graf nárůstu výkonu by pravděpodobně pouze stoupal, celkový výkon dosažený paralelizací by však zůstal nezměněn.

Z výsledků testů vyplývá nutnost aplikace load balancingu při použití výkonově nehomogenní sítě pracovních stanic a nutnost omezit se v průběhu paralelního algoritmu pouze na nezbytně nutné množství komunikace mezi pracujícími paralelními uzly.

Transformace souřadnic je poměrně jednoduchá aplikace, u které je ideální použít datovou paralelizaci. Z toho plyne, že pro paralelizaci úlohy je třeba zabezpečit rychlý přísun dat (zpracování 10000 datových vět trvá méně něž jednu sekundu) všem spolupracujícím procesům, což však v případě sítě počítačů není po relativně pomalé propojovací síti možné – viz výsledky variant A1 a B. Proto je ideální vstupy i výstupy jednotlivých paralelních procesů zabezpečovat z lokálních pamětí jednotlivých uzlů (v našem případě z diskové paměti) – viz výsledky varianty A2.

8.48.48.48.4 Řešení soustavy rovnic metodou LTSŘešení soustavy rovnic metodou LTSŘešení soustavy rovnic metodou LTSŘešení soustavy rovnic metodou LTS Metoda LTS (Least Trimmed Squares) patří mezi tzv. robustní metody řešení

přeurčené soustavy lineárních rovnic. Výhodou těchto metod je, že s jejich pomocí můžeme získat poměrně kvalitní výsledky i v případě že vstupní data obsahují určité procento hrubých chyb (odlehlých měření).

8.4.1 Teorie Pro zjednodušení jsem v tomto experimentu uvažoval pouze diagonální matici

vah, tzn. vyrovnání se účastnila nekorelovaná měření.

Použité označení: Symbol Označující dimenze

M počet měřených hodnot (dimenze vektoru pravých stran) – N počet neznámých (dimenze vektoru neznámých) – A matice soustavy (8.4.1) M, N

Page 126: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

124 ČVUT, FSv, katedra mapování a kartografie

Symbol Označující dimenze b vektor pravých stran (vektor měření) (8.4.2) M x vektor neznámých N

W matice vah (8.4.4) M,M

diagW diagonální matice vah (váhy nekorelovaných měření) (8.4.5) M,M r vektor reziduí (8.4.9) M

Tr trimming constant –

Označení Symbolizuje

Z matice nebo vektor vstupující do vyrovnání (neupravená soustava rovnic)•Z matice nebo vektor upravené soustavy rovnic

oz nebo ⋅z vyrovnaný vektor neznámých (z upravené nebo neupravené soustavy) Zi vektor nebo matice i-té iterace LTS z Vektor setříděný podle absolutních hodnot svých prvků

Metoda LTS je založena na metodě nejmenších čtverců (Least Squares method) pro řešení soustavy lineárních rovnic (8.4.3).

(8.4.1)

MxNNMMMM

Nkkkk

Nkkkk

Nkkkk

N

N

aaaa

aaaaaaaa

aaaa

aaaaaaaa

A

�����������

�����������

=

++++

−−−−

,3,2,1,

,13,12,11,1

,3,2,1,

,13,12,11,1

,23,22,21,2

,13,12,11,1

..................

...

...

..................

...

...

(8.4.2)

MM

k

k

k

b

bb

b

bb

b

�����������

�����������

=

+

...

...

1

1

2

1

Page 127: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

125ČVUT, FSv, katedra mapování a kartografie

(8.4.3) bxA =.

(8.4.4)

MxMMMkMkMkMMM

Mkkkkkkkkk

Mkkkkkkkkk

Mkkk

kkkkkk

Mkkk

Mkkk

wwwwww

wwwwwwwwwwww

wwwwww

wwwwwwwwwwww

W

�����������

�����������

=

+−

++++−+++

+−

−+−

−−−−−

+−

+−

,1,,1,2,1,

,11,1,11,12,11,1

,1,,1,2,1,

,11,1

,11,12,11,1

,21,2,21,22,21,2

,11,1,11,12,11,1

..............................

......

......

..............................

......

......

(8.4.5)

MxMMM

kk

kk

kkdiag

w

ww

w

ww

W

�����������

�����������

=

++

−−

,

1,1

,

1,1

2,2

1,1

...000...00........................0...00...000...00...000...00...00........................0...000...00...000...0

Metoda nejmenších čtverců řeší soustavu lineárních rovnic za současného splnění podmínky minimalizace sumy vážených čtverců reziduí

(8.4.6)

�=

==M

iiiiiLS rrwnorm

1, .min

Řešení soustavy s uvážením vah poté dostaneme jako

(8.4.7)

WAAN T=

(8.4.8)

WbANx T1−⋅ =

Page 128: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

126 ČVUT, FSv, katedra mapování a kartografie

kde N je soustava normálních rovnic a kde rezidua vypočteme jako

(8.4.9)

bxAr −= ⋅.

8.4.2 Nástin problému Metoda nejmenších čtverců je obecně velmi náchylná k výskytu odlehlých

pozorování. To znamená, že i jediná hrubá chyba může zcela znehodnotit získané výsledky. Metoda nejmenších čtverců (MNČ) přitom umožňuje pouze detekovat měření, jehož eliminace vede k minimální hodnotě redukované sumy [ ]wrr . Obecně to však nemusí být měření zatížené hrubou chybou (viz [21]).

Nutnou podmínkou pro úspěšné odhalení hrubé chyby (případně hrubých chyb) pomocí metody nejmenších čtverců je, aby měření byla vzájemně kontrolována (viz například [22]).

8.4.3 Metoda LTS Metoda LTS (Least Trimmed Squares) je robustní metoda, která se snaží

minimalizovat nebo úplně odstranit vliv hrubých chyb (odlehlých měření) na výsledky vyrovnání soustavy rovnic metodou nejmenších čtverců.

Slovo Trimmed (oříznout, oseknout) v názvu metody naznačuje v čem tato metoda spočívá. Je zde řešena upravená soustava rovnic s vyloučením předem zvoleného počtu měřených hodnot za současného splnění podmínky minimalizace vážených reziduí hodnot použitých při vyrovnání.

Základní podmínkou pro funkci metody LTS je nadbytečný počet měření potřebný pro vyrovnání. Řešená soustava musí obsahovat takový počet nadbytečných měření, aby bylo možno soustavu řešit i po odebrání těch měření, která považujeme potenciálně za odlehlá.

8.4.3.1 Princip Metoda LTS je založena na předpokladu, že pokud najdeme měření, která jsou

odlehlá a ze soustavy je odstraníme, pak řešením upravené soustavy rovnic (8.4.16) získáme vyrovnané hodnoty neznámých oproštěné od vlivu odlehlých měření.

Jedním ze vstupních parametrů metody LTS je takzvaná trimming constant (dále označovaná jako Tr), což je hodnota, která určuje kolik hodnot z kompletního souboru měřených hodnot bude ve vyrovnání uplatněno. Konstanta tedy definuje i předpokládaný počet odlehlých hodnot ve vstupních datech (M – Tr), jejichž vliv chceme s použitím metody LTS odstranit. Hodnota Tr musí být větší nebo rovna počtu nutných měření zvětšenému o jedna.

Vlastní metoda pak spočívá v opakovaných výběrech upravené soustavy rovnic a iteracích celého postupu tak, aby výsledná suma čtverců pro upravenou soustavu (8.4.18) byla minimální.

Výběr hodnot, které považujeme za odlehlé a budou z upravené soustavy odstraněny se řídí náhodně, nebo pomocí určitých pravidel, která budou objasněna dále.

Page 129: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

127ČVUT, FSv, katedra mapování a kartografie

Nyní si můžeme položit otázku, kolik náhodných výběrů je nutno uskutečnit, abychom mohli s jistou pravděpodobností tvrdit, že výsledek, který jsme pomocí metody vypočetli, není ovlivněn přítomností odlehlých měření ve vybraném vzorku?

Pravděpodobnost P, že alespoň jeden z L vybraných vzorků neobsahuje žádné odlehlé měření (označme tento vzorek jako „dobrý“) je podle [63] (za předpokladu, že soubor měření obsahuje procento ε odlehlých hodnot)

(8.4.10)

( )[ ]LTrP ε−−−= 111

Za předpokladu, že pravděpodobnost, že metodou získáme správný výsledek (nalezneme dobrý vzorek), se blíží jedné, můžeme pro počet vzorků psát

(8.4.11) ( )( )[ ]Tr

PLε−−

−=11log1log

Pro soubor o němž předpokládáme, že obsahuje 20% odlehlých měření pak dle výše uvedeného vztahu platí, že při velikosti náhodného vzorku Tr=10 musíme provést 41 náhodných výběrů, abychom s 99% pravděpodobností získali i výběr, který neobsahuje odlehlé měření (pro velikost náhodného vzorku 50 je již nutný počet náhodných výběrů roven 322658).

Metoda LTS však nepoužívá pouze náhodné výběry, ale usměrňuje výpočet k nalezení dobrého vzorku jinými metodami, které jsou popsány dále v textu (viz 8.4.3.5).

8.4.3.2 Tvorba upravené soustavy rovnic K vyrovnání metodou nejmenších čtverců je vytvořena upravená matice soustavy

•A , upravený vektor pravých stran •b a upravená matice vah •W a s nimi je poté provedeno vlastní vyrovnání.

Pro názornost předpokládejme tedy, že jsme označili k-té měření jako podezřelé a chceme řešit soustavu bez jeho účasti. V následujícím textu je popsán postup pro jedno námi zvolené k-té měření, ve skutečnosti však takových měření odstraňujeme zcela obdobným způsobem ze soustavy několik (v závislosti na velikosti trimming constant).

Upravenou matici soustavy •A (8.4.12) vytvoříme tak, že z matice soustavy A (8.4.1) odstraníme k-tý řádek

Page 130: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

128 ČVUT, FSv, katedra mapování a kartografie

(8.4.12)

TrxNNMkMkMMM

Nkkkkkkk

Nkkkkkkk

Nkk

Nkk

TrxNNTrTrTr

N

N

aaaaa

aaaaaaaaaa

aaaaaaaaaa

aaa

aaaaaa

A

����������

����������

=

�����

�����

=

+−

+++−+++

−+−−−−−

+−

+−

•••

•••

•••

,1,1,2,1,

,11,11,12,11,1

,11,11,12,11,1

,21,21,22,21,2

,11,11,12,11,1

,2,1,

,22,21,2

,12,11,1

...........................

......

...........................

......

......

...............

...

...

Obdobně vytvoříme upravený vektor pravých stran •b tak, že z vektoru pravých stran b (8.4.2) odstraníme k-tý prvek

(8.4.13)

TrM

k

k

TrTr

b

bb

bb

b

bb

b

���������

���������

=

�����

�����

=

+

...

...

...1

1

2

1

2

1

Jako poslední provedeme úpravu matice vah •W (8.4.14) (příp. (8.4.15)) odstraněním k-tého řádku a sloupce (k-tého prvku, pokud uvažujeme, že matice vah je diagonální (8.4.5)) z originální matice vah W (8.4.4).

(8.4.14)

TrxTrMMkMkMMM

Mkkkkkkk

Mkkkkkkk

Mkk

Mkk

TrxTrTrTrTrTr

Tr

Tr

wwwww

wwwwwwwwww

wwwwwwwwww

www

wwwwww

W

����������

����������

=

�����

�����

=

+−

+++−+++

−+−−−−−

+−

+−

•••

•••

•••

,1,1,2,1,

,11,11,12,11,1

,11,11,12,11,1

,21,21,22,21,2

,11,11,12,11,1

,2,1,

,22,21,2

,12,11,1

...........................

......

...........................

......

......

...............

...

...

Page 131: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

129ČVUT, FSv, katedra mapování a kartografie

(8.4.15)

TrxTrMM

kk

kk

TrxTrTrTr

diag

w

ww

ww

w

ww

W

����������

����������

=

�����

�����

=

++

−−

,

1,1

1,1

2,2

1,1

,

2,2

1,1

...00...00.....................0...0...000...0...00.....................0...00...00...00...0

...00............0...00...0

8.4.3.3 Řešení upravené soustavy rovnic Upravenou soustavu lineárních rovnic

(8.4.16) ••• = bxA .

poté řešíme pomocí metody nejmenších čtverců, tedy za současného splnění podmínky minimalizace sumy vážených kvadrátů reziduí upravené soustavy

(8.4.17)

�=

••• ==Tr

iiiiiLTS rrwnorm

1, .min

kde rezidua vypočteme jako

(8.4.18) •• −= bAxr ο

Řešení upravené soustavy poté dostaneme jako

(8.4.19)

( ) •••−

•••= bWAAWAx TT 1ο

8.4.3.4 Výběr prvního vzorku a LTS iterace Základním kamenem pro správnou funkci metody je výběr měření, která budou

tvořit upravenou soustavu rovnic s ohledem na velikost trimming constant. Například očekáváme, že až 5% měření je kontaminovaných. Z toho plyne, že vzorek bude obsahovat 95% všech měření.

Page 132: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

130 ČVUT, FSv, katedra mapování a kartografie

První výběr vzorku je možno provést náhodně. Řešíme tedy upravenou soustavu rovnic •• = bxA 111 . s uvážením matice vah •W1 .

Řešením pomocí rovnice (8.4.19) získáme vyrovnaný vektor neznámých οx1 , pomocí kterého (dosazením do neupravené rovnice soustavy (8.4.3)) získáme vektor reziduí

(8.4.20) οxAb 11 .=∗

(8.4.21)

bbr −= ∗∗ 11

LTS způsob hledání vzorku Uvažujme nyní, že námi zvolený náhodný výběr obsahoval odlehlá měření. Pro

urychlení dalšího postupu by bylo dobré zjistit, která měření z námi vybraného vektoru to byla a z výběru je odstranit. Další postup je založen na předpokladu, že rezidua odpovídající odlehlým měřením budou ve své absolutní hodnotě převyšovat ostatní vypočtená rezidua.

Podle tohoto předpokladu tedy postupujeme při tvorbě následujícího výběru. Získaný vektor reziduí ∗r1 setřídíme podle absolutních hodnot jednotlivých členů a jako následný vzorek vezmeme Tr měření odpovídajících prvním Tr členům setříděného vektoru reziduí ∗r1 .

(8.4.22)

MM

M

rr

rrrrr

r

�����������

�����������

=

−∗

1

11

51

41

31

21

11

1

...

Page 133: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

131ČVUT, FSv, katedra mapování a kartografie

(8.4.23)

MMS

TrS

TrS

TrS

S

S

Mn

m

l

k

j

i

h

r

rr

r

rr

rr

rrrrr

r

�����������

�����������

=

�����������

�����������

=

+

)(1

)1(1

)(1

)1(1

21

11

1

1

1

1

1

1

1

1

...

...

...

upravený vektor pravých stran v následující iteraci LTS bude tedy vypadat takto

(8.4.24)

TrTrS

TrS

S

S

S

S

bb

bbbb

b

����������

����������

=

)(

)1(

4

3

2

1

2

...

Celý výše popsaný postup se poté opakuje, dokud další iterace vede k získání hodnot lepších než iterace předchozí. V opačném případě je odstartována nová větev iterací prvním náhodným výběrem vzorku.

LTS iterací je možno označit řadu opakování řešení upravené soustavy s hledáním vzorku pomocí oříznutého vektoru setříděných čtverců reziduí až do okamžiku, kdy výběr pomocí LTS poskytuje horší hodnoty než v předchozím cyklu a kdy je nutno další vzorek vybrat náhodně. V dalším textu je však iterací míněna část algoritmu počínající výběrem vzorku, pokračující řešením upravené soustavy a konče získáním sumy čtverců LTSnorm .

8.4.3.5 Průběh dalšího výpočtu V průběhu výpočtu metodou LTS je znám zatím nejlepší nalezený vzorek a

hodnota sumy čtverců LTSnorm , které bylo jeho použitím dosaženo. Hledání dobrého vzorku pokračuje hledáním dalších iterací pomocí výše popsaného postupu. Získané vektory reziduí jsou tedy setříděny a získaná permutace vektoru je poté použita pro další iteraci. V každém kroku iterace mohou nastat tři různé situace

● pokud výsledek iterace poskytuje lepší výslednou hodnotu LTSnorm než zatím nejlepší nalezený vzorek, stává se tento výsledek nejlepším dosud nalezeným vzorkem a hledání dalšího vzorku pokračuje podle výše uvedeného LTS principu,

Page 134: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

132 ČVUT, FSv, katedra mapování a kartografie

● pokud je výsledkem iterace vzorek, který poskytuje horší výslednou hodnotu LTSnorm než nejlepší nalezený vzorek je tato větev výpočtu ukončena a

následující vzorek je vybrán náhodně,

● pokud je výsledkem iterace vzorek poskytující stejnou hodnotu LTSnorm jako nejlepší dosud nalezený vzorek, je inkrementován čítač zaznamenávající počet případů, kdy byla tato hodnota dosažena. Následující vzorek je poté vybrán náhodně.

8.4.3.6 Ukončení výpočtu Protože počet možných náhodných výběrů může být v závislosti na parametrech

metody obrovský a výpočet upravené soustavy rovnic pro všechny možné kombinace není možný†, je třeba stanovit podmínky pro ukončení výpočtu. Výsledkem metody je potom nejlepší nalezený vzorek.

Podmínky, které vedou k ukončení výpočtu mohou být různé a většinou nezávisí přímo na vlastní metodě LTS

● dosažený počet iterací – metoda je ukončena, pokud bylo dosaženo předem určeného počtu iterací. Nutný počet iterací můžeme stanovit odhadem, případně výpočtem například podle (8.4.11),

● dosažená hodnota sumy čtverců LTSnorm – výpočet můžeme ukončit, pokud nalezený vzorek poskytuje výsledky, jejichž hodnota LTSnorm je pro nás postačující,

● počet nálezů nejlepšího vzorku – možný konec výpočtu může být signalizován opakovaným nálezem téhož nejlepšího řešení. Zvětšením počtu opakování můžeme zajistit, že se nejednalo o náhodný výskyt téhož výsledku LTS, či případné lokální minimum, ale že se jedná opravdu o jeden z dobrých vzorků,

● existují i další možné situace kdy je možno výpočet ukončit, které budou popsány v kapitole věnující se paralelní implementaci metody LTS (8.4.4.6).

8.4.3.7 Klady a zápory I když ani metoda LTS není všemocnou záchranou – v určitých případech může

mít úloha tendenci konvergovat pouze k lokálnímu minimu (viz [20]) – je způsobem, jak ze sady dat znehodnocené výskytem odlehlých měření získat s vysokou pravděpodobností použitelné výsledky.

Mezi klady této metody můžeme počítat následující vlastnosti

● poskytuje kvalitní výsledky i při velkém procentu odlehlých měření ve vstupním souboru dat (limitně až 50% odlehlých měření),

● umožňuje tedy získat kvalitní výsledky i v případě, že výsledky získané LS jsou nepoužitelné,

● svou podstatou je extrémně vhodná pro paralelní zpracování.

† Všechny kombinace pro výběr vzorku lze vyzkoušet jen u velmi malých úloh, tato možnost však nemá praktické uplatnění; algoritmus LTS patří do kategorie takzvaných NP-úplných problémů, které nelze řešit v polynomiálním čase.

Page 135: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

133ČVUT, FSv, katedra mapování a kartografie

Mezi zápory pak patří

● patří mezi metody heuristické, proto nejlepší nalezené řešení nemusí být pro dva běhy metody s týmiž vstupními parametry stejné,

● nevhodně zvolenými parametry metody může být výpočet neúnosně prodloužen bez reálné pravděpodobnosti získání lepšího výsledku v porovnání s kratším během metody (s lépe vyladěnými parametry),

● na vhodné volbě parametrů závisí také ve velké míře kvalita získaných výsledků,

● někdy může metoda poskytovat nekorektní výsledky – (viz [20])

8.4.4 Paralelní řešení Metoda LTS je svou podstatou (řešení velkého počtu relativně samostatných

úloh) ideálním kandidátem pro paralelní řešení. Tento poznatek byl počátečním impulsem, k paralelizaci této metody.

Dalším kladem, který tuto úlohu předurčuje pro paralelní zpracování je její výše uvedená podstata, ktera je příznivým předpokladem pro jednoduchou aplikaci load balancingu (zvláště v případě použití výkonově nevyvážené heterogenní sítě pracovních stanic).

Z principu metody LST dále vyplynulo, že při vhodném způsobu paralelizace by míra komunikace mezi jednotlivými paralelními procesy mohla být minimální.

8.4.4.1 Přístup k paralelnímu řešení Paralelizace algoritmu LTS je vzhledem k jeho principu snadná a dostatečně

účinná. To, že úloha může být rozdrobena na velké množství víceméně nezávisle zpracovatelných částí je ideálním předpokladem pro paralelní zpracování.

Velký počet zpracovávaných řešení umožňuje neprovádět paralelizaci vlastního algoritmu (úpravy matic a paralelní řešení soustavy rovnic – tento přístup by pravděpodobně vyžadoval daleko větší objem komunikace po propojovací síti), ale paralelně zpracovávat jednotlivé vzorky z celkového souboru vstupních dat (viz. princip metody LTS 8.4.3)

Pro paralelizaci algoritmu se zdá ideálním přístup divide and conquer. Program je rozdělen na master a slave část. Master část zabezpečuje řízení běhu úlohy, synchronizaci výsledků a rozdělování výpočetních úloh mezi paralelně pracující slave procesy. Slave části pak slouží pouze jako computing engine. Jejich jedinou funkcí je přijmout zadání od master procesu, zpracovat ho, odeslat výsledky a čekat na další zadání.

Tento přístup umožňuje omezit komunikaci mezi procesy na nejmenší možnou míru. Po síti je přenášeno pouze zadání (několik bajtů) směrem master-slave, opačným směrem pak putují vypočtené hodnoty (dva vektory). To řeší problém zpomalení chodu algoritmu při větším množství komunikace probíhající po ICNW, který byl zaznamenán u předchozího experimentu.

Rozdělování zadání mezi paralelně pracující procesy, které řeší master proces, je možno vhodným způsobem upravit tak, že nové zadání je distribuováno procesu

Page 136: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

134 ČVUT, FSv, katedra mapování a kartografie

okamžitě potom, co vrátí výsledek předchozího výpočtu. To zaručuje plné vytížení všech výpočetních uzlů, což můžeme pak označit jako kvalitní load balancing, který je adaptabilní i k proměnlivé zátěži jednotlivých serverů v průběhu výpočtu – více viz 8.4.5.2.

Úpravy klasického algoritmu použité při paralelním řešení V paralelním řešení, které jsem implementoval, byly oproti sekvenčnímu

algoritmu použity dvě úpravy. Ty souvisí s problémem paralelního zpracování iterací, které v sekvenčním algoritmu často navazují na sebe a jejichž vstupy a výstupy se tudíž překrývají.

První úprava vznikla díky implementaci databáze permutací (viz 8.4.4.2). V případě, kdy je výsledkem hledání vzorek, který již byl použit jako vstup výpočtu (a tudíž je jasné, že řada iterací z něj pocházející by poskytla totožné výsledky jako při jeho minulém zpracování) je místo něj použit vzorek získaný alternativním postupem (geneticky, nebo náhodně).

Druhá úprava je důsledkem skutečnosti, že na výpočtu pracuje najednou několik nezávislých procesů, které nemusí být vždy stejně rychlé, proto vstupní hodnoty jednoho procesu většinou závisí i na hodnotách, které mezitím vypočetly jiné procesy.Výsledek LTS iterace je proto považován za dobrý (a další vzorek je získáván z tohoto výsledku opět pomocí LTS přístupu), pouze pokud se výsledek umístil mezi několika nejlepšími výsledky (viz TOPlist – 8.4.4.2). V opačném případě je nový vzorek získán některou z alternativních metod. (Přístup, který za dobrý považoval pouze výsledek, jenž byl ze všech získaných výsledků nejlepší, poskytoval stejně kvalitní výsledky, ale vyžadoval větší počet iterací pro dosažení výsledku.)

8.4.4.2 Použité objektové struktury Při tvorbě tohoto programu jsem vzhledem k použití C++ uplatnil objektový

přístup, jehož použití přineslo značné zjednodušení a zrychlení práce (oproti předchozím experimentům).

Po analýze vlastního algoritmu LTS a získání hrubého nárysu idey funkce jeho paralelní verze jsem přikročil k implementaci objektů, které měly poskytovat funkce požadované pro budoucí program.

Tyto objekty jsou implementací systému hledání vzorků vhodných pro zpracování, archivaci vypočtených výsledků a jejich hodnocení, řízení vlastního výpočtu na základě parametrů zadaných uživatelem při spuštění programu a konečný export výsledných hodnot, případně spolu s hodnotami popisujícími průběh výpočtu a samotného hledání nejlepšího vzorku.

Permutace Permutace byla prvním objektem, který jsem pro metodu LTS vytvořil. Při tvorbě

nových vzorků pomocí LTS je nejprve setříděn vektor reziduí vzešlý z předchozí iterace a prvních Tr členů tohoto vektoru je pak použito při tvorbě upravené soustavy rovnic pro iteraci následující. Setřídění vektoru reziduí nám tedy určuje permutační vektor, který stanovuje nové pořadí měření v upravené soustavě rovnic.

Princip názorně osvětluje následující obrázek. V prvním řádku je vidět vektor reziduí, v druhém řádku je pak setříděný vektor reziduí, kde čísla symbolizují indexy měření v původní soustavě rovnic. Je vidět, že měření nacházející se až za hranicí

Page 137: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

135ČVUT, FSv, katedra mapování a kartografie

stanovenou velikostí trimming constant jsou odlišena barevně od zbytku vektoru a ve výpočtu další iterace se taková měření neuplatní.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25Tr

14 6 23 9 10 15 2 18 25 12 19 4 14 11 20 1 16 13 5 22 3 8 21 7 17

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1

obrázek 8.25: Princip permutačního vektoru

Při výpočtu však není důležité znát přesnou permutaci vektoru měření, ale pouze skutečnost, zda bude dané měření použito při sestavování upravené sestavy rovnic. K tomuto účelu jsem tedy vytvořil objekt permutace, který reprezentuje celou posloupnost měření vstupujících do výpočtu a jejich další použití pro následující iteraci.

Permutace je implementována polem jednotlivých bitů, jejichž stav reprezentuje jejich další použití ve výpočtu. Tento princip je zřejmý z grafického znázornění permutace jako čtvrtého řádku viz obrázek 8.25.

Použití bitového pole namísto vlastního permutačního vektoru přineslo při paralelním zpracování úsporu komunikace. Pokud uvažujeme počet měření 1000, trimming constant 980 a reprezentaci čísla typu integer dvěma bajty, tak při použití tohoto principu namísto 1960 bajtů přenášíme řetězec dlouhý pouhých 125 bajtů, což značně zkracuje čas potřebný pro komunikaci mezi procesy.

Tato reprezentace permutačního vektoru je s velkou výhodou využívána v dále zmiňovaném genetickém přístupu k výběru nových vzorků (viz 8.4.4.4), kde jednotlivé bity permutace suplují geny.

Objektový typ permutace je vybaven vlastností, která při všech operacích s ním udržuje konstantní poměr nastavených a nenastavených bitů v permutaci rovný velikosti trimming constant. To je v dále uvedeném genetickém přístupu reprezentováno jako konstantní variantní poměr.

Objekt typu permutace je vybaven metodami, které mu umožňují náhodné zamíchání jednotlivých bitů (opět se zachováním jejich konstantního poměru), posílání obsahu vektoru jiným procesům prostřednictvím PVM a jejich následné přijmutí. Nad tímto objektovým typem jsou také definovány operátory výstupu (výstup formátovaného permutačního řetězce), odčítání (zjištění míry odlišnosti dvou řetězců) a sčítání (dále zmiňované genetické křížení dvou permutací). Objekt je vybaven i dalšími metodami zabezpečujícími dále popsanou tvorbu nových vzorků pomocí genetických principů a LTS přístupu.

Core Asi nejdůležitějším objektem celého programu je jeho jádro (core). Jádro v sobě

zahrnuje objekty implementující archivaci a hodnocení výsledků a samo o sobě je zodpovědné za řízení chodu metody LTS, tedy výběr vhodných permutací pro řešení, jejich odesílání slave procesům a příjem výsledných hodnot.

Page 138: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

136 ČVUT, FSv, katedra mapování a kartografie

Core

Master proces

Storage

Databáze permutací (RDB)

K jednotlivým permutacímuchovává: r, x, norm, číslo iterace, singularita?,stav výpočtu (probíhá?).

TOP list

Seznam nejlepších dosažených výsledků s odkazem do RDB.Uchovává i nejlepší norm a příznak zda došlo k jeho změně v minulé iteraci.

Task worklist

Seznam úkolů jednotlivých slave procesů - stav procesu (pracuje?), početzpracovaných iterací + odkaz do RDB na aktuální zpracovávanou iteraci.

Ukládá všechny informace o zpracovaných iteracích včetně evidence nejlepších pokusů a zabezpečuje rozdělování nových iterací nepracujícím slave procesům.

Zabezpečuje řízení běhu výpočtu, hledání nových permutací podle požadovaných pravidel, odesílání nových permutací nepracujícím procesům a příjem výsledných hodnot od paralelně pracujících procesů. Hodnotí také splnění podmínek nutných pro ukončení výpočtu. Na konci výpočtu tvoří výstupní soubor a na požádání i detailní popis průběhu výpočtu včetně všech vypočtených iterací (detailnost výpisu je nastavitelná).Eviduje celkový počet iterací a počty permutací získaných odlišnými postupy (LTS, náhodně, geneticky, atd.)

Zabezpečuje řízení celého paralelního výpočtu, počáteční zjištění vstupních parametrů a kontrolu jejich validity.Dále se stará o zplození paralelně pracujících procesů a jejich inicializaci.Potom inicializuje jádro metody a čeká na ukončení vlastního paralelního výpočtu. Poté se postará o požadované výstupy a zastaví paralelní procesy.

Sekvenční část celého programu se omezuje pouze na počáteční načtení a kontrolu vstupních parametrů, vytvoření a inicializaci jádra metody a korektní ukončení programu po získání výsledku.

CoreCore

Master proces

Storage

Databáze permutací (RDB)

K jednotlivým permutacímuchovává: r, x, norm, číslo iterace, singularita?,stav výpočtu (probíhá?).

Databáze permutací (RDB)

K jednotlivým permutacímuchovává: r, x, norm, číslo iterace, singularita?,stav výpočtu (probíhá?).

TOP list

Seznam nejlepších dosažených výsledků s odkazem do RDB.Uchovává i nejlepší norm a příznak zda došlo k jeho změně v minulé iteraci.

TOP list

Seznam nejlepších dosažených výsledků s odkazem do RDB.Uchovává i nejlepší norm a příznak zda došlo k jeho změně v minulé iteraci.

Task worklist

Seznam úkolů jednotlivých slave procesů - stav procesu (pracuje?), početzpracovaných iterací + odkaz do RDB na aktuální zpracovávanou iteraci.

Task worklistTask worklist

Seznam úkolů jednotlivých slave procesů - stav procesu (pracuje?), početzpracovaných iterací + odkaz do RDB na aktuální zpracovávanou iteraci.

Ukládá všechny informace o zpracovaných iteracích včetně evidence nejlepších pokusů a zabezpečuje rozdělování nových iterací nepracujícím slave procesům.

Zabezpečuje řízení běhu výpočtu, hledání nových permutací podle požadovaných pravidel, odesílání nových permutací nepracujícím procesům a příjem výsledných hodnot od paralelně pracujících procesů. Hodnotí také splnění podmínek nutných pro ukončení výpočtu. Na konci výpočtu tvoří výstupní soubor a na požádání i detailní popis průběhu výpočtu včetně všech vypočtených iterací (detailnost výpisu je nastavitelná).Eviduje celkový počet iterací a počty permutací získaných odlišnými postupy (LTS, náhodně, geneticky, atd.)

Zabezpečuje řízení celého paralelního výpočtu, počáteční zjištění vstupních parametrů a kontrolu jejich validity.Dále se stará o zplození paralelně pracujících procesů a jejich inicializaci.Potom inicializuje jádro metody a čeká na ukončení vlastního paralelního výpočtu. Poté se postará o požadované výstupy a zastaví paralelní procesy.

Sekvenční část celého programu se omezuje pouze na počáteční načtení a kontrolu vstupních parametrů, vytvoření a inicializaci jádra metody a korektní ukončení programu po získání výsledku.

obrázek 8.26: Schéma funkce použitých objektů - paralelní LTS

Page 139: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

137ČVUT, FSv, katedra mapování a kartografie

Jádro mimo jiné shromažďuje statistické informace o počtu zpracovávaných permutací a způsobu jejich získání, počtu vypočtených a singulárních případů a testovací informace o čase, po který výpočet probíhal.

Jádro tvoří a inicializuje master program po načtení vstupních parametrů a pouští v něm metodu, která se stará o vlastní řešení LTS s využitím výpočetní síly slave procesů. Po skončení výpočtu pak jádro vytvoří soubor s výsledky a podle parametrů programu i soubor popisující postup výpočtu.

Storage Tento objekt je vytvořen jádrem programu a je použit pro ukládání hodnot

získaných v průběhu výpočtu, registraci probíhajících paralelních úloh a k registraci nejkvalitnějších vzorků získaných v průběhu výpočtu. Jádro programu z tohoto objektu získává údaje potřebné k dalšímu řízení výpočtu a k rozhodování o jeho případném ukončení.

Databáze permutací Databáze permutací je objekt, který slouží k ukládání jednotlivých vzorků

použitých pro výpočet a výsledků, které jejich použitím byly dosaženy. V průběhu výpočtu pak v databázi může být uložena informace, že daný vzorek je právě zpracováván některým paralelně pracujícím procesem. V záznamech o výsledcích zpracování daného vzorku je i informace, zda zpracování vzorku neskončilo singularitou vytvořené invertované matice, zda byl tento vzorek vybrán náhodně, nebo byl výsledkem některé předchozí LTS iterace a informace o čísle iterace, v níž byl vytvořen.

TOP list Tento objekt slouží k udržování informací o několika nejlepších zatím nalezených

vzorcích. Podle velikosti získané norm jsou v něm seřazeny jednotlivé vzorky (odkazy na vzorky do výše uvedené databáze permutací). TOP list dále udržuje informaci o nejlepší zatím dosažené hodnotě norm a o tom, zda byla tato hodnota v minulé iteraci změněna.

Task worklist Tento objekt udržuje databázi použitých paralelně pracujících procesů, spolu

s informacemi o jejich aktuálním stavu (zda pracují, nebo jsou k dispozici pro další výpočet), právě zpracovávaných vzorcích (odkaz do databáze permutací) a informaci o počtu iterací, které daný proces zpracoval (pro případné informace o vyváženosti zátěže jednotlivých výpočetních uzlů).

8.4.4.3 Klasický výběr permutačních vektorů Výběr permutačních vektorů (vzorků) je klíčovým faktorem pro konvergenci a

tedy i rychlost metody. Dobrý výběr permutací je také předpokladem pro rychlejší konvergenci metody ke vzorkům neobsahujícím odlehlá měření.

V paralelní implementaci LTS, kterou jsem vyvinul pro testování této metody jsou používány (v závislosti na zvolených parametrech programu) všechny následující principy pro hledání vhodného vzorku. Algoritmus navíc testuje, zda daný vzorek již nebyl testován a v případě, že tomu tak je, není tento vzorek dále postoupen k výpočtu a je použit náhodným, nebo genetickým způsobem vybraný vzorek. Speciálním

Page 140: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

138 ČVUT, FSv, katedra mapování a kartografie

případem je situace, kdy vzorek, který je kandidátem pro výpočet, již jednou vypočten byl a navíc je to nejlepší nalezený vzorek – potom program provede zvýšení čítače signalizujícího počet zásahů do tohoto nejlepšího vzorku. Stav tohoto čítače je pak jednou z možných podmínek pro ukončení výpočtu.

LTS přístup Tento způsob výběru je vlastním základem metody LTS a je popsán v 8.4.3.4.

Vektor reziduí vypočtený z předcházející iterace je setříděn a je stanovena hranice vymezující prvních Tr prvků, což je velikost zvolené trimming constant – viz (8.4.23). Jako následující vzorek je zvolen permutační vektor sestavený z indexů těchto prvků setříděného vektoru reziduí.

Tento přístup vede k postupnému vyloučení měření, jejichž rezidua mají největší vliv na velikost vážené sumy reziduí (tedy pravděpodobně odlehlá měření).

Náhodný přístup Náhodný přístup je v algoritmu použit pokud LTS přístup pro hledání vhodného

vzorku není úspěšný (vzorek předchozí iterace nevede k lepšímu výsledku, případně nebyl nalezen žádný vzorek, který ještě nebyl vstupem pro výpočet).

Náhodný výběr permutačního vektoru spočívá v jeho inicializaci úměrně velikosti Tr a náhodného (využívajíc generátoru náhodných čísel z knihovny GaMaLib – viz 7.2.2) zamíchání jednotlivých bitů permutačního vektoru. Při tomto míchání je každý bit původního vektoru zaměněn s jiným náhodně vybraným bitem. Počet nastavených bitů přitom zůstává stále stejný – roven Tr (viz 8.4.4.2).

8.4.4.4 Genetický výběr permutačních vektorů Základem idey genetického přístupu k řízení výpočtu je podobnost metody

s křížením známým z genetiky. Pomocí LTS se vlastně pokoušíme najít kombinaci neznámých (genů), které nejsou ovlivněny žádným odlehlým měřením (které neobsahují vadný gen) – metoda vlastně spočívá v hledání genů, které chceme z výsledného „křížence“ odstranit.

Genetický přístup není obecně používanou úpravou algoritmu. Je to pouze výsledek mé snahy ještě více urychlit konvergenci algoritmu, který je již sám o sobě zrychlen paralelním zpracováním. Uvedené názvy jsou tedy jen označením, které jsem použil s ohledem na princip funkce popisovaných metod.

V postupech, které jsem pro metodu LTS zvolil, jsem použil mírně upravené a redukované zákony Mendelovské genetiky. Johann Gregor Mendel (1822-1884) byl opatem augustiánského kláštera v Brně, přírodovědec a biolog, který na základě svých pokusů s pěstováním hrachoru v roce 1865 rozpoznal a stanovil zákony přenášení dědičných vlastností z rodičů na potomstvo a tím dal vzniknout základům nového vědního oboru – genetiky.

Zmiňovaný genetický přístup je založen na použití permutací (viz 8.4.4.2) jakožto řetězců schopných přenášet genetické informace. Vlastností, kterou jednotlivé vzorky nesou, je přítomnost nebo nepřítomnost určitých měření v upravené soustavě rovnic. Pro stanovení kvality takovéto vlastnosti není tedy potřeba řetězce genů, ale pouze jediný gen (jediný bit permutačního řetězce – viz implementace permutačního vektoru v kapitole 8.4.4.2). Genetické zákony jsou zde zjednodušeny také absencí

Page 141: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

139ČVUT, FSv, katedra mapování a kartografie

dominantních a recesivních genů (nebo jejich sekvencí), které se jinak v genetice používají.

Poslední zvláštností zde aplikovaného genetického přístupu je udržování konstantního variantního poměru u všech vzniklých potomků, a to vzhledem k použití konstantní hodnoty trimming constant (Tr) – poměr nulových a nenulových bitů permutace je tedy v průběhu celého výpočtu konstantní.

V mnou testovaném paralelním programu je genetický přístup použit pro usměrnění chodu a pro urychlení konvergence algoritmu, přičemž je možno specifikovat jaké procento paralelních procesů má používat klasický algoritmus a jaké procento má používat genetický přístup.

Níže popsané genetické metody jsou pouze mnou testovanou alternativou k výše uvedenému náhodnému výběru vzorku. I v okamžiku, kdy uživatel dovolí použití genetického přístupu je náhodný výběr použit pokud není nalezen neexistující vzorek pomocí genetického přístupu.

Genetické křížení Tento princip je založen na předpokladu, že pokud vezmeme různé dva vzorky,

které poskytují kvalitní výsledky, tak z obou jsou vyloučena alespoň některá odlehlá měření (vadné geny). Pokud tedy do výsledného vzorku zapojíme jen prvky, které jsou současně v obou vzorcích je pravděpodobné (ne však jisté), že po křížení obou vzorků jejich potomek nebude obsahovat některé z odlehlých měření‡. Výsledný vzorek je tedy vytvořen tak, že jsou ponechány prvky, které obsahují oba vektory a zbylé hodnoty jsou zvoleny náhodně.

Permutace 1

Permutace 2 (se kříží…)

…mezikrok…

Genetické křížení

kopírování stejných bitů

náhodné doplnění do velikosti Tr

Permutace 1

Permutace 2 (se kříží…)

…mezikrok…

Genetické křížení

kopírování stejných bitů

náhodné doplnění do velikosti Tr

obrázek 8.27: Princip genetického křížení

Tento přístup poskytuje odlišné vzorky než dále zmiňovaná genetická mutace, případný malý rozdíl obou mutovaných vektorů může však často vést k situaci, že není nalezen vzorek, který ještě nebyl zpracován a musí být použit náhodný vzorek.

‡ Metoda by mohla v tomto případě konvergovat pouze k lokálnímu minimu – je to způsobeno použitím již vypočtených vzorků, které mohou stále obsahovat odlehlá měření. Tento nedostatek lze zmírnit použitím více náhodných výběrů vzorku.

Page 142: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

140 ČVUT, FSv, katedra mapování a kartografie

V implementovaném algoritmu je prováděno křížení (crossing-over) prvních dvou členů TOPlist-u (viz 8.4.4.2), tedy dvou vzorků s nejlepšími zatím dosaženými výsledky (nejúspěšnější potomci). Algoritmus je však navržen tak, že pokud nenalezne neexistující vzorek, pokouší se najít potomka prvního člena TOPlistu (nejlepší nalezený vzorek) s dalšími členy TOPlistu (pokud existují).

Genetické křížení samozřejmě nezaručuje odstranění případného odlehlého měření (vadného genu), snaží se ovšem s využitím již vypočtených dobrých vzorků a s použitím jisté míry náhodnosti vytvořit vzorky, které by mohly být lepšími potomky již nalezených řešení. V případě, kdy tomu tak není je vzorek v další iteraci vyřazen.

Tento přístup samozřejmě nelze použít pokud je nám znám pouze jeden nejlepší vzorek. V tom případě je použit náhodný přístup.

Nevýhodou tohoto přístupu může být případ degenerace, kdy oba rodiče obsahují stejné odlehlé měření, které nebylo pomocí použitého LTS přístupu odstraněno. S použitím genetického křížení toto odlehlé měření (přítomné v obou rodičích) nelze odstranit a budou ho potom obsahovat i potomci, což může vést k získání výsledků s vlivem neodstraněných odlehlých měření. Tento nedostatek se pokouší řešit dále uvedená genetická mutace, která do křížení vnáší náhodný prvek.

Genetická mutace Předpokladem pro hledání vhodného vzorku pomocí genetické mutace je

myšlenka, že ve všech vzorcích, které jsme zatím získali je přítomné odlehlé měření (vadný gen). Mutace mění určitý počet bitů (genů), které mají obě křížené permutace společné – na rozdíl od běžné mutace je tedy použita mutace řízená, která ovlivňuje jen geny stejné u obou partnerů.

…mezikrok…

Permutace 1

Permutace 2 (se kříží… - s mutací velikosti X)

kopírování stejných bitů

Genetická mutacenáhodné doplnění do velikosti Tr

mutace X bitů stejných v obou permutacích…mutace…

…mezikrok…

Permutace 1

Permutace 2 (se kříží… - s mutací velikosti X)

kopírování stejných bitů

Genetická mutacenáhodné doplnění do velikosti Tr

mutace X bitů stejných v obou permutacích…mutace…

obrázek 8.28: Princip genetické mutace

Zbytek bitů (geny, které mají obě permutace rozdílné) je náhodně doplněn až do velikosti trimming constant (chceme udržet konstantní variantní poměr). Na zvolené

Page 143: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

141ČVUT, FSv, katedra mapování a kartografie

velikosti mutace a odlišnosti obou partnerů záleží pravděpodobnost že se nám podaří případný vadný gen z jejich potomka odstranit.

Genetická mutace také zajišťuje, že algoritmus má šanci se dostat z případné slepé uličky, do níž by se mohl dostat neustálým křížením vzorků, které byly postupně odvozeny z jednoho vzorku (degenerace).

Tvorba novépermutace

Setřídění vektorureziduí a tvorbaLTS permutace

Je užpermutace

známa?

Další zpracovánívytvořené permutace

Prostékřížení, nebo

mutace?

Kříženídvou prvkův toplistu

Mutace potomkadvou prvkův toplistu

Je užpermutace

známa?

Náhodný výběrneexistujícípermutace

mutacekřížení

ne

ano

ano

ne

Tvorba novépermutace

Setřídění vektorureziduí a tvorbaLTS permutace

Je užpermutace

známa?

Další zpracovánívytvořené permutace

Prostékřížení, nebo

mutace?

Kříženídvou prvkův toplistu

Mutace potomkadvou prvkův toplistu

Je užpermutace

známa?

Náhodný výběrneexistujícípermutace

mutacekřížení

ne

ano

ano

ne

obrázek 8.29: Výběr permutačního vektoru (genetický přístup)

Page 144: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

142 ČVUT, FSv, katedra mapování a kartografie

Stejně jako u genetického křížení je i zde nutná existence alespoň páru permutací (partnerů), které budou tvořit vstup algoritmu. Pokud není ani po několikanásobném křížení s mutací výsledná permutace dosud neznámá, je postupně prováděno křížení první permutace a dalších permutací v TOPlistu. Pokud ani přitom jeden z párů není schopen zplodit dosud neznámého potomka, je použita náhodná permutace.

Ani genetická mutace nezaručuje, že případné odlehlé měření bude ze vzorku vyloučeno (je dokonce možné, že může způsobit kontaminaci vzorku), pokud však získaný vzorek neposkytuje dostatečně kvalitní výsledky je ze zpracování vyloučen v příští iteraci. Tuto metodu je tedy nutno brát jako způsob výběru vzorků, který na rozdíl od náhodného výběru vzorků používá kromě jisté míry náhodnosti i informace o již získaných kvalitních potomcích.

8.4.4.5 Princip práce paralelního programu V této kapitole je popsán můj přístup k paralelnímu zpracování řešení soustavy

lineárních rovnic pomocí metody LTS. Tento přístup není určitě jediný možný, avšak reprezentuje mou ideu kvalitní paralelizace tohoto problému s ohledem na rychlý a efektivní chod.

Paralelní program pro řešení soustavy lineárních rovnic metodou LTS používá pro paralelní přístup k výpočtu datovou paralelizaci. Jednotlivé iterace jsou zpracovávány paralelně pracujícími procesy. Řízení výpočtu a shromažďování výsledků provádí master program.

Master program Master program je jednou ze dvou částí paralelního programu. Po jeho spuštění

probíhá načtení uživatelem specifikovaných parametrů výpočtu a kontrola jejich validity s ohledem na specifikovaná vstupní data (aby například trimming constant nebyla větší než počet měření apod.)

Po načtení vstupních údajů je vytvořen požadovaný počet paralelně pracujících procesů a jsou jim odeslány informace o souborech obsahujících vstupní data úlohy (data musí být přítomna na každém z uzlů, na kterém probíhá paralelní výpočet – díky této podmínce se dále minimalizuje množství komunikace probíhající po propojovací síti mezi master procesem a spolupracujícími slave procesy).

Po inicializaci slave procesů master zašle požadavek na výpočet první iterace a po jejím výpočtu master zasílá slave procesům požadavky na výpočet další iterace spolu s hodnotou permutačního vektoru, pro který má být daná iterace vypočtena.

Prvních N (počet použitých slave procesů) iterací je tedy vypočteno na základě hodnot získaných z první iterace a dále je proces výpočtu řízen výběrem permutací založeným na nově příchozích hodnotách. Přitom každý proces který vrátí vypočtené hodnoty rovnou obdrží další vstupní hodnoty pro výpočet. To zaručuje, že vstupní hodnoty budou v každém kroku odvozeny s použitím nejaktuálnějších hodnot zahrnujících všechny mezitím vypočtené iterace. Při tvorbě nových permutací jsou přitom podle vstupních parametrů programu používány některé z principů popsaných v kapitolách 8.4.4.3 a 8.4.4.4.

Po ukončení výpočtu (o ukončení výpočtu rozhoduje jádro programu na základě parametrů výpočtu požadovaných uživatelem) program vypíše výsledné hodnoty a pokud to uživatel požaduje vytvoří soubor s popisem průběhu výpočtu, jednotlivých použitých permutacích a výsledných hodnotách, které byly jejich použitím dosaženy.

Page 145: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

143ČVUT, FSv, katedra mapování a kartografie

Míra podrobnosti takto poskytovaných informací je uživatelsky nastavitelná. Schéma práce master programu je popsáno vývojovým grafem – viz obrázek 8.30.

Start programu

Vstup informacío úloze

Zplozenía inicializaceslave procesů

Výpočet prvníiterace

Příjemvýsledku

pvm_spawn(...

Existujenepracující

proces?Odeslání zadání

nové iterace

ano

ne

Uložení výsledkudo databáze

Konec programu

Zápis výsledkuvýpočtu

ne

ano

Jsousplněna kriteriapro ukončení?

Slav

epr

oces

yx, r, x, r, normnorm

permperm

pvm_send(...

pvm_recv(...

fileinfofileinfo

M, N, ...M, N, ...

x, r, x, r, normnorm, ..., ...

x, r, x, r, normnorm

permperm

Start programu

Vstup informacío úloze

Zplozenía inicializaceslave procesů

Výpočet prvníiterace

PříjemvýsledkuPříjem

výsledku

pvm_spawn(...

Existujenepracující

proces?Odeslání zadání

nové iteraceOdeslání zadání

nové iterace

ano

ne

Uložení výsledkudo databáze

Konec programu

Zápis výsledkuvýpočtu

ne

ano

Jsousplněna kriteriapro ukončení?

ne

ano

Jsousplněna kriteriapro ukončení?

Slav

epr

oces

ySl

ave

proc

esy

x, r, x, r, normnorm

permperm

pvm_send(...

pvm_recv(...

fileinfofileinfo

M, N, ...M, N, ...

x, r, x, r, normnorm, ..., ...

x, r, x, r, normnorm

permperm

obrázek 8.30: Schéma práce master procesu - paralelní LTS

Page 146: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

144 ČVUT, FSv, katedra mapování a kartografie

Slave proces Slave proces je druhou částí paralelní verze programu. Je výpočetní částí

programu a funguje jako automat pro zpracování dat. Vytvořené slave procesy reprezentují značnou výpočetní sílu paralelního programu a na jejich počtu závisí ve značné míře rychlost paralelního zpracování.

Mas

ter

proc

esZplození programu

Vstup informacío úloze

Řešení upravenésoustavy rovnic

Požadovánoukončení?

ano

ne

Konec programu

x, r, x, r, norm norm || fail|| fail

pvm_send(..

CommandCommand (+perm)(+perm)

pvm_recv(...

pvm_recv(...

fileinfofileinfo

Čtení vstupníchdat A, b, WA, b, W

Příjem požadavkuna výpočet

Odeslánívýsledků

AA••

bb••

WW••

pvm_spawn(...

Mas

ter

proc

esM

aste

rpr

oces

Zplození programu

Vstup informacío úloze

Řešení upravenésoustavy rovnicŘešení upravenésoustavy rovnic

Požadovánoukončení?

ano

ne

Konec programu

x, r, x, r, norm norm || fail|| fail

pvm_send(..

CommandCommand (+perm)(+perm)

pvm_recv(...

pvm_recv(...

fileinfofileinfo

Čtení vstupníchdat A, b, WA, b, W

Příjem požadavkuna výpočet

Odeslánívýsledků

AA••

bb••

WW••

pvm_spawn(...

obrázek 8.31: Schéma práce slave procesu - paralelní LTS

Page 147: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

145ČVUT, FSv, katedra mapování a kartografie

Proces po svém startu čeká na inicializační informace od master procesu a po jejich obdržení načte matici soustavy, vektor pravých stran a matici vah z určeného souboru. Potom čeká na data přicházející od master procesu.

Data od master procesu mohou obsahovat příkaz (ukonči, počítej) a případně i vstupní data (permutace). Na jejich základě provede slave proces výpočet a master procesu vrátí výsledná data (vektor neznámých, vektor reziduí a hodnotu LTSnorm ). Poté se slave proces vrací zpět na začátek čekací smyčky. Princip fungování slave procesu popisuje vývojový diagram – viz obrázek 8.31.

8.4.4.6 Podmínky pro ukončení výpočtu Program provádí výpočet řešení jako sadu iterací s použitím výše uvedených

postupů. K tomu, zda je možno výpočet ukončit slouží rozhodovací pravidla, jejichž vyhodnocení závisí na průběhu výpočtu a na uživatelských parametrech programu.

Podmínky, které mohou vést k ukončení výpočtu jsou následující

● dosažení maximálního počtu iterací – pokud program dosáhne maximálního počtu iterací definovaného uživatelem ukončí výpočet,

● dosažení maximálního počtu LTS iterací – program provede výběr vzorku pomocí metody LTS vícekrát, než je maximální počet stanovený uživatelem,

● vypršel čas – uživatelem určený maximální čas výpočtu vypršel a proto je výpočet ukončen,

● opakované zásahy do nejlepší hodnoty – výpočtem z různých vzorků byl opakovaně získán týž výsledek, který je současně nejlepším zatím získaným výsledkem. Počet nutných zásahů je stanoven uživatelem,

● bylo dosaženo požadované normy – vypočtená hodnota sumy čtverců byla menší než uživatelem specifikovaná hodnota.

8.4.4.7 Parametry paralelního programu Vytořený paralelní program je řízen souborem parametrů, který načítá při svém

startu. V tomto souboru jsou uvedeny informace o vstupních a výstupních souborech dat a parametry, kterými se má řídit výpočet zpracovávané úlohy.

Kromě parametrů specifikujících vstupní a výstupní soubory, může být uvedeno také požadované nastavení průběhu výpočtu. Nejdůležitější parametry, které lze ke specifikaci nastavení úlohy použít, jsou uvedeny v následujícím textu.

Paralelní zpracování ProcNumber, ProcOptimal – tyto parametry slouží k nastavení počtu

paralelních programů, které mají být k řešení úlohy použity. Nastavením parametru ProcNumber je explicitně určen přesný počet slave procesů. Naproti tomu parametr ProcOptimal nastaví počet slave procesů automaticky s ohledem na zjištěnou konfiguraci paralelního počítače (v případě sekvenčního počítače je použit pouze jeden slave proces).

Page 148: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

146 ČVUT, FSv, katedra mapování a kartografie

Ukončení výpočtu Následující parametry určují podmínku, při jejímž splnění má být výpočet

ukončen, přičemž musí být uveden alespoň jeden z nich.

MaxSameLTSHits – určuje, zda má být výpočet ukončen po opakovaném nalezení permutace, která poskytuje nejlepší zatím nalezený výsledek (hodnota parametru specifikuje počet nutných opakovaných nalezení vzorku pro ukončení výpočtu).

MaxIterations – udává, že má být výpočet ukončen při dosažení uvedeného počtu iterací.

MaxLTS – určuje při jakém počtu LTS iterací má být výpočet ukončen.

MaxTime, MaxMTime - umožňují zadat maximální čas (v sekundách, případně v minutách), po který má výpočet probíhat.

MinRk – specifikuje hodnotu minimalizované normy sumy reziduí, přičemž při nalezení hodnoty menší, než je uvedená hodnota, je výpočet ukončen.

Průběh výpočtu ClassicLTS – výpočet probíhá klasicky – LTS větev je ukončena pokud byla

nalezena již známá permutace, nebo pokud výpočet nedosáhl lepšího výsledku než předchozí iterace.

BlindLTS – LTS větev je ukončena pokud je nalezena již známá permutace. Pokud je však výsledkem horší hodnota než v předchozí iteraci i potom výpočet pokračuje.

Nastavení genetického algoritmu CrossingOver – pro výpočet je použito genetické křížení popsané v 8.4.4.4.

Genetic – při výpočtu jsou pro hledání nových vzorků použity genetické mutace.

MaxAncestors – maximální počet členů TOPlistu, se kterými je prováděno křížení v případě použití genetického algoritmu.

Mutation – maximální velikost mutace v případě použití genetické mutace pro hledání nových vzorků.

RandomBranches – tento parametr rozhoduje o použití dvou typů procesů při genetickém algoritmu. Jedna skupina procesů používá stále klasický algoritmus, zatímco druhá usměrňuje jejich konvergenci pomocí genetického výběru vzorků.

BranchPCT – udává procento procesů, které budou používat klasický algoritmus v případě použití náhodných i genetických větví výpočtu. Není-li uveden, je pro urychlení konvergence výpočtu použita pouze jediná genetická větev.

8.4.5 Testy Testování popisovaného programu pro paralelní řešení lineární soustavy metodou

LTS jsem prováděl v několika fázích na sítích pracovních stanic popsaných v kapitolách 7.1.2 a 7.1.3. Součástí prováděných experimentů byly jak testy zaměřené

Page 149: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

147ČVUT, FSv, katedra mapování a kartografie

na zjištění úspěšností paralelního přístupu k řešení LTS, tak testy, které měly ověřit jiné aspekty paralelního řešení (například vliv load balancingu).

Zajímavým důkazem, že paralelizace algoritmu LTS není zdaleka triviální úlohou, byla chyba v kódu programu, která se projevila až v pozdějších fázích testování. Záludnost této chyby spočívala v tom, že se projevovala pouze při testování na paralelním počítači s větším počtem výpočetních uzlů.

8.4.5.1 Data Pro testy aplikace popisované v této kapitole jsem používal malou sadu dat

reprezentující vyrovnání sítě geodetických bodů (řešená soustava obsahovala 84 měření a 4 neznámé.), do které jsem uměle zanesl pět hrubých chyb (měření, která byla znehodnocena byla vybrána zcela náhodně) – v dalším textu je tato sada označována jako kontaminovaná data.

8.4.5.2 Load balancing Test load balancingu byl prováděn na heterogenní síti pracovních stanic a serverů

popsané v kapitole 7.1.2 a označované jako malý nebo také heterogenní cluster. Na heterogenní síti se před implementací load balancingu značně projevoval při běhu paralelního programu vliv nevyváženého výkonu jednotlivých platforem, kdy i přesto, že paralelizace úlohy celé zpracování značně urychlovala, výkon celého systému byl limitován výkonem jeho nejpomalejšího uzlu.

Load balancing zde byl vzhledem k podstatě úlohy implementován následovně. Po prvotním odeslání vstupních dat všem procesům je prohledávána vstupní fronta master procesu a proces čeká na výsledná data zaslaná některým z procesů. Pokud přicházejí vypočtená data, jsou tato přijata a zpracována (porovnání a uložení do databáze). Každý proces, od kterého přišla výsledná data obratem obdrží další dávku vstupních dat pro zpracování. Tímto velmi jednoduchým postupem jsou poskytnuta vstupní data procesu v okamžiku, kdy jeho práce skončila a procesy jsou tak udržovány ve stavu permanentního zaneprázdnění.

Zjištění teoretického výkonu Prvním krokem k testování vlivu load balancingu bylo zjištění výkonu

jednotlivých výpočetních uzlů použitých při vlastním výpočtu. Ke zjištění výkonu se nabízelo několik desítek různých benchmarků (program pro testování výkonu systému) volně dostupných na internetu. Jejich nevýhodou je ovšem skutečnost, že většina z nich je zaměřena na testování pouze určitých operací (operace v plovoucí řádové čárce, přístup do paměti, atd.) a jimi zjištěný výkon nemusí odpovídat výkonu, který bude počítač poskytovat při běhu určité úlohy. Protože výpočetní část programu není složitá a zahrnuje úpravy matic, jejich kopírování a inverzi (tedy z větší části operace přístupu do paměti), rozhodl jsem se otestovat výkon pomocí programu, který je součástí použité knihovny pro maticové operace gMatVec. Tento program provádí 10000 inverzí generované čtvercové matice dimenze 40x40, při vyloučení vlivu času potřebného pro náhodnou generace matic.

potato csst5 csst4 csst06 csst0310000x(40x40) Inverzí [sec] 175 299 334 708 1048,33Inverze / sec 57,14 33,44 29,94 14,12 9,54% celkového výkonu 39,63 23,19 20,76 9,80 6,62

Page 150: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

148 ČVUT, FSv, katedra mapování a kartografie

obrázek 8.32: Výsledky testů teoretického výkonu

Způsob testování pomocí výkonu naměřeného v množství operací (inverzí) provedených pomocí funkcí knihovny gMatVec nenabízí sice zjištění výkonu systému v uznávaných jednotkách (MFLOPS, TFLOPS,…), i přesto však umožňuje porovnání výkonů jednotlivých systémů. Velkou výhodou takto získaných výsledků je skutečnost, že použitý test používá operace knihovny, která je následně použitá ve vlastním programu. Teoreticky tedy test obsahuje stejnou strukturu jednotlivých operací (operace v pevné a pohyblivé řádové čárce a přístup do paměti) jakou bude obsahovat program, kvůli jehož hodnocení tento test potřebujeme§.

Výsledky testů výkonu nesloužily k implementaci vlastního load balancingu, ale pouze jako srovnávací kriterium, zda implementovaný load balancing provádí rozdělení zpracovávaných úloh úměrně k předpokládanému výkonu jednotlivých výpočetních uzlů.

Alternativy Využít výsledků testů pro statickou implementaci load balancingu je nevhodné,

protože pro korektní použití by musely být provedeny testy výkonu jednotlivých výpočetních uzlů pro každou novou konfiguraci paralelního počítače. Tato možnost by byla aplikovatelná, pokud by pro výpočty byla využívána stále stejná konfigurace paralelního počítače (například nějaký dedikovaný MPP). Potom by bylo možno „zveřejnit“ informace o teoretickém výkonu pomocí parametru SPEED systému PVM (master proces by pak podle nich mohl provádět statické rozdělení zátěže). V případě nededikovaného serveru by však tyto informace ztrácely význam, protože výkon jednotlivých uzlů by se mohl v průběhu výpočtu měnit. Z toho plyne nutnost dynamického rozdělování zátěže s ohledem na okamžitý výkon jednotlivých PN a propojovací sítě.

Jistou alternativou, která se nabízí by mohlo být zjišťování výkonu dynamicky z počtu již zpracovaných úloh jednotlivými uzly a následné přizpůsobování algoritmu přidělování nových úloh jednotlivým paralelně pracujícím procesům. Vzhledem k tomu, že však použitý princip load balancingu byl značně jednodušší a s minimální režií zajišťoval dynamické přizpůsobování distribuce úloh podle okamžité výkonnosti výpočetních uzlů, ponechal jsem i tuto alternativu pouze v rovině teoretické.

Již v prvních testech provedených po implementaci této jednoduché metody pro rozdělení zátěže bylo zřejmé, že v situaci kdy jsou jednotlivé výpočetní uzly výkonově velmi nevyvážené (případ použité heterogenní sítě) i takto jednoduchá metoda pro rozložení zátěže může značně zlepšit výsledky dosahované paralelním zpracováním. Pro vlastní testování distribuce zátěže jsem v programu doplnil možnost registrace a výpisu počtu zpracovaných iterací, které zpracoval ten který výpočetní uzel.

Vlastní testování jsem prováděl na výše uvedené kontaminované sadě dat při použití trimming constant rovné 70 a podmínkou ukončení výpočtu až v okamžiku dosažení s maximálního počtu provedených iterací 10000 – tento počet by byl pro řešení úlohy byl zbytečně velký, ale pro účely testování byl ideální. Vlastní testování

§ Struktura operací není zcela totožná, ale velmi se blíží použitému programu. Proto lze tyto výsledky s úspěchem použít pro srovnání se skutečně dosahovaným výkonem. Pro zmiňované statické rozdělení zátěže by bylo vhodnější použít testovací program, který provádí kompletní řešení soustavy včetně úprav matic a vektorů soustavy.

Page 151: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

149ČVUT, FSv, katedra mapování a kartografie

pak spočívalo v opakování běhu úlohy v destitisíci cyklech – což trvalo bezmála deset hodin.

Tento testovací výstup mi umožnil (po určení průměrných hodnot) sestavit tabulku výsledných hodnot (viz tabulka 8.18) a výsledky testování porovnat s výsledky testování rychlosti v dále uvedeném viz graf 8.11. Hodnocení dosažených výsledků je uvedeno dále.

8.4.5.3 Testy výkonu Pro testy výkonu jsem opět použil sadu kontaminovaných dat (viz 8.4.5.1 jako

v předchozím testu. Parametry testovací úlohy byly následující

● trimming constant = 70

● ukončení úlohy při dosažení maximálně 10000 iterací,

● ukončení úlohy při dosažení maximálně 1000 LTS iterací,

● ukončení úlohy při osminásobném nalezení nejlepšího vzorku (pro genetický algoritmus v případě desetinásobného nalezení nejlepšího vzorku)

● pro genetický algoritmus – maximální počet partnerů 5, maximální mutace 5,

● genetický algoritmus pouze v jedné větvi běžícího programu.

Rozdílné podmínky pro ukončení výpočtu v klasickém LTS algoritmu a jeho genetických modifikacích byly zvoleny z důvodu rychlejší konvergence genetické verze. Pokud byla u genetického algoritmu nastavena nižší hodnota parametru MaxSameLTSHits (maximální počet nalezení nejlepšího známého vzorku nutný pro ukončení), docházelo častěji k předčasnému ukončení výpočtu, tzn. ještě před nalezením nejkvalitnějšího vzorku. Zajímavostí je, že pravděpodobnost předčasného ukončení výpočtu stoupala spolu s počtem použitých výpočetních uzlů.

Testování jsem prováděl na velkém Linuxovém clusteru popsaném v kapitole 7.1.3. Cluster byl v době testování ve výhradním režimu, tedy s vyloučením práce ostatních uživatelů. Díky tomu je možno získané výsledky považovat za neovlivněné případnou nerovnoměrnou zátěží jednotlivých výpočetních uzlů v průběhu testů.

Protože měřený čas běhu aplikace není vzhledem k heuristickému algoritmu metody stálý, jako měřítko výkonu posloužil počet iterací zpracovaný paralelním programem za jednu sekundu.

Testy růstu výkonu jsem prováděl jak pro klasickou verzi LTS algoritmu, tak pro algoritmus využívající genetického křížení a genetické mutace. Při testování genetických algoritmů pracovala v programu jedna větev s genetickým přístupem, ostatní verze pak s klasickým přístupem. Pro získání výsledků bylo nutno provést testování této úlohy v konfiguraci s jedním až devatenácti procesory.

Hodnocení získaných výsledků je uvedeno v kapitole 8.4.6.2, souhrnné tabulky výsledných hodnot a jejich grafická interpretace je obsažena v přílohách 10 až 18.

8.4.5.4 Testy konvergence Konvergenci paralelního algoritmu LTS jsem testoval na kontaminovaných

datech zmíněných v kapitole 8.4.5.1. Úkolem testů bylo zjistit, jaký vliv má paralelizace algoritmu na jeho konvergenci v různých konfiguracích paralelního počítače.

Page 152: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

150ČVUT, FSv, katedra mapování a kartografie

Rozdělení zátěže při aplikaci load balancingu

0,00

10,00

20,00

30,00

40,00

50,00

60,00

potato csst5 csst4 csst06 csst03

Jednotlivé paralelní uzly

Test

ovan

ý vý

kon

[Inve

rze

/ sec

]

0

500

1000

1500

2000

2500

3000

3500

4000

Zpra

cová

no [h

odno

t]

Zpracováno

Testovanývýkon

graf 8.11: Vliv aplikace load balancingu na výsledné rozdělení zátěže

Page 153: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

151ČVUT, FSv, katedra mapování a kartografie

Další informací, kterou měly výsledky testu poskytnout, byla rychlost konvergence při použití klasické verze algoritmu LTS (klasický způsob výběru vzorků), případně jeho genetických úprav. Testování jsem prováděl na heterogenním clusteru počítačů popsaném v 7.1.2 (tedy s použitím pěti výpočetních uzlů) za současného běhu nenáročných uživatelských aplikací, které by měly výsledky testů ovlivnit jen minimálně. Navíc byly testy prováděny v nočních hodinách, kdy byla parazitní zátěž clusteru teoreticky nulová.

Pro testy konvergence byla spuštěna úloha v deseti tisíci opakováních postupně s následujícími parametry (pro všechna zadání byla stanovena podmínka ukončení při dosažení 10000 iterací, případně 1000 LTS iterací a zadána trimming constant 70)

● klasická LTS – ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetické křížení – pouze genetické větve, maximální počet členů TOPlistu pro křížení 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetické křížení – 50% genetických větví, maximální počet členů TOPlistu pro křížení 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetické křížení – 25% genetických větví, maximální počet členů TOPlistu pro křížení 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetické křížení – jedna genetická větev, maximální počet členů TOPlistu pro křížení 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetická mutace – pouze genetické větve, maximální počet členů TOPlistu pro křížení 5, maximální velikost mutace 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetická mutace – 50% genetických větví, maximální počet členů TOPlistu pro křížení 5, maximální velikost mutace 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetická mutace – 25% genetických větví, maximální počet členů TOPlistu pro křížení 5, maximální velikost mutace 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

● genetická mutace – jedna genetická větev, maximální počet členů TOPlistu pro křížení 5, maximální velikost mutace 5, ukončení v okamžiku pětinásobného nalezení nejlepšího vzorku.

Pro testování jsem oproti testům výkonu použil kriterium ukončení výpočtu v okamžiku pětinásobného nalezení nejlepšího vzorku. Toto kriterium je slabší než u testů výkonu, vzhledem k nižšímu počtu procesorů (počet případů předčasného ukončení výpočtu ještě před nalezením nejlepšího vzorku, vlivem malé hodnoty tohoto parametru, roste, vzhledem k povaze paralelního algoritmu, úměrně s počtem použitých paralelních uzlů).

Souhrnná tabulka průměrných hodnot a mediánů dosažených časů na heterogenním clusteru počítačů, na kterém bylo testování prováděno, je uvedena na straně 154. Grafy znázorňující distribuci časů pro jednotlivé konfigurace testu jsou pak obsaženy v přílohách 1 až 9 – hodnocení testů konvergence popisuje kapitola 8.4.6.3.

Page 154: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

152 ČVUT, FSv, katedra mapování a kartografie

8.4.6 Dosažené výsledky a jejich hodnocení

8.4.6.1 Load balancing Z tabulky dosažených výsledků (viz tabulka 8.18) a z jejich grafické interpretace

(viz graf 8.11) je patrné, že hodnoty naměřené při testování odpovídají teoretickým hodnotám výkonu jednotlivých uzlů použitého paralelního počítače naměřeným při zkušebních testech výkonu (viz 8.4.5.2).

Iterací potato csst5 csst4 csst06 csst03Maximum 3675 2430 2350 1219 976Minimum 3120 2209 1963 1086 886Průměr 3350 2315 2238 1181 917Medián 3343,5 2319 2252 1189 916,5Modus 3344 2325 2291 1197 914% celk. 33,44 23,25 22,91 11,97 9,14

tabulka 8.18: Výsledky testů distribuce zátěže

Od hodnot dosažených v testech teoretického výkonu se naměřené výsledky mírně odchylují pouze ve dvou případech:

● hodnoty výkonu naměřeného na počítači potato mírně převyšují teoretický odhad. Důvodem je skutečnost, že počítač potato byl uzlem, na kterém běžel při testech výkonu master proces. Komunikace se slave procesem běžícím na tomto počítači tedy trvala řádově kratší dobu, než komunikace s procesy běžícími na ostatních uzlech (tato skutečnot je jasně patrná i na záznamu probíhajícího výpočtu viz obrázek 4.1). Tato komunikační výhoda zapříčinila zdánlivě vyšší výkon tohoto uzlu, což zároveň snížilo hodnoty naměřeného výkonu na ostatních uzlech pod mez stanovenou teoretickým odhadem.

● ačkoliv mají počítače csst4 a csst5 teoreticky stejný výkon, ve zjištěných hodnotách zpracovaného počtu iterací se jejich výkony nepatrně liší. Je to způsobeno zátěží serveru csst4, na kterém běží neustále několik databází o velikosti desítek GB. Tento naměřený výkon je tedy zákonitě menší než hodnota naměřená během testu teoretického výkonu, který probíhal pouze v nočních hodinách s minimální parazitní zátěží všech strojů.

Z výsledných hodnot získaných v tomto testu je patrné, že s touto implementací load balancingu je možno spolehlivě odstranit následující nepříznivé vlivy působící na paralelně pracující program:

● vliv nerovnoměrného výkonu jednotlivých uzlů,

● vliv proměnlivé zátěže jednotlivých uzlů během výpočtu,

● vliv nehomogenity jednotlivých částí použité propojovací sítě,

● vliv proměnlivé zátěže propojovací sítě během výpočtu.

Test prokázal, že výše uvedené nepříznivé okolnosti lze s využitím poměrně jednoduchého přístupu pro distribuci zátěže odstranit a přiblížit se tím k maximálnímu teoretickému výkonu.

Page 155: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

153ČVUT, FSv, katedra mapování a kartografie

8.4.6.2 Výkon Testování výkonu paralelního algoritmu bylo vzhledem k rozsáhlosti testů značně

náročné. Pro tři vybrané sady parametrů algoritmu bylo třeba provést testy metody s jedním až devatenácti procesory použitými v konfiguraci paralelního počítače.

Výsledné hodnoty jsou uvedeny v souhrnných tabulkách v přílohách 10, 13 a 16, grafická interpretace výsledků je pak v přílohách 11, 12, 14, 15, 17 a 18.

Vzhledem k různé rychlosti konvergence použitých přístupů jsou i získané výsledky odlišné a proto uvedu hodnocení každé testované skupiny algoritmů zvlášť.

U klasického přístupu je na klesající křivce závislosti času výpočtu na počtu použitých procesorů vidět, že přidávání dalších procesorů při této velikosti úlohy přestává být rentabilní až při použití osmi procesorů, tento fakt potvrzuje i graf růstu výkonu, kde výkon přestává růst na hranici osmi až devíti procesorů. Z výsledných časů je tedy patrné, že paralelizace splnila svůj účel a pro zpracování této velikosti úloh postačuje paralelní počítač v konfiguraci sedmi až osmi výpočetních uzlů.

Přístup genetického křížení poskytuje zcela odlišné výsledky. Z grafu závislosti času výpočtu na použitém počtu PE je patrné, že čas klesl pouze po přidání druhého procesoru. Přidáváním dalších procesorů však čas výpočtu dále jen narůstal. To je způsobeno rychlostí konvergence použitého přístupu a krátkým časem výpočtu, který byl při rozdělení výpočtu na více spolupracujících uzlů srovnatelný s časem potřebným pro komunikaci mezi procesy. Je jisté, že při použití složitější úlohy by časy zpracování klesaly i po přidání dalších procesorů. Graf růstu výkonu pak ukazuje, že růst výkonu se zmírňuje u hranice devíti procesorů, která se zdá pro tento algoritmus a tuto velikost úlohy optimální.

U genetické mutace se ještě více projevila její rychlost konvergence. Díky ní je rychlost výpočtu takto malé úlohy srovnatelná s rychlostí komunikace na pomalé ICNW a čas potřebný pro výpočet téměř neklesá při použití více než jednoho procesoru. S ohledem na graf růstu výkonu, z kterého je patrný optimální počet procesorů na rozhranní osmi až devíti, můžeme předpokládat, že při řešení větší úlohy by byl paralelní algoritmus schopen dále snižovat časy výpočtu i po přidání dalších procesorů.

Na grafech výsledných hodnot jsou viditelné nepravidelnosti, způsobené převážně skutečností, že počet opakování jednotlivých testů je – vzhledem k heuristické povaze algoritmu – příliš malý (500). Testování s větším počtem opakování však nebylo z časových důvodů možné – testy na tomto clusteru (který je značně pomalejší než cluster použitý pro testování konvergence) by v dané konfiguraci vyžadovaly odhadem více než tři měsíce procesorového času. Takto rozsáhlé testování nebylo z důvodu vytíženosti počítačů, které cluster tvořily, proveditelné.

Z testů výkonu je zřejmé, že paralelizace tohoto algoritmu může urychlit čas potřebný k řešení úlohy, avšak u genetických algoritmů je, vzhledem k jejich rychlosti konvergence, paralelní řešení úlohy vhodné pouze u větších úloh.

8.4.6.3 Konvergence Testy konvergence přinesly zajímavé výsledky s ohledem na použití genetického

přístupu k výběru zpracovávaných vzorků. Následující souhrnná tabulka výsledků uvádí průměrné hodnoty a mediány z 10000 opakování testů, přičemž zaznamenávány byly tyto veličiny

Page 156: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

154 ČVUT, FSv, katedra mapování a kartografie

● iterace – střední hodnota iterace (průměr a medián), ve které proces nalezl řešení vyhovující zadání úlohy,

● LTS iterace – počet LTS iterací, které byly při hledání řešení vypočteny,

● náhodné iterace – počet iterací, při kterých byl při hledání řešení použit náhodný vzorek,

● vítězná iterace – iterace, ve které byl poprvé nalezen vítězný vzorek (výpočet pak pokračoval dál až do splnění podmínek nutných pro ukončení výpočtu),

● čas – střední hodnota času, nutného pro konvergenci metody a získání řešení,

● odlišné výsledky – počet výsledků, které se v testované sadě 10000 opakování odchýlily od nejlepšího získaného řešení – jelikož je LTS heuristickou metodou, můžeme předpokládat, že dojde i k situaci, kdy je metoda náhodně ukončena před nalezením výsledku, který považujeme za nejlepší. Toto riziko můžeme snížit na únosnou mez vhodnou volbou parametrů úlohy.

Průměr Medián Průměr Medián Průměr Medián236,49 175 37,76 36 198,74 139

Křížení 50% náhod. 38,02 25 11,91 10 19,68 975% náhod. 56,74 30 15,36 12 36,28 131 genet. 119,35 75 26,01 23 91,18 49jen genet. 30,63 24 9,77 9 12,14 6

Mutace 50% náhod. 24,61 24 9,98 10 6,97 775% náhod. 27,13 26 11,03 11 9,76 91 genet. 50,13 48 18,08 18 28,29 27jen genet. 22,87 22 9,17 9 4,03 4

Průměr Medián Průměr Medián11,93 12 1,153 0,88

Křížení 50% náhod. 11,93 12 0,295 0,2275% náhod. 11,90 12 0,426 0,281 genet. 12,04 12 0,780 0,50jen genet. 12,07 12 0,257 0,22

Mutace 50% náhod. 12,10 12 0,217 0,2075% náhod. 11,99 12 0,218 0,201 genet. 11,94 12 0,353 0,31jen genet. 11,93 12 0,202 0,19

Náhodné Iterace

Vítězná Iterace Čas [sec]

Souhrnné výsledky (10000 opakování)

Klasická LTS

Iterace LTS Iterace

Klasická LTS

Odlišné výsledky

34

36

73284

tabulka 8.19: Souhrn výsledných hodnot testů konvergence

Porovnání dosažených výsledků je uvedeno viz graf 9.1 a

graf 9.2. Na grafech distribuce časů při použití různých algoritmů pro paralelní LTS, uvedených v přílohách 1 až 9, je u genetických algoritmů dobře patrný rozdíl časů výpočtu oproti klasickému přístupu k výběru vzorků. V grafech jsou vidět „zuby“, které představují nejmenší měřené jednotky času při testování (setiny sekund).

Z výsledků testů je zřejmý značný rozdíl mezi výsledky dosaženými pomocí klasické metody a výsledky dosaženými s využitím genetického přístupu. Tento rozdíl je způsoben výrazně rychlejší konvergencí metody při použití genetického přístupu k výběru vzorků. Z tabulky (tabulka 8.19) je vidět, že i přes značně rychlejší konvergenci této verze algoritmu nejsou získané výsledky ovlivněny větší

Page 157: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

155ČVUT, FSv, katedra mapování a kartografie

pravděpodobností předčasného ukončení úlohy v porovnání s klasickou verzí algoritmu (počet výskytů tohoto jevu je vzhledem k heuristické povaze algoritmu možno u všech testovaných verzí algoritmu prohlásit za shodný).

Jak prokázaly testy výkonu, pravděpodobnost předčasného ukončení výpočtu roste v závislosti na počtu použitých výpočetních uzlů (to je způsobeno paralelizací algoritmu). Tuto pravděpodobnost (při testech konvergence s použitím pěti PE nastal tento případ maximálně osmkrát z 10000 opakování) lze minimalizovat vhodnou volbou parametrů úlohy, především pak kriterií pro ukončení programu v závislosti na počtu nalezení nejlepšího vzorku. Při testech výkonu bylo vhodnou volbou parametrů úlohy dosaženo nulového výskytu tohoto jevu i při vysokém počtu použitých PE (v maximální použité konfiguraci bylo 19 výpočetních uzlů).

Z testů konvergence vyplývá, že vítězné řešení bylo nalezeno přibližně ve stejném kroku výpočtu (dvanáctá iterace). Různým verzím algoritmu pak trvalo různou dobu, než uznaly daný výsledek za nejlepší dosažitelný (a to i při stejných parametrech úlohy).

Obecně nejdříve konvergovaly algoritmy používající genetický přístup, z nich pak téměř dvakrát rychleji algoritmy používající genetickou mutaci oproti algoritmům používajícím pouze křížení nalezených vzorků. Z toho plyne, že mutace, na rozdíl od pouhého křížení, rychleji vytipuje vzorky, které jsou „perspektivní“, což vede v případě neexistence dalších použitelných vzorků k rychlejšímu ukončení výpočtu.

Otázkou zůstává, jak bude genetický algoritmus reagovat například na případy lokálního minima popsané v [20]. Je možné, že v těchto případech by bylo vhodnější použít verzi algoritmu s několika větvemi běžícími klasickým postupem, který sice podle získaných výsledků konverguje v mírně horších časech, avšak vzhledem k náhodnému výběru vzorků by mohl zmenšit pravděpodobnost nalezení lokálního minima.

Z výsledků testů, které využívají větvení algoritmu na genetické a klasické větve, je patrné, že genetický přístup má i v případě jediné genetické větve významný vliv na rychlost konvergence algoritmu (viz zrychlení oproti klasickému přístupu na ½ počtu iterací u genetického křížení a na více než ¼ v algoritmu používajícím genetickou mutaci). Podle mého názoru by mohlo mít využití náhodných větví algoritmu význam, pokud by výpočet konvergoval k již zmíněnému lokálnímu minimu. Pak by bylo možno využitím kombinace obou přístupů riziko takovéto nepříznivé konvergence zmírnit.

Jelikož výsledky řešení soustavy rovnic dosažené pomocí klasického přístupu byly totožné s výsledky získanými pomocí genetického přístupu, lze předpokládat, že genetický výběr vzorků je přínosem pro rychlost konvergence metody. Z hlediska kvality výsledků získaných s použitím genetického přístupu je však před vyřčením závěru nutno provést větší počet testů na různých sadách dat (zvláště pak s ohledem na sady dat, jejichž zpracování je problematické i při použití klasického přístupu).

Page 158: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

156 ČVUT, FSv, katedra mapování a kartografie

9999 ZávěrZávěrZávěrZávěr V první části této práce jsem se podrobněji věnoval konstrukci paralelních

počítačů a teorii paralelních výpočtů. Z textu vyplývá, že paralelní počítače jsou nutnou alternativou k takzvaným počítačům sekvenčním (von Neumannovským), která řeší problém růstu výkonu za mez dosažitelnou současnými technologiemi výroby. Byly nastíněny některé varianty konstrukce paralelních počítačů s ohledem na použitou paměť, typy datových a instrukčních front, případně způsob, jakým jsou jednotlivé části paralelního počítače propojeny.

Otázka konstrukce paralelního počítače není jako taková zajímavá z hlediska geodeta, znalost této problematiky má však klíčový význam při tvorbě paralelních programů (potažmo algoritmů). Umožňuje totiž širší pohled na klasické sekvenční algoritmy z hlediska možností, které může paralelní zpracování poskytnout. Jak z uvedeného textu vyplývá, konstrukce paralelního počítače může mít mnohdy zásadní vliv na typ algoritmů, které budou vhodné pro paralelní zpracování na určitém paralelním počítači a na způsob jejich případného paralelního zpracování.

V další části této práce jsem se zaobíral možnými způsoby paralelizace existujících sekvenčních algoritmů a nástroji, které jsou k tomuto účelu v současné době k dispozici. Z nich jsem zmínil především knihovny PVM a MPI, které dnes tvoří de facto standard message-passing rozhranní. S důrazem na mnou používaný systém PVM jsem nastínil možnosti, které oba systémy poskytují, spolu s jejich klady a zápory. Dále jsem uvedl typologii dnes nejpoužívanějších paralelních počítačů s ohledem na jejich možný budoucí vývoj. Z této kapitoly vyplynuly následující závěry: použití masivně paralelních počítačů může značnou měrou zvýšit výkon existujících aplikací po jejich paralelizaci. Toto zvýšení závisí jak na typu úlohy, tak na způsobu a kvalitě provedené paralelizace.

I přesto, že jsou masivně paralelní počítače na vrcholu výkonové pyramidy počítačů, existuje několik skutečností, které brání jejich masovému využití. Asi nejvýznamnější z nich je jejich vysoká cena, která je sice úměrná konstrukční a technologické náročnosti jejich výroby, ale omezuje jejich použití na organizace disponující potřebným finančním kapitálem, který mohou uvolnit pro řešení náročných aplikací. Toto omezení využití paralelních počítačů se v posledních letech pokoušejí zmírnit masivně paralelní počítače s modulární strukturou, které umožňují sestavit paralelní počítač v konfiguraci dle požadavků zákazníka a podle parametrů jeho úlohy. Modulárně řešený paralelní počítač lze většinou rozšiřovat zároveň s růstem zpracovávaných úloh, což znamená ochranu investic vložených do jeho počáteční konfigurace.

V navazující části této práce jsem se věnoval svým experimentům v oblasti paralelních výpočtů, které měly vztah k našemu oboru. Při svém studiu jsem se pokoušel hledat úlohy z oblasti geodézie, při jejichž zpracování by paralelní výpočty mohly přispět k rychlejšímu nebo efektivnějšímu řešení. V části práce zabývající se výsledky mých experimentů jsou popisována paralelní řešení úloh z dálkového průzkumu Země, kartografie a dalších oblastí geodézie.

Klíčovým experimentem, ve kterém jsem uplatnil své dosavadní zkušenosti s paralelními výpočty a který přinesl očekávané výsledky, je paralelní algoritmus řešení soustavy lineárních rovnic pomocí robustní metody LTS. Pokud je mi známo, tento algoritmus u nás zatím nebyl v geodézii používán ani v jeho sekvenční podobě.

Page 159: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

157ČVUT, FSv, katedra mapování a kartografie

Porovnání počtu nutných iterací pro konvergenci - různé přístupy k výběru vzorků

0,00

50,00

100,00

150,00

200,00

250,00

Klasická LTS Křížení 50%náh.

Křížení 75%náh.

Křížení 1genet.

Křížení jengenet.

Mutace 50%náh.

Mutace 75%náh.

Mutace 1genet.

Mutace jengenet.

Čas

[sec

]

Průměr

Medián

graf 9.1: Srovnání počtu nutných iterací pro konvergenci metody pro různé přístupy k výběru vzorků

Page 160: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

158158ČVUT, FSv, katedra mapování a kartografie

Porovnání času konvergence - různé přístupy k výběru vzorků

0,00

0,20

0,40

0,60

0,80

1,00

1,20

1,40

Klasická LTS Křížení 50%náh.

Křížení 75%náh.

Křížení 1genet.

Křížení jengenet.

Mutace 50%náh.

Mutace 75%náh.

Mutace 1genet.

Mutace jengenet.

Čas

[sec

]

Průměr

Medián

graf 9.2: Srovnání časů konvergence pro různé přístupy k výběru vzorků

Page 161: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

159ČVUT, FSv, katedra mapování a kartografie

LTS, jako metoda umožňující získat kvalitní výsledky i ze soustavy rovnic obsahující značné procento odlehlých pozorování, je pro oblast geodézie jistě zajímavou aplikací. Vzhledem k výpočetní náročnosti úlohy (plynoucí z jejího heuristického principu) mělo její paralelní řešení zkrátit čas potřebný k výpočtu.

Výsledky paralelizace metody LTS uvedené v poslední kapitole práce potvrzují předpoklad, že metoda bude pro paralelizaci vhodná, a to vzhledem ke svému heuristickému principu s předem neurčeným počtem iterací a s velkým množstvím nezávislých výpočetních celků. Růst výkonu, který byl naměřen v provedených testech, svědčí o vhodnosti algoritmu pro paralelní zpracování zvláště u větších úloh, s časem řešení jedné iterace převyšujícím dobu nutnou pro komunikaci. Pro použitá testovací data bylo prokázáno, že použití paralelního přístupu může urychlit konvergenci metody v závislosti na použitém počtu výpočetních uzlů a složitosti úlohy.

S paralelním algoritmem pro řešení soustavy lineárních algebraických rovnic metodou LTS byly dále prováděny experimenty zaměřené na řízení tohoto algoritmu při použití genetického přístupu. Tyto experimenty měly za úkol pokusit se urychlit konvergenci algoritmu LTS nad mez dosažitelnou použitím pouze paralelního přístupu.

Výsledky experimentů s genetickým přístupem k řízení algoritmu LTS, který jsem navrhl, poskytly řadu cenných výsledků, které ukazují, že s využitím genetického algoritmu může být konvergence metody značně urychlena. Bohužel z časových důvodů bylo možno genetický paralelní LTS algoritmus otestovat pouze zběžně. Ačkoliv tedy výsledky testů na kontaminované sadě dat vykázaly prudké snížení času potřebného pro konvergenci metody ke kvalitním výsledkům v případě použití genetického algoritmu, není zatím možné činit nezpochybnitelné závěry o možném přínosu genetického přístupu pro konvergenci metody LTS. Vzniká tu tak pole pro další experimenty zaměřené právě na toto téma.

Lákavou možností, jak urychlit konvergenci LTS by bylo ověřit možnost aplikace metody pro hledání minima/maxima funkce označované jako „Simulated annealing method“. Tato numerická metoda byla (podobně jako genetické algoritmy) inspirována zkušenostmi ze zcela jiné oblasti než je numerická matematika, a to analogií s termodynamikou, přesněji způsobem, jak se kapaliny ochlazují a krystalizují. Viz například [78], nebo [79]. Ke zkoumání daného přístupu jsem však nepřistoupil z důvodu obsáhlosti této práce a rovněž z důvodů časových.

V této práci jsem se pokusil nastínit principy paralelních výpočtů s ohledem na jejich možnou aplikaci v geodézii a jejích oborech. Vzhledem k tomu, že podle mých informací jsou u nás v geodézii paralelní výpočty neznámým pojmem, bylo mým cílem vytipovat oblasti a možnosti jejich praktického použití v oboru. Pokud je mi známo, byl jsem prvním, kdo použil paralelní výpočty v geodézii u nás. Z výsledků mé práce je zřejmé, že v geodézii existuje velké množství úloh, které jsou vhodné pro paralelní zpracování a jejichž paralelizace by mohla urychlit a zkvalitnit zpracování dat prováděné v geodetické praxi. V otázce použitelného hardware vidím řešení na straně sítí pracovních stanic a malých clusterů, obzvláště pak s využitím open source software, jmenovitě pak operačního systému Linux.

S ohledem na potenciál paralelních počítačů a výpočetní náročnost některých úloh řešených v geodézii je patrné, že si fenomén paralelních výpočtů brzy najde své místo i zde. Byl bych velice potěšen, pokud by k tomu přispěla i tato práce.

Text této práce, zdrojové kódy uvedených programů a další data je možno nalézt na adrese http://gama.fsv.cvut.cz/~marvin/dis/

Page 162: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

160 ČVUT, FSv, katedra mapování a kartografie

10101010 LiteraturaLiteraturaLiteraturaLiteratura [1] Hlavička, J.: Architektura počítačů. Praha, Vydavatelství ČVUT, 1994.

[2] Tvrdík, P.: Parallel systems and algorithms. Praha, Vydavatelství ČVUT, 1994.

[3] Šmidrkal, J. a kol.: Zpracování informací dálkového průzkumu Země. Praha, Ediční středisko ČVUT, 1989.

[4] Castleman, K.R.: Digital image processing. New Jersey, Prentice Hall, 1996.

[5] Lester, B.P.: The art of parallel programming. New Jersey, Prentice Hall, 1993.

[6] Phillips, D.: Image processing in C: Analyzing and enhancing digital images. Lawrence, R&D Publications, 1994.

[7] Hockney, R.W. et al.: Parallel computers: Architecture, programming and algorithms. Bristol, Adam Hilger Ltd., 1983.

PVM

[8] Geist A., Beguelin A., Dongarra J.J., et al.: PVM List of Frequently Asked Questions v1.6 June 23, 1995. PVM Team, 1995

[9] Sunderam V.S., Geist G.A., Dongarra J.J., et al.: The PVM Concurrent Computing System: Evolution, Experiences, and Trends. 1987

[10] Geist A., Beguelin A., Dongarra J.J., et al.: PVM3 user’s guide and reference manual. Oak Ridge National Laboratory, 1994

[11] Dongarra J.J., Geist G.A., Manchek R., et al.: Integrated PVM Framework Supports Heterogenous Network Computing. Oak Ridge National Laboratory, 1993

[12] Geist A., Beguelin A., Dongarra J., et al.: PVM: Parallel Virtual Machine A User’s Guide and Tutorial for Networked Parallel Computing. Massachusetts Institute of Technology, 1994

[13] Geist G.A., Kohl J.A., Papadopoulos P.M.: PVM and MPI: a Comparsion of features. 1996

RŮZNÉ

[14] Richta K., Brůha I.: Programovací jazyk C.Praha, ČVUT, 1991.

[15] Stroustrup B.: C++ Programovací jazyk. Praha, Softwarové aplikace a systémy, 1997.

[16] Čepek A.: Úvod do C++. Praha, ČVUT, 1997.

[17] Virius M.: Pasti a propasti jazyka C++. Praha, Grada Publishing, 1997.

[18] Demel J.: Grafy. Praha, SNTL, 1988.

[19] Kruis J.: Využití paralelních počítačů při řešení velkých soustav rovnic (disertační práce) - školitel prof. Ing. Zdeněk Bittnar, DrSc., Praha, srpen 1999.

[20] Víšek J.A.: On High Breakdown Point Estimation: Computational Statistics, 1996, 11:137-146, Physica-Verlag, Heidelberg.

[21] Charamza F.: Geodet / PC. VUGTK, Zdiby, 1990, 262 str.

Page 163: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

161ČVUT, FSv, katedra mapování a kartografie

[22] Koch K.-R.: Parameter estimation and hypothesis testing in linear models. Springer-Verlag, Berlin, Heidelberg, NewYork, 1997, 3rd edition, 333 str.

Page 164: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

162 ČVUT, FSv, katedra mapování a kartografie

11111111 Internetové zdrojeInternetové zdrojeInternetové zdrojeInternetové zdroje

LINUX

[23] Linux Online. http://www.linux.org/

[24] Linux – Distributions and FTP sites. http://www.linux.org/dist/index.html

[25] Linux – High Performance and Scientific Projects. http://www.linux.org/projects/scientific.html

[26] Debian GNU/Linux – The Universal Operating System. http://www.debian.org/

[27] Debian GNU/Linux – The FTP Server Network. http://www.debian.org/distrib/ftplist

[28] Linux – České stránky o Linuxu. http://www.linux.cz/

SYSTÉMY PRO PARALELNÍ VÝPOČTY

[29] Oak Ridge National Laboratory – Computer Science and Mathematics Division. http://www.epm.ornl.gov/

[30] PVM: Parallel Virtual Machine. http://www.csm.ornl.gov/pvm/

[31] PVM – zdrojové kódy PVM verze 3.4.3. http://www.netlib.org/pvm3/pvm3.4.3.tgz

[32] Parallel Virtual Machine (PVM) Version 3 – download. http://www.netlib.org/pvm3/index.html

[33] PVM Supported Architectures/Oss. http://www.csm.ornl.gov/pvm/pvmArch.html

[34] The Message Passing Interface (MPI) standard – http://www-unix.mcs.anl.gov/mpi/index.html

[35] MPICH-A Portable Implementation of MPI – http://www-unix.mcs.anl.gov/mpi/mpich/

[36] The P4 Parallel Programming System – http://www-fp.mcs.anl.gov/~lusk/p4/index.html

[37] User's Guide to the P4 Parallel Programming System – http://www-fp.mcs.anl.gov/~lusk/p4/p4-manual/p4.html

[38] ParaSoft Corporation – http://www.parasoft.com/

[39] Express – ParaSoft Express Info – http://www.parasoft.com/products/express/index.htm

[40] Linda Group – Yale University – http://www.cs.yale.edu/Linda/linda.html

[41] Applied Parallel Research, Inc. (APR) Fortran Precompilation System (FORGE) http://www.npac.syr.edu/restricted/npac/comp-resources/helper_pages/software/HPF_compilers/forge/

[42] HPF: The High Performance Fortran Home Page – http://www.crpc.rice.edu/HPFF/home.html

Page 165: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

163ČVUT, FSv, katedra mapování a kartografie

PARALELNÍ POČÍTAČE

[43] McCallum J.C.: Computer Architecture Lectures. http://www.comp.nus.edu.sg/~johnm/cs3220/

[44] Intel Pentium 4 processor tech specs. 2001, http://www.intel.com/home/pentium4/tech-specs.htm

[45] TOP500 Supercomputers site http://www.top500.org/

[46] Dietz H.: Is parallel processing Dead?. 1996, http://dynamo.ecn.purdue.edu/~hankd/Opinions/pardead.html

[47] Scalable Parallel Systems – IBM. http://www.research.ibm.com/parallel_systems/

[48] Agerwala T., Martin J.L., Mirza J.H., et al.: SP2 system architecture. Scalable Parallel Computing, Vol. 34, No. 2, IBM, 1995, http://www.research.ibm.com/journal/sj/agerw/agerw.html

[49] SSC - Superpočítač IBM SP2. http://www.civ.cvut.cz/Hardware/sp2.html

[50] Cray Inc. History. http://www.cray.com/company/history.html

[51] Historic Cray Systems. http://www.cray.com/company/h_systems.html

CLUSTERY

[52] The Beowulf project. http://www.beowulf.org/

[53] Beowulf mailing list FAQ (v2). http://www.dnaco.net/~kragen/beowulf-faq.txt

[54] Avalon Beowulf cluster. http://cnls.lanl.gov/avalon/

[55] Clusters TOP500. http://clusters.top500.org/

[56] MOSIX home page. http://www.mosix.cs.huji.ac.il/

[57] Parallel Processing on LINUX HOWTO. http://aggregate.org/PPLINUX/

[58] Dorband J.E., Ranawake U.A.: TheHIVE – Highly parallel Integrated Virtual Environment. http://newton.gsfc.nasa.gov/thehive/

RŮZNÉ

[59] International Business Machines website. http://www.ibm.com/

[60] International Business Machines – Research. http://www.research.ibm.com/

[61] Výpočetní a informační centrum ČVUT. http://www.civ.cvut.cz/

[62] ScaLAPACK home page. http://www.netlib.org/scalapack/scalapack_home.html

[63] Least Median of Squares. http://www-sop.inria.fr/robotvis/personnel/zzhang/Publis/Tutorial-Estim/node25.html

[64] The Written Word (open source made easy). http://www.thewrittenword.com/

[65] TIFF software homepage. http://www.libtiff.org/

[66] Projekt GaMa. http://gama.fsv.cvut.cz/gama/

Page 166: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

164 ČVUT, FSv, katedra mapování a kartografie

[67] Čepek A.: Prezentace projektu GaMa – FIG workshop Helsinki. 2001, http://gama.fsv.cvut.cz/~cepek/text/2001/fig-helsinki/

[68] GaMaLib – archiv zdrojových kódů. http://gama.fsv.cvut.cz/gama/archive/gamalib/

[69] gMatVec – archiv zdrojových kódů. http://gama.fsv.cvut.cz/gama/archive/gmatvec/

[70] FIG – International Federation of Surveyors. http://www.ddl.org/figtree/

[71] Danish Center for Remote Sensing. http://www.emi.dtu.dk/research/DCRS/

[72] Distributed GIS project. http://dhpc.adelaide.edu.au/projects/dgis/

[73] Tilton J.C.: Image segmentation by region growing and spectral clustering with natural convergence criteria. NASA Goddard Space Flight Center, http://newton.gsfc.nasa.gov/thehive/thehive_dir/tilton.html

[74] Clemson University – Parallel Architecture Research Laboratory. http://www.parl.clemson.edu/

[75] DeBardeleben N., Ligon W.: CERSe – Component-based Environment for Remote Sensing. Parallel Architecture Research Laboratory – Clemson University, http://www.parl.clemson.edu/CERSe/index.html

[76] National Oceanic and Atmospheric Administration. http://www.noaa.gov/

[77] Oak Ridge National Laboratory. http://www.ornl.gov/

[78] Luke B.T.: Simulated annealing. http://members.aol.com/btluke/simann1.htm

[79] Simulated annealing, Engineering Mathematics, Dept. of Mathematical Sciences, University of Aberdeen. http://www.maths.abdn.ac.uk/~igc/tch/eg3003/notes/node53.html

Page 167: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

165ČVUT, FSv, katedra mapování a kartografie

12121212 Seznam tabulekSeznam tabulekSeznam tabulekSeznam tabulek tabulka 4.1: Průřez generacemi počítačů .............................................................................10 tabulka 4.2: Princip instruction pipelining...........................................................................11 tabulka 4.3: Náročnost řešení typických úloh na paralelním a sekvenčním počítači ..........34 tabulka 5.1: Architektury podporované PVM (verze 3.4.3 – jaro 2001) .............................43 tabulka 8.1: Tabulka naměřených časů při paralelní obrazové korelaci ..............................81 tabulka 8.2: Medián naměřených časů při paralelní obrazové korelaci...............................82 tabulka 8.3: Výsledky časových testů paralelní obrazové filtrace.......................................91 tabulka 8.4: Výsledky časových testů paralelní transformace – varianta A1 ....................102 tabulka 8.5: Paralelní transformace souřadnic – varianta A – 1PN ...................................103 tabulka 8.6: Paralelní transformace souřadnic – varianta A – 2PN ...................................104 tabulka 8.7: Paralelní transformace souřadnic – varianta A – 3PN (5000 a 10000 d.v.)...105 tabulka 8.8: Paralelní transformace souřadnic – varianta A – 3PN (25000 a 50000 d.v.).106 tabulka 8.9: Paralelní transformace souřadnic – varianta A – 4PN (5000 a 10000 d.v.)...107 tabulka 8.10: Paralelní transformace souřadnic – var. A – 4PN (25000 a 50000 d.v.) .....108 tabulka 8.11: Výsledky časových testů paralelní transformace – varianta A2 ..................113 tabulka 8.12: Výsledky časových testů paralelní transformace – varianta B ....................113 tabulka 8.13: Paralelní transformace souřadnic – varianta B – 1PN .................................114 tabulka 8.14: Paralelní transformace souřadnic – varianta B – 3PN (5000 a 10000 d.v.).116 tabulka 8.15: Paralelní transformace souřadnic – var. B – 3PN (25000 a 50000 d.v.)......117 tabulka 8.16: Paralelní transformace souřadnic – varianta B – 4PN (5000 a 10000 d.v.).118 tabulka 8.17: Paralelní transformace souřadnic – var. B – 4PN (25000 a 50000 d.v.)......119 tabulka 8.18: Výsledky testů distribuce zátěže ..................................................................152 tabulka 8.19: Souhrn výsledných hodnot testů konvergence.............................................154

Page 168: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

166 ČVUT, FSv, katedra mapování a kartografie

13131313 Seznam obrázkůSeznam obrázkůSeznam obrázkůSeznam obrázků obrázek 4.1: Zjednodušený von Neumannův model sekvenčního počítače (SISD)............ 13 obrázek 4.2: Single instruction multiple data (SIMD) model .............................................14 obrázek 4.3: Multiple instruction single data (MISD) model..............................................15 obrázek 4.4: Pipelined multiprocesor (aplikace MISD modelu) ......................................... 15 obrázek 4.5: Multiple instruction multiple data (MIMD) model.........................................15 obrázek 4.6: One-to-all broadcast........................................................................................17 obrázek 4.7: All-to-all broadcast ......................................................................................... 17 obrázek 4.8: One-to-all scatter............................................................................................. 17 obrázek 4.9: All-to-all scatter .............................................................................................. 17 obrázek 4.10: Přístup ke sdílené paměti (SM) v SMPC......................................................18 obrázek 4.11: Přístup k distribuované paměti (DM) v DMPC............................................19 obrázek 4.12: Přístup k virtuálně sdílené paměti (VSM) .................................................... 20 obrázek 4.13: Čtyřrozměrná hyperkrychle .......................................................................... 24 obrázek 4.14: Cube-connected cycles dimenze 3................................................................ 24 obrázek 4.15: Zavinutý motýlek (wrapped butterfly) dimenze 3 ........................................ 25 obrázek 4.16: Obyčejný motýlek (ordinary butterfly) dimenze 3 ....................................... 25 obrázek 4.17: Mřížka dimenze 3 ......................................................................................... 26 obrázek 4.18: Torus dimenze 3............................................................................................ 26 obrázek 4.19: de Bruinův graf ............................................................................................. 26 obrázek 4.20: Kompletní binární: a) strom, b) X-strom, c) hyperstrom........................ 27 obrázek 5.1: PVM konzole - výpis konfigurace paralelního systému................................. 43 obrázek 5.2: PVM konzole - přidání nového uzlu............................................................... 45 obrázek 5.3: PVM konzole - odebrání uzlu z konfigurace .................................................. 45 obrázek 5.4: PVM konzole - výpis běžících paralelních procesů........................................ 46 obrázek 5.5: XPVM - hlavní okno - konfigurace paralelního počítače............................... 47 obrázek 5.6: XPVM - graf vytížení jednotlivých paralelních procesů ................................ 49 obrázek 5.7: XPVM - informace o zprávách v datové frontě procesu ................................ 50 obrázek 5.8: XPVM - detailní informace o konkrétní zprávě v průběhu výpočtu .............. 52 obrázek 5.9: XPVM - právě probíhající paralelní program (playback)............................... 55 obrázek 5.10: XPVM - detail komunikace mezi paralelními procesy................................. 56 obrázek 8.1: Princip obrazové korelace............................................................................... 73 obrázek 8.2: Pohyb submatice okenního páru po vyhledávací oblasti ................................ 74 obrázek 8.3: Rozdělení korelace obrazu mezi paralelně pracující procesy......................... 78 obrázek 8.4: Princip aplikace obrazového filtru .................................................................. 84 obrázek 8.5: 1. Laplaceovský operátor (lap1) ..................................................................... 85 obrázek 8.6: 2. Laplaceovský operátor (lap2) ..................................................................... 85 obrázek 8.7: Sharpening operátor (sha) ............................................................................... 86 obrázek 8.8: Robertsův operátor (rob)................................................................................. 86 obrázek 8.9: Sobelův operátor - 2 kernely (sob2) ............................................................... 87 obrázek 8.10: Sobelův operátor - 8 kernelů (sob8) ............................................................. 87 obrázek 8.11: Prewittův operátor - 2 kernely (pre2) ........................................................... 88 obrázek 8.12: Prewittův operátor - 8 kernelů (pre8) ........................................................... 88 obrázek 8.13: Lineární operátor - 2 kernely (lin2) .............................................................. 89 obrázek 8.14: Lineární operátor - 4 kernely (lin4) .............................................................. 89 obrázek 8.15: Robinsonův operátor - 8 kernelů (rob8) ....................................................... 89 obrázek 8.16: Kirschův operátor - 8 kernelů (kir) ............................................................... 90 obrázek 8.17: Ukázka výstupu programu - varianta A........................................................ 95 obrázek 8.18: Schéma práce master procesu - varianta A1 ................................................. 96

Page 169: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

167ČVUT, FSv, katedra mapování a kartografie

obrázek 8.19: Schéma práce slave procesu - varianta A1....................................................97 obrázek 8.20: Schéma práce master a slave procesu - varianta A2 .....................................98 obrázek 8.21: Ukázka výstupu programu - varianta B ........................................................99 obrázek 8.22: Schéma práce master procesu - varianta B .................................................100 obrázek 8.23: Schéma práce slave procesu - varianta B....................................................101 obrázek 8.24: Paralelní transformace souřadnic – varianta B – 2PN ................................115 obrázek 8.25: Princip permutačního vektoru .....................................................................135 obrázek 8.26: Schéma funkce použitých objektů - paralelní LTS .....................................136 obrázek 8.27: Princip genetického křížení.........................................................................139 obrázek 8.28: Princip genetické mutace ............................................................................140 obrázek 8.29: Výběr permutačního vektoru (genetický přístup) .......................................141 obrázek 8.30: Schéma práce master procesu - paralelní LTS............................................143 obrázek 8.31: Schéma práce slave procesu - paralelní LTS ..............................................144 obrázek 8.32: Výsledky testů teoretického výkonu ...........................................................148

Page 170: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

168 ČVUT, FSv, katedra mapování a kartografie

14141414 Seznam grafůSeznam grafůSeznam grafůSeznam grafů graf 4.1: Růst výkonu paralelního systému ......................................................................... 33 graf 8.1: Časy naměřené při paralelní obrazové korelaci .................................................... 82 graf 8.2: Růst výkonu v závislosti na počtu použitých procesorů ....................................... 82 graf 8.3: Závislost výsledných časů na počtu použitých procesorů .................................... 92 graf 8.4: Výsledný nárůst výkonu při paralelní obrazové filtraci........................................ 93 graf 8.5: Závislost času paralelní transformace souřadnic na počtu procesorů – var. A1 .109 graf 8.6: Závislost času paralelní transformace souřadnic na počtu procesorů – var. A2 .110 graf 8.7: Výsledný nárůst výkonu při paralelní transformaci souřadnic – varianta A1..... 111 graf 8.8: Výsledný nárůst výkonu při paralelní transformaci souřadnic – varianta A2..... 112 graf 8.9: Závislost času paralelní transformace souřadnic na počtu procesorů – var. B ...120 graf 8.10: Výsledný nárůst výkonu při paralelní transformaci souřadnic – varianta B.....121 graf 8.11: Vliv aplikace load balancingu na výsledné rozdělení zátěže............................ 150 graf 8.12: Srovnání počtu nutných iterací pro konvergenci metody pro různé přístupy

k výběru vzorků ......................................................................................................... 157 graf 8.13: Srovnání časů konvergence pro různé přístupy k výběru vzorků ..................... 158

Page 171: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

169ČVUT, FSv, katedra mapování a kartografie

15151515 RRRRejstříkejstříkejstříkejstřík Amdahlův zákon ........................................................................................................ 34

Beowulf ............................................................................................28, 29, 30, 64, 163

Bernsteinova podmínka ........................................................................................ 32, 35

Cluster ............................................................................................................... 28, 149

Concurrent Read Concurrent Write ............................................................... viz CRCW

Concurrent Read Exclusive Write...................................................................viz CREW

Consensus model........................................................................................................ 20

Cray ............................................................................................................................. 8

CRCW ....................................................................................................................... 20

CREW........................................................................................................................ 20

Cube-connected cycles ............................................................................................... 24

Data parallelism .........................................................................viz datový paralelismus

Data stream ................................................................................................................ 13

Datový paralelismus............................................................................................. 35, 39

Distributed Memory Parallel Computer ..........................................................viz DMPC

DMPC.......................................................................................................18, 21, 40, 99

DPZ ..................................................................................................................... 62, 64

ERCW........................................................................................................................ 20

EREW........................................................................................................................ 20

Exclusive Read Concurrent Write...................................................................viz ERCW

Exclusive Read Exclusive Write.....................................................................viz EREW

Fast Ethernet ........................................................................................................ 22, 30

Flynnova taxonomie ................................................................................................... 12

Functional parallelism .............................................................. viz funkční paralelismus

Funkční paralelismus............................................................................................ 35, 39

GaMaLib........................................................................................................ 6, 70, 138

Gene Amdahl ............................................................................................................. 34

Genetická mutace ..................................................................................................... 140

Genetické křížení ..................................................................................................... 139

Genetika.................................................................................viz Mendelovská genetika

gMatVec ........................................................................................................ 6, 70, 147

HAL................................................................................................................... 28, 173

Hyperkrychle ............................................................................................................. 23

Page 172: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

170 ČVUT, FSv, katedra mapování a kartografie

ICNW....................................................................................................... 16, 18, 21, 29

ILP ......................................................................................................... 10, 11, 14, 173

INCW.........................................................................................................................29

Instruction level parallelism.................................................................................viz ILP

Instruction pipelining............................................................................................10, 13

Instruction stream .......................................................................................................12

InterConnection NetWork............................................................................... viz ICNW

Johann Gregor Mendel..............................................................................................138

John von Neumann .....................................................................................................13

Knihovna matkart .......................................................................................................94

LAN ............................................................................................................... 22, 30, 64

Least Trimmed Squares ..................................................................................... viz LTS

Linda ..........................................................................................................................58

Linux........................................................................................................ 28, 29, 64, 66

Load balancing .....................................29, 50, 55, 68, 95, 102, 122, 123, 133, 147, 152

LTS .................................................................................................................... 123–58

Memory management ................................................................................. 19, 174, 177

Mendelovská genetika ..............................................................................................138

MIMD ..................................................................................................................13, 15

MISD ............................................................................................................. 13, 14, 15

MOSIX................................................................................................... 28, 29, 30, 163

MPI .............................................................................19, 28, 29, 57, 60, 61, 63, 65, 67

MPICH........................................................................................................... 57, 65, 69

MPP ........................................................................................27, 28, 29, 30, 57, 60, 62

Multiple Instruction stream Multiple Data stream ...........................................viz MIMD

Multiple Instruction stream Single Data stream ...............................................viz MISD

Network FileSystem .......................................................................................... viz NFS

Networks of workstations ................................................................................ viz NOW

NFS ............................................................................................................................94

NOAA ................................................................................................................ 63, 175

NOW.........................................................................................7, 21, 29, 30, 62, 67, 70

Paralelizmus .................................................................................................................8

Parallel Virtual Machine................................................................................... viz PVM

PE ............................................................................................. viz processing elements

Pipelined multiprocessor.......................................................................................15, 35

Page 173: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

171ČVUT, FSv, katedra mapování a kartografie

PN....................................................................................................viz processing node

Priority model ............................................................................................................ 20

Processing elements ......................................................................11, 18, 21, 23, 78, 79

Processing node ....................................................................................18, 22, 172, 175

Processing units ........................................................................ viz processing elements

Propojovací síť............................................................................................... viz ICNW

PVM ............................................................29, 31, 39–56, 57, 59, 60, 61, 99, 101, 175

ScaLAPACK........................................................................................................ 61, 69

Shared Memory Parallel Computer................................................................. viz SMPC

SIMD ........................................................................................................13, 14, 15, 35

Single Instruction stream Multiple Data stream ............................................... viz SIMD

Single Instruction stream Single Data stream ................................................... viz SISD

SISD .......................................................................................................................... 13

SMP ....................................................................................................11, 27, 29, 30, 62

SMP on a chip...................................................................................................... 11, 27

SMPC .......................................................................................................18, 20, 21, 40

SP2 .....................................................................................................65, 66, 67, 79, 91

SSE ............................................................................................................................ 14

Sum model ................................................................................................................. 20

SWAR........................................................................................................................ 14

Tagged Image File Format ................................................................................viz TIFF

Thinking Machines......................................................................................... 12, 42, 63

TIFF........................................................................................................................... 79

Toplist.............................................................................................................. 137, 151

Trimming constant .................................................................... 126, 129, 135, 138, 139

Virtual Shared Memory.................................................................................... viz VSM

VLIW......................................................................................................................... 11

VLSI .......................................................................................................................... 23

VSM .............................................................................................................. 19, 20, 28

WAN.................................................................................................................... 22, 30

Page 174: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

172 ČVUT, FSv, katedra mapování a kartografie

16161616 Rejstřík použitých zkratek a pojmůRejstřík použitých zkratek a pojmůRejstřík použitých zkratek a pojmůRejstřík použitých zkratek a pojmů

ccNUMA cache coherent Non-Uniform Memory Access – sdílená paměť, jejíž jednotlivé části ale nejsou uloženy na jednom místě. Přístup do jednotlivých částí proto není pro jednotlivé procesory, které jí používají, stejně rychlý. Pro urychlení přístupu do nelokálních částí se proto používají cache pamětí. Systém cache pamětí je vybaven subsystémem zajišťujícím jejich koherenci při konkurenčním čtení a zápisu různých PN do stejné části paměti.

COTS Commodity Off The Shelf – běžně dostupný hardware, sériově vyráběný, který lze bez problémů nakoupit v každém specializovaném obchodě s HW. S výhodou se používá například pro výrobu Linuxových clusterů Beowulf, kdy umožňuje za přijatelnou cenu běžně dostupného, ale přitom poměrně výkonného hardware vytvořit výpočetní nástroj se značným výpočetním výkonem.

DM Distributed Memory – distribuovaná paměť reprezentuje paměťovou kapacitu paralelního DMPC počítače rozdělenou mezi jednotlivé PE. Její realizace je tedy technologicky mnohem méně náročná než realizace SM u SMPC počítače ale přístup do ní je relativně mnohem pomalejší a tvorba programů pro počítač používající DM je komplikovanější.

DMPC Distributed Memory Parallel Computer – paralelní počítač s distribuovanou pamětí je paralelní počítač složený z jednotlivých processing nodes (procesor v kombinaci s lokální pamětí vybavený komunikačním hardware) komunikujících přes propojovací síť (ICNW). Data, která při výpočtu procesor nenalezne ve své lokální paměti si musí vyžádat od PE, který je vlastní. Tento typ počítače bývá na rozdíl od SMPC relativně konstrukčně jednodušší, tvorba paralelních programu pro něj je však v porovnání se SMPC komplikovanější.

DPZ Dálkový průzkum Země – odvětví geodézie zabývající se získáváním dále využitelných informací o Zemi s cílem vytvořit její digitální model. Pro měření používá nekontaktní metody – pozorování z letadel, družic apod. s využitím odraženého slunečního záření, radarů atd.

DSM Distributed Shared Memory – distribuovaná paměť, která se chová pro uživatele jako paměť sdílená. Sdružuje dobré vlastnosti paměti distribuované (jednodušší konstrukce než SM) a sdílené (snadnější tvorba programů než pro DM). Bývá také označována jako VSM.

Page 175: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

173ČVUT, FSv, katedra mapování a kartografie

FIG Fédération Internationale des Géomètres – Mezinárodní federace zeměměřičů – založena roku 1878 v Paříži, sdružuje cca 100 národních asociací a nezávislých skupin. Bližší informace viz [70].

FLOPS Floating Point Operations Per Second – charakteristika výkonu počítače v operacích s pohyblivou řádovou čárkou, udávající počet provedených operací v pohyblivé řádové čárce za sekundu. Lze použít i její násobky KFLOPS, MFLOPS, GFLOPS, udávající výkon v operacích v pohyblivé řádové čárce za sekundu v násobku 103, 106, 109, nebo případně dnes již používané TFLOPS (FLOPS * 1012)

HAL Hardware Abstraction Layer – v Microsoft Windows NT je HAL softwarová vrstva, která slouží jako rozhranní mezi hardware a systémovými procesy, aplikacemi a ovladači. Umožňuje tvorbu ovladačů a aplikací nezávislých a konkrétní verzi hardware. (Kuriozita: HAL je také označení počítače ve slavném románu A.C.Clarka Vesmírná odysea 2001, kde bylo toto jméno vytvořeno z označení firmy IBM dekrementací jednotlivých znaků).

IBM International Business Machines corporation – největší světový výrobce počítačů (po Microsoftu druhá největší počítačová firma na světě). Počátky existence firmy sahají až do roku 1911, kdy fůzí vznikla firma CTR (Computing-Tabulating-Recording company). V roce 1924 byla firma přejmenována na IBM a jejím hlavním artiklem stále zůstávaly děrnoštítkové stroje až do roku 1953, kdy vstupuje na počítačový trh se svým modelem 701. V roce 1964 přichází se System/360 – první rodinou navzájem kompatibilních mainframe počítačů. V roce 1981 de facto stanovuje standard svým PC. V roce 1991 vyvíjí spolu s Apple a Motorola procesor PowerPC, který později dává vzniknout i počítačům IBM RS/6000. V současné době i přes masivní produkci pracovních stanic, PC a notebooků stále dominuje svou produkcí sálových počítačů (více viz [59]).

ICNW InterConnection NetWork – propojovací síť. Propojovací síť reprezentuje komunikační médium v paralelních počítačích. V SMPC po ní jednotlivé PE přistupují do sdílené paměti, V případě DMPC je po ní uskutečňována komunikace jednotlivých PE mezi sebou.

ILP Instruction Level Parallelism – paralelní zpracování na úrovni jednotlivých instrukcí používané v moderních procesorech – superskalární procesory, VLIW, nebo například SWAR (SIMD Within A Register) použité v současných procesorech Pentium III, IV.

Page 176: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

174 ČVUT, FSv, katedra mapování a kartografie

LSI Large-Scale Integration – vysoká úroveň integrace použitá při výrobě integrovaných obvodů – technologie umožňující použít 3000 až 100000 tranzistorů na čipu.

LTS Least Trimmed Squares – robustní metoda řešení soustavy lineárních rovnic. Heuristická metoda, která hledá odlehlá měření pomocí opakovaného řešení soustavy rovnic, z níž jsou některá meření vypuštěna.

Mbps MegaBits Per Second – charakteristika používaná pro stanovení rychlosti komunikace případně propustnosti komunikačního kanálu. Určuje rychlost komunikace v milionech přenesených bitů za jednu sekundu – podobně se používá i s dalším násobitelem Gbps (miliardy bitů za sekundu).

MIPS Mega Instructions Per Second – charakteristika používaná k hodnocení výkonnosti počítačů. Udává počet operací provedených za sekundu v milionech. Podobně jako pomocí KIPS a GIPS lze udávat tutéž charakteristiku v tisících nebo miliardách instrukcí za sekundu. Viz také FLOPS.

MIMD Multiple Instruction stream Multiple Data stream – podle Flynnovy taxonomie rozdělující paralelní počítače podle počtu datových a instrukčních front je toto typ počítače, kde jsou procesory řízeny několika instrukčními frontami a zpracovávají z několika datových front – toto je jedna z používaných architektur paralelních počítačů (spolu se SIMD). Na rozdíl od SIMD architektury jsou tyto počítače náročnější na konstrukci a tvorbu programů, jsou však oproti SIMD mnohem univerzálnější.

MISD Multiple Instruction stream Single Data stream – podle Flynnovy taxonomie rozdělující paralelní počítače podle počtu datových a instrukčních front je toto typ počítače, kde jsou procesory řízeny několika instrukčními frontami a zpracovávají data z jedné datové fronty – tato architektura není příliš používaná a vznikla spíše umělým dělením podle Flynnovy klasifikace.

MM Memory Management – systém, který se stará o správu paměti – v případě VSM zabezpečuje správu distribuované paměti tak, aby se uživateli jevila jako paměť sdílená.

MPL Message Passing Library je knihovna pro paralelní výpočty vytvořená firmou IBM pro systémy s distribuovanou pamětí (SP, SP2), následně přenesená na PVS (sdílená paměť) a RS/6000 cluster. MLP podporuje explicitní paralelismus architektury SIMD.

Page 177: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

175ČVUT, FSv, katedra mapování a kartografie

MSI Medium-Scale Integration – střední úroveň integrace použitá při výrobě integrovaných obvodů – technologie umožňující použít 100 až 3000 tranzistorů na čipu.

NOAA National Oceanic and Atmospheric Administration – organizace provozující a využívající stejnojmennou síť geostacionárních družic (Geostationary Operational Environmental Satellites - GOES) a družic na polárních drahách převážně za účelem sledování a předpovídání počasí. Bližší informace viz [76].

NOW Network Of Workstations – v poslední době velmi populární typ distribuovaného paralelního systému, tvořeného většinou běžně dostupným hardware, optimálně propojeným rychlou místní sítí. O chod paralelních programů se starají speciální knihovny (PVM, MPICH).

NUMA Non-Uniform Memory Access – sdílená paměť, jejíž jednotlivé části ale nejsou uloženy na jednom místě. Přístup do jednotlivých částí proto není pro jednotlivé procesory, které jí používají, stejně rychlý. Pro urychlení přístupu do nelokálních částí se proto používají cache paměti. Vyvstává zde problém s koherencí konkurenčně čtených a zapisovaných dat, který řeší například ccNUMA.

PE Processing element – v paralelním počítači s distribuovanou pamětí (DMPC) představuje základní výpočetní jednotku – spojení procesoru a lokální paměti. PE spolu komunikují přes propojovací síť.

PN Processing Node – výpočetní uzel. V paralelním počítači s distribuovanou pamětí (DMPC) PN představuje spojení processing elementu (procesor a lokální paměť) a komunikačního hardware, které jim umožňuje vzájemně komunikovat přes propojovací síť (ICNW).

PP Paralelní počítač (někdy také || počítač) – je počítač vybavený více výpočetními jednotkami (procesory, uzly), na kterém jsou úlohy řešeny s použitím paralelizmu (úloha je řešena paralelně několika uzly PP většinou s cílem urychlit její zpracování).

PVM Parallel Virtual Machine – software umožňující běh paralelních programů na paralelních počítačích s distribuovanou pamětí a sítích pracovních stanic s použitím message passing principu.

Page 178: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

176 ČVUT, FSv, katedra mapování a kartografie

SIMD Single Instruction stream Multiple Data stream – podle Flynnovy taxonomie rozdělující paralelní počítače podle počtu datových a instrukčních front je toto typ počítače, kde jsou procesory řízeny jednou instrukční frontou a zpracovávají data z několika datových front – tato architektura je dobře použitelná u úloh, jejichž data lze rozdělit na podmnožiny ty pak pracovávat samostatně.

SISD Single Instruction stream Single Data stream – podle Flynnovy taxonomie rozdělující paralelní počítače podle počtu datových a instrukčních front je toto typ počítače, kde je procesor řízen jednou instrukční frontou a zpracovává data z jedné datové fronty – do této kategorie můžeme zařadit klasický sekvenční počítač.

SM Shared Memory – sdílená paměť reprezentuje paměťový prostor SMPC počítače. Její realizace je technicky náročnější než realizace DM u DMPC počítače, a to vzhledem k nutnosti řešit problémy s konkurenčním přístupem jednotlivých PE, případně s jednotností případných lokálních cache pamětí jednotlivých PE.

SMPC Shared Memory Parallel Computer – paralelní počítač se sdílenou pamětí je paralelní počítač, kde jednotlivé procesory mají přístup ke společné sdílené paměti (shared memory), k níž přistupují přes propojovací síť (ICNW). Tento typ paralelních počítačů je na rozdíl od DMPC většinou konstrukčně náročnější, tvorba programů pro něj je však snazší.

SSI Small-Scale Integration – malá úroveň integrace použitá při výrobě integrovaných obvodů – technologie umožňující použít méně než 100 tranzistorů na čipu.

VLIW Very Long Instruction Word – počítačové systémy řazené mezi paralelní. Obsahují větší množství paralelně spolupracujících jednotek, které spolupracují na provádění jedné „metainstrukce“ o délce několika set, případně i tisíc bitů. Jednotlivé procesory obsažené ve VLIW systému jsou specializovány na provádění určitého typu operací a kompilátor se stará o sestavování „metainstrukcí“, které samy o sobě obsahují několik (podle konfigurace systému) instrukcí zpracovávaných paralelně.

VLSI Very-Large-Scale Integration – velmi vysoká úroveň integrace použitá při výrobě integrovaných obvodů – technologie umožňující použít 100000 až jeden milion tranzistorů na čipu.

Page 179: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

177ČVUT, FSv, katedra mapování a kartografie

VSM Virtual Shared Memory – paměť paralelního počítače konstrukčně řešená jako paměť distribuovaná (konstrukčně jednodušší než SM), ale tvářící se jako paměť sdílená. Přináší s sebou jednoduchost přístupu paměti sdílené a nižší konstrukční náročnost paměti distribuované. Za tyto výhody platí nutností použití systému správy paměti (memory management), který zajišťuje to, že se celý systém uživateli jeví jako paměť sdílená. Bývá také označována jako DSM.

ULSI Ultra-Large-Scale Integration – extrémně vysoká úroveň integrace použitá při výrobě integrovaných obvodů – technologie umožňující použít více než jeden milion tranzistorů na čipu.

UMA Uniform Memory Access – typ paměti používané především u SMP počítačů se sdílenou pamětí. Sdílená paměť je uložená převážně v jednom místě a všechny procesory do ní mají přes použitou ICNW (nejčastěji sběrnice) stejně rychlý přístup.

Page 180: geo.fsv.cvut.czgeo.fsv.cvut.cz/proj/dis/2002/martin-jerabek-dis-2002.pdf · Využití paralelních výpočtů v geodézii ČVUT, FSv, katedra mapování a kartografie 1 11 ObsahObsahObsah

Využití paralelních výpočtů v geodézii

178 ČVUT, FSv, katedra mapování a kartografie

17171717 Sezam přílohSezam přílohSezam přílohSezam příloh Příloha 1: Distribuce časů při použití paralelního LTS – klasický LTS přístup –

10000 opakování

Příloha 2: Distribuce časů při použití paralelního LTS – genetický přístup (křížení – 1 genetická větev) – 10000 opakování

Příloha 3: Distribuce časů při použití paralelního LTS – genetický přístup (křížení – 25% genetických větví) – 10000 opakování

Příloha 4: Distribuce časů při použití paralelního LTS – genetický přístup (křížení – 50% genetických větví) – 10000 opakování

Příloha 5: Distribuce časů při použití paralelního LTS – genetický přístup (křížení – pouze genetické větve) – 10000 opakování

Příloha 6: Distribuce časů při použití paralelního LTS – genetický přístup (mutace – 1 genetická větev) – 10000 opakování

Příloha 7: Distribuce časů při použití paralelního LTS – genetický přístup (mutace – 25% genetických větví) – 10000 opakování

Příloha 8: Distribuce časů při použití paralelního LTS – genetický přístup (mutace – 50% genetických větví) – 10000 opakování

Příloha 9: Distribuce časů při použití paralelního LTS – genetický přístup (mutace – pouze genetické větve) – 10000 opakování

Příloha 10: Tabulka naměřených hodnot – test paralelního LTS – klasický LTS přístup – 500 opakování

Příloha 11: Závislost času výpočtu na použitém počtu procesorů při použití paralelního LTS – klasický LTS přístup – 500 opakování

Příloha 12: Naměřený růst výkonu při použití paralelního LTS – klasický LTS přístup – 500 opakování

Příloha 13: Tabulka naměřených hodnot – test paralelního LTS – genetické křížení – 1 genetická větev – 500 opakování

Příloha 14: Závislost času výpočtu na použitém počtu procesorů při použití paralelního LTS – genetické křížení – 1 genetická větev – 500 opakování

Příloha 15: Naměřený růst výkonu při použití paralelního LTS – genetické křížení – 1 genetická větev – 500 opakování

Příloha 16: Tabulka naměřených hodnot – test paralelního LTS – genetická mutace – 1 genetická větev – 500 opakování

Příloha 17: Závislost času výpočtu na použitém počtu procesorů při použití paralelního LTS – genetická mutace – 1 genetická větev – 500 opakování

Příloha 18: Naměřený růst výkonu při použití paralelního LTS – genetická mutace – 1 genetická větev – 500 opakování