SlideShare a Scribd company logo
1 of 108
Download to read offline
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ
DISERTAČNÍ PRÁCE
k získání akademického titulu Doktor (Ph.D.)
ve studijním programu
INFORMAČNÍ TECHNOLOGIE
Ing. Vladimír Kutálek
MODELOVÁNÍ A PREDIKCE VÝKONNOSTI
APLIKAČNĚ SPECIFICKÝCH MULTIPROCESOROVÝCH SYSTÉMŮ
Školitel: Prof. Ing. Václav Dvořák, DrSc.
Datum státní doktorské zkoušky: 18.6.2003
Datum odevzdání práce: 30.04.2005
Práce je k dispozici na Vědeckém oddělení děkanátu FIT VUT v Brně
2
Abstrakt
S pronikáním číslicové techniky do všech oblastí života dochází k velkému rozvoji aplikačně
specifických systémů a architektur, které jsou stále více multiprocesorové, rekonfigurovatelné a často
už na jednom čipu. Při přenosu multiprocesorových systémů na čip je třeba modifikovat tradiční
techniky distribuované a sdílení paměti s ohledem na stále vyšší požadované výpočetní výkony,
nízkou cenu a spotřebu. Pro specifické třídy aplikací vznikají šablony architektur (algoritmů) tzv.
generické architektury (skeletony programů). Předložená práce je zaměřena právě do této oblasti a
týká se modelování a optimalizace generických aplikačně specifických multiprocesorových systémů
zejména s ohledem na výkonnost a cenu. Vzhledem k šíři této oblasti výzkumu a vývoje jde v práci
jen o několik dílčích témat, na sobě více méně nezávislých. Většinu z nich spojuje použití stejné
modelovací a simulační techniky komunikujících procesů (Transim), v jednom tématu je použit
analytický přístup.
Nejdříve byly modelovány generické architektury s distribuovanou a sdílenou pamětí. V prvním
případě umožňuje simulace návrh (přizpůsobení) zřetězené farmy dané úloze. Ve druhém případě
model potvrdil vyšší výkonnost a umožnil specifikovat třídu úloh, na které s ní lze počítat. Následující
model algoritmického skeletonu pro třídu algoritmů „Rozděl a panuj“ dovoluje predikci výkonnosti na
architekturách s distribuovanou i sdílenou pamětí. Vytvoření modelu bylo poněkud náročnější,
poněvadž použitý simulátor a jazyk nepodporuje dynamické procesy.
Posledním tématem byla generická komunikační architektura vycházející z krychle. Volbou počtu
procesorů v uzlu krychle, případně volbou násobnosti jejích hran vzniká řada konfigurací (tzv. tlustá
krychle). Tato nová volnost dovoluje snížit počet dimenzí tradiční krychle a zjednodušit fyzickou
implementaci. V práci byly zavedeny čtyři možné modely směrovačů, odvozeny cenové relace
jednotlivých variant tlusté krychle a modifikovány známé výsledky týkající se počtu kroků
skupinových komunikačních algoritmů na klasické krychli pro tlustou krychli. Uvedený rozbor dovolí
výběr optimálního propojení typu tlusté krychle s ohledem na trvání komunikací a cenu.
Dosažené výsledky a rozpracované modelovací techniky se uplatní u multiprocesorových systémů
s distribuovanou sdílenou pamětí v aplikacích běžících na uvažovaných generických
architekturách/algoritmech.
3
Abstract
With digital techniques penetrating all areas of our lives, a huge progress is realized in application-
specific systems and architectures, which are ever more multi-processor based, reconfigurable and
often on a single chip. When transferring multiprocessor systems on a chip, traditional shared and
distributed memory techniques have to be modified with respect to steadily rising requirements on
computing power, low cost and low power consumption. Architecture (algorithm) templates, so called
generic architectures (program skeletons), are being developed for specific classes of applications. The
presented thesis is oriented just into this field and deals with modeling and optimization of generic,
application-specific multiprocessor systems with the emphasis on performance and cost. With regard
to this very wide area of research development, only a few partial topics are treated in the thesis, more
or less independent on one another. The most of these topics are connected by making use of a
common modeling and simulation technique of communicating sequential processes (Transim); an
analytical approach is used in the last single topic.
Generic architectures with distributed memory have been modeled first, followed by shared
memory architectures. In the farmer case the simulation is used to design (customize) the pipelined
farm for a given task. In the latter case the model proved a higher performance in solution of a certain
class of problems and also how this class can be specified. Another model of a program skeleton for
“divide and conquer” algorithms can predict performance on both the distributed as well as shared
memory architectures. The creation of this model has been more demanding because the language and
simulator do not support dynamic processes.
Generic communication architecture based on the cube architecture is the last topic. A wide range
of configurations of the generic communication architecture (so called fat cube) is established by
changing a number of processors in cube nodes or a multiplicity of edges. Thanks to this variability a
number of dimensions can be lower and physical implementation can be simpler then with the
traditional cube. Four possible models of routers have been introduced in the thesis, price relations of
particular fat cube configurations have been derived and known results about a number of steps in
group communications on the classical cube have been modified for the fat cube. The presented
analysis will allow selection of the optimal fat cube interconnection depending on communication
times and cost.
Achieved results and elaborated modeling technique can assert themselves in multiprocessor
systems with distributed or shared memory in the applications running on considered generic
architectures/algorithms.
4
Poděkování
Tato práce vznikla v letech 2001 – 2004 na Ústavu počítačových systémů Fakulty Informačních
technologií Vysokého učení technického v Brně.
Děkuji svému školiteli, Prof. Ing. Václavu Dvořákovi, DrSc., za trpělivé vedení během mého
studia, za cenné rady, připomínky a komentáře k mé práci.
Tato práce vznikla za podpory Grantové agentury České republiky (projekt 102/02/0503 Predikce a
ladění paralelní výkonnosti) a Ministerstva školství, mládeže a tělovýchovy (výzkumný záměr J22/98:
262200012 Výzkum informačních a řídicích systémů).
Tato práce byla oceněna Fórem průmyslu a vysokých škol ČR a firmou Siemens Cenou Siemens –
stipendijní podporou pro doktorandy za 2003, dále programovým výborem pracovního semináře pro
studenty doktorského studia „Počítačové architektury & diagnostiky“ PAD 2003 cenou Prof. Ing. Jana
Hlavičky, DrSc. za vynikající příspěvek.
Děkuji svým kolegům, studentům doktorského studia, za plodné debaty, které byly přínosem mému
studiu a práci.
V neposlední řadě děkuji své rodině za morální i finanční podporu během mého studia, bez níž by
vznik této práce byl nemyslitelný.
Vladimír Kutálek
Brno, duben 2005
5
Věnováno Antonínovi Kutálkovi
18.2.1971 – 18.5.2002
mému bratrovi, in memoriam
6
Obsah
1. ÚVOD ..............................................................................................................11
1.1 Motivace ..............................................................................................................................................11
1.2 Vývoj technologií ................................................................................................................................11
1.3 Cíle disertační práce...........................................................................................................................12
1.4 Organizace disertační práce ..............................................................................................................12
2. SOUČASNÝ STAV PROBLEMATIKY ............................................................15
2.1 Paralelní zpracování...........................................................................................................................15
2.1.1 Základní pojmy ................................................................................................................................15
2.1.2 Režie paralelního zpracování ...........................................................................................................16
2.1.3 Jazyky pro simulaci a modelování paralelních systémů...................................................................16
2.1.4 Profilace a ladění výkonnosti...........................................................................................................17
2.2 Komunikační architektury ................................................................................................................18
2.2.1 Parametry propojovacích sítí............................................................................................................18
2.2.2 Architektura výpočetního uzlu.........................................................................................................20
2.2.2.1 Počet současně použitelných komunikujících portů................................................................20
2.2.2.2 Typ provozu na linkách...........................................................................................................20
2.2.2.3 Možnosti manipulace s pakety – kombinující a nekombinující model....................................20
2.2.3 Skupinové a párové komunikace .....................................................................................................20
2.2.4 Ukazatele hodnotící komunikační složitost......................................................................................22
2.2.5 Přepínací techniky............................................................................................................................23
2.2.5.1 Přepínaní kanálů......................................................................................................................23
2.2.5.2 Paketové přepínání ..................................................................................................................24
2.2.5.3 Červí přepínání........................................................................................................................24
2.2.5.4 Průřezové přepínání.................................................................................................................25
2.2.6 Zablokování při komunikaci ............................................................................................................25
2.3 Skupinové komunikace na krychli....................................................................................................26
2.3.1 Spodní meze.....................................................................................................................................26
2.3.2 Komunikace OAB............................................................................................................................27
2.3.3 Komunikace OAS ............................................................................................................................28
2.3.3.1 Nekombinující model..............................................................................................................28
2.3.3.2 Kombinující model..................................................................................................................29
2.3.4 Komunikace AAB............................................................................................................................29
2.3.4.1 Kombinující model..................................................................................................................29
2.3.4.2 Nekombinující model..............................................................................................................30
2.3.5 Komunikace AAS ............................................................................................................................30
2.3.5.1 Kombinující model..................................................................................................................30
2.3.5.2 Nekombinující model..............................................................................................................30
3. GENERICKÉ ARCHITEKTURY ......................................................................31
3.1 SMP s víceprotokolovým řadičem vyrovnávací paměti..................................................................31
3.1.1 SMP a koherence vyrovnávacích pamětí .........................................................................................31
3.1.2 Princip víceprotokolového řadiče ....................................................................................................32
3.1.3 Protokoly MESI a Dragon................................................................................................................32
3.1.4 Model sdílené paměti v Transimu....................................................................................................33
7
3.1.5 Model víceprotokolového řadiče v Transimu ..................................................................................34
3.1.6 Výsledky simulací jednoduchého paralelního výkonnostního testu ................................................36
3.2 Zřetězená procesorová farma............................................................................................................37
3.2.1 Motivace...........................................................................................................................................37
3.2.2 Klasická lineární farma ....................................................................................................................38
3.2.3 Zřetězená linka.................................................................................................................................38
3.2.4 Smíšená architektura........................................................................................................................38
3.2.5 Případová studie – desátá mocnina matice.......................................................................................39
3.2.6 Případová studie – abstraktní úlohy.................................................................................................40
3.2.7 Model zřetězené procesorové farmy ................................................................................................40
3.2.8 Výsledky simulací............................................................................................................................41
3.2.9 Výhody a nevýhody zřetězené procesorové farmy ..........................................................................44
3.3 Rozděl a panuj ....................................................................................................................................44
3.3.1 Motivace...........................................................................................................................................44
3.3.2 Sekvenční algoritmus D&C .............................................................................................................45
3.3.3 Paralelizace algoritmu D&C ............................................................................................................46
3.3.4 Modelování algoritmu D&C v Transimu.........................................................................................47
3.3.5 Simulace paralelní implementace D&C algoritmu 1D FFT.............................................................48
3.3.6 Přínos simulace algoritmů D&C implementované v Transimu........................................................49
4. GENERICKÁ KOMUNIKAČNÍ ARCHITEKTURA „TLUSTÁ KRYCHLE“ ......51
4.1 Základní vlastnosti tlusté krychle .....................................................................................................51
4.1.1 Počet současně použitelných komunikujících portů ........................................................................54
4.1.2 Cenová kriteria.................................................................................................................................56
4.2 Modely tlusté krychle.........................................................................................................................58
4.2.1 Meze τ(OAB) na tlusté krychli ........................................................................................................59
4.2.2 Meze τ(OAS) na tlusté krychli.........................................................................................................59
4.2.3 Meze τ(AAB) na tlusté krychli ........................................................................................................60
4.2.4 Meze τ(AAS) na tlusté krychli.........................................................................................................60
4.3 Důkazy.................................................................................................................................................61
Důkaz 1. Počet vnějších linek mezi úrovní i a i + 1 v tlusté krychli..................................................61
Důkaz 2. Existence Hamiltonovské kružnice v tlusté krychli ............................................................62
Důkaz 3. Existence kostry z d vzájemně disjunktních podstromů .....................................................62
Důkaz 4. Komunikační práce při komunikaci OAS...........................................................................63
Důkaz 5. Dualita GC AOG a GC OAS ..............................................................................................63
Důkaz 6. Počet komunikačních kroků OAB na jednoportové tlusté krychli......................................63
Důkaz 7. Postačující podmínka pro dosažení τOAB na modelu SAF d, f = 1 ......................................64
Důkaz 8. Dvě hodnoty dolní meze τOAB na modelu SAF d (b)...........................................................64
Důkaz 9. Horní meze počtu kroků GC OAB u modelů SAF d (b).....................................................66
Důkaz 10. Počet kroků OAS (AAS) a OAB (AAB) na modelu C.......................................................66
Důkaz 11. Spodní mez počtu kroků GC OAS na modelu SAF NC d ..................................................66
Důkaz 12. Spodní mez počtu kroků GC OAS na modelu NC * (f = 1) ...............................................66
Důkaz 13. Dosažitelnost spodní meze počtu kroků GC AAB na modelu SAF NC d FD ....................67
Důkaz 14. Dosažitelnost spodní meze počtu kroků GC AAB na modelu SAF NC * FD f = 1............68
Důkaz 15. Dosažitelnost spodní meze počtu kroků GC AAB na modelu SAF C 1 FD.......................68
Důkaz 16. Horní meze počtu kroků τAAS
na modelu SAF NC 1 FD ....................................................69
Důkaz 17. Horní meze počtu kroků τAAS
na modelu SAF NC d FD ....................................................70
Důkaz 18. Počet kroků GC AAS na modelu SAF NC * FD ................................................................71
4.4 Grafy závislostí τx
a Cs na P a m .......................................................................................................71
4.4.1 Skupinová komunikace OAB...........................................................................................................71
4.4.2 Skupinová komunikace OAS...........................................................................................................74
4.4.3 Skupinová komunikace AAB...........................................................................................................77
8
4.4.4 Skupinová komunikace AAS...........................................................................................................77
4.5 Metodika a nástroj CARE.................................................................................................................80
4.5.1 Metodika (aneb obecný postup řešení) ............................................................................................80
4.5.2 Nástroj CARE ..................................................................................................................................80
4.5.3 Návrh komunikační architektury pro čtyřvrstvou umělou neuronovou síť......................................82
4.5.4 Zhodnocení ......................................................................................................................................83
4.6 Tlustá krychle s osmi procesory........................................................................................................83
4.6.1 Skupinové komunikace na osmiprocesorové SAF tlusté krychli.....................................................83
4.6.2 Skupinová komunikace OAB...........................................................................................................84
4.6.3 Skupinová komunikace OAS...........................................................................................................84
4.6.4 Skupinová komunikace AAB...........................................................................................................85
4.6.5 Skupinová komunikace AAS...........................................................................................................87
4.7 Shrnutí výsledků.................................................................................................................................89
5. PŘÍPADOVÁ STUDIE .....................................................................................93
5.1 Waveletová transformace ..................................................................................................................93
5.2 Paralelní 2D waveletová transformace.............................................................................................94
5.3 Predikce výkonnosti waveletové transformace................................................................................94
5.4 Zhodnocení..........................................................................................................................................98
6. ZÁVĚR.............................................................................................................99
6.1 Shrnutí.................................................................................................................................................99
6.2 Zhodnocení........................................................................................................................................100
6.3 Možná rozšíření práce......................................................................................................................100
LITERATURA..........................................................................................................101
1. Vlastní literatura...................................................................................................................................101
2. Literatura ostatních autorů .................................................................................................................101
SEZNAM NEJČASTĚJI POUŽÍVANÝCH ANGLICKÝCH ZKRATEK.....................107
SEZNAM NEJČASTĚJI POUŽÍVANÝCH SYMBOLŮ.............................................108
9
Seznam obrázků
Obrázek 1 Vnitřní struktura paralelního počítače ..........................................................................19
Obrázek 2 Schémata skupinových komunikací..............................................................................21
Obrázek 3 Komunikační zpoždění .................................................................................................23
Obrázek 4 Přepínání kanálů ...........................................................................................................23
Obrázek 5 Paketové přepínání........................................................................................................24
Obrázek 6 Červí přepínání a) celá cesta volná b) poslední část cesty je blokována po dva takty..24
Obrázek 7 Průřezové přepínání se zablokováním po dva kroky mezi C a D .................................25
Obrázek 8 Virtuální kanály v jednosměrné kružnici......................................................................26
Obrázek 9 Binomiální kostra (a) v jednoportové Q3 (b) ve výstupně všeportové Q3 ...................27
Obrázek 10 Dvoukrokový algoritmus dvojitého stromu ve všeportové 4D krychli WH...............28
Obrázek 11 Graf stavových přechodů v MESI protokolu..............................................................32
Obrázek 12 Graf stavových přechodů v Dragon protokolu............................................................33
Obrázek 13 Graf procesů víceprotokolového CC řadiče................................................................34
Obrázek 14 Závislost doby trvání 1000krát provedené bariéry na počtu procesorů a na kombinaci
protokolů pro proměnné Barcnt a Flag. (I/U znamená MESI (Invalidate) pro proměnnou
Barcnt a Dragon (Update) protokol pro proměnnou Flag)................................................37
Obrázek 15 Příklad konfigurace zřetězené procesorové farmy (5,2,3) ..........................................39
Obrázek 16 Zjednodušený model prvního stupně zřetězené procesorové farmy s pěti procesory.40
Obrázek 17 Zahlcení farmy při různé celkové výpočetní práci......................................................41
Obrázek 18 Závislost času na počtu procesorů pro poměr výpočetní práce úlohy 27 150 49 .......42
Obrázek 19 Závislost času na počtu procesorů při změně výpočetní práce úlohy.........................43
Obrázek 20 Závislost zrychlení na počtu procesorů při změně výpočetní náročnosti úlohy .........43
Obrázek 21 Porovnání sekvenčního a paralelního řešení principu Rozděl a panuj........................45
Obrázek 22 Příklady umístění procesů na procesory .....................................................................47
Obrázek 23 Umístění procesů na procesory – MP .........................................................................47
Obrázek 24 Umístění procesů na procesory – SM .........................................................................48
Obrázek 25 Srovnání MP a SM architektur o dvou nebo čtyřech procesorech..............................49
Obrázek 26 Příklady propojovacích sítí „tlusté krychle“...............................................................52
Obrázek 27 Souběžná komunikace z/do jednoho procesoru na tlusté krychli m = 2, d = 2, f = 1.54
Obrázek 28 Počty linek mezi jednotlivými úrovněmi, počty linek z uzlů .....................................61
Obrázek 29 Porovnání maximálních hodnot m pro dosažení horní nebo spodní meze rovné D....65
Obrázek 30 Grafické znázornění architektur (f, m, d) = (1, 2, 2) a (1, 2, 1) ..................................68
Obrázek 31 Horní mez počtu kroků GC OAB pro model f = 1, WH, 1, C, HD ............................72
Obrázek 32 Ceny směrovačů pro model f = 1, 1, HD ....................................................................72
Obrázek 33 Horní mez počtu kroků GC OAB pro model f = 1, SAF, d, NC, HD.........................73
Obrázek 34 Ceny směrovačů pro model f = 1, d, HD ....................................................................73
Obrázek 35 Horní mez počtu kroků GC OAB pro model f = 1, SAF, b, C, HD............................74
Obrázek 36 Horní mez počtu kroků GC OAS pro model f = 1, WH, 1, NC, HD..........................75
Obrázek 37 Horní mez počtu kroků GC OAS pro model f = 1, SAF, d, NC, HD .........................75
Obrázek 38 Horní mez počtu kroků GC OAS pro model f = 1, SAF, *, NC, HD .........................76
Obrázek 39 Ceny směrovačů pro model f = 1, *, HD ....................................................................76
Obrázek 40 Horní mez počtu kroků GC AAB pro model f = 1, SAF, d, NC, FD..........................77
Obrázek 41 Horní mez počtu kroků GC AAS pro model f = 1, SAF, 1, NC, FD..........................78
Obrázek 42 Horní mez počtu kroků GC AAS pro model f = 1, SAF, d, NC, FD..........................78
Obrázek 43 Horní mez počtu kroků GC AAS pro model f = m, SAF, d, NC, FD.........................79
Obrázek 44 Ceny směrovačů pro model f = m, d, FD....................................................................79
Obrázek 45 List „Zadání+Výsledky“.............................................................................................81
Obrázek 46 Umělá neuronová síť a umístění jejích neuronů na procesory....................................82
Obrázek 47 Schématicky znázorněná architektura tlusté krychle s osmi procesory......................83
Obrázek 48 Komunikace OAB na tlusté krychli NC HD...............................................................84
Obrázek 49 Komunikace OAS na tlusté krychli NC HD...............................................................85
Obrázek 50 Komunikace OAS na tlusté krychli C HD..................................................................85
10
Obrázek 51 Komunikace AAB na modelu NC b HD – OAB z procesorů sedm a osm.................86
Obrázek 52 Komunikace AAB na modelu NC d FD .....................................................................86
Obrázek 53 Komunikace AAB na modelech C..............................................................................87
Obrázek 54 Komunikace AAS na modelech NC FD – OAS z procesoru jedna ............................88
Obrázek 55 Komunikace AAS na modelu C 1 FD.........................................................................88
Obrázek 56 Komunikace AAS na modelu C d FD.........................................................................88
Obrázek 57 Závislost zrychlení na délce vstupu bez překrytí doby komunikace (loi=4, noc=4) ..96
Obrázek 58 Závislost zrychlení na délce vstupu s překrytím doby komunikace (loi=4, noc=4) ...97
Seznam tabulek
Tabulka 1 Komunikační vlastnosti několika propojovaích sítí pro osm procesorů .......................19
Tabulka 2 Charakteristika skupinových komunikací .....................................................................21
Tabulka 3 Spodní meze počtu kroků τx a komunikační práce CW na krychli dimenze d..............27
Tabulka 4 Čas zpracování v μs pro dva, čtyři nebo osm procesorů, daný počet opakování (1.sloupec) a
danou kombinaci invalidate (I) a update (U) protokolu použitého pro proměnnou BarCnt/Flag
(I/I, I/U,U/I,U/U). Minimální hodnoty jsou zvýrazněny...................................................36
Tabulka 5 Výpočetní a komunikační vytížení tří stupňové linky při výpočtu desáté mocniny .....39
Tabulka 6 Simulace lineární farmy na třech různě náročných úlohách .........................................42
Tabulka 7 Zrychlení a efektivita několika konfigurací zřetězené procesorové farmy a klasické farmy
pro segmenty 27, 150 a 49 časových jednotek; Pi (E1,E2,E3) – počet procesorů (efektivita)
v jednotlivých stupních linky, E – celková efektivita, S – celkové zrychlení; PF, EF, SF – počet
procesorů, celková efektivita, celkové zrychlení v klasické farmě...................................42
Tabulka 8 Závislost zrychlení a efektivita paralelní rekurzivní FFT na velikosti problému k.......49
Tabulka 9 Počet portů na jeden procesor .......................................................................................55
Tabulka 10 Ceny směrovačů v závislosti na použitém modelu......................................................56
Tabulka 11 Dimenze d' klasické krychle s vyšší cenou Cs než cena u tlusté krychle se stejným počtem
procesorů...........................................................................................................................58
Tabulka 12 Spodní meze počtu kroků τAAB na modelech NC 1(b).................................................60
Tabulka 13 Disjunktní podstromy pro krychli s jedním a dvěma procesory v uzlu.......................63
Tabulka 14 Zadávání parametrů modelů........................................................................................80
Tabulka 15 Výsledné vlastnosti parametrů ....................................................................................81
Tabulka 16 Cena směrovačů a horní meze počtu kroků τOAB+AAB+AOG pro čtyřvrstvou ANN ........83
Tabulka 17 Souvislost barvy a typu linky s krokem, ve kterém se komunikace provede..............83
Tabulka 18 Vnoření kroků OAB do jedenácti kroků AAB............................................................86
Tabulka 19 Schéma komunikace AAB NC d FD...........................................................................86
Tabulka 20 Ověřené výsledky modelů tlusté krychle ....................................................................89
Tabulka 21 Výsledky týkající se skupinových komunikací na tlusté krychle................................89
Tabulka 22 τGC
na tlusté SAF krychli NC m=2, d=2, f=1 (FC) a SAF krychli NC (C) .................90
Tabulka 23 τGC
na tlusté SAF krychli C m=2, d=2, f=1 (FC) a SAF krychli C (C).......................90
Tabulka 24 Délky zpráv tlusté krychle C SAF s parametry m=2, d=2, f=1 (P=8).........................91
Tabulka 25 Závislost zrychlení na délce vstupu bez překrytí doby komunikace (loi=4, noc=4)...96
Tabulka 26 Nejlevnější modely v závislosti na dimenzi použité krychle ......................................97
11
1. Úvod
1.1 Motivace
V posledních letech se aplikačně specifické procesory, architektury a systémy stávají rychle
rostoucím segmentem trhu výpočetní techniky. Jsou oblastí velmi aktivního výzkumu a vývoje, jak v
akademické sféře, tak v průmyslu. Dovolují totiž v mnoha aplikačních oblastech přizpůsobení návrhu
zákazníkovi, jeho požadavkům na výkonnost, cenu a spotřebu energie. Takové systémy jsou
umísťovány dokonce na jeden čip (SoC, System on Chip), vestavovány do jiných zařízení (od běžných
spotřebičů, většiny tiskáren, automobilů, mobilů a příručních zařízení až po video hry a doplňky TV
přijímačů), případně rekonfigurovány (Field Programmable SoC) s možností otevření kódu
programovatelné logiky vývojářům (GOSPL, [GOS05]).
Aplikačně specifické systémy vykazují velký rozsah výpočetních výkonů a primární cíl je splnit
výkonnostní požadavky s minimální cenou, často i s minimálním příkonem. Tradiční mikroprocesory
a signálové procesory nemohou nejnovější požadavky v tomto směru splnit. Podobná situace je i u
obvodů ASIC, které nemají vlastnosti pro více funkčnost. Možným řešením jsou paralelní a
distribuované zpracování a rekonfigurace. V mnoha případech je lepší použít několik malých
výpočetních jednotek spíše než jednu velkou složitou CPU. V současnosti je již možné na jeden čip
umístit větší svazky CPU (MSoC, multiprocessor SoC) s velkými lokálními pamětmi a vysokou
propustností propojovacích linek (~1Gbyte/s) [JAW05].
S přenosem multiprocesorových systému na čip dochází k úpravám a inovacím technik známých z
tradičních paralelních systémů. Pro určité typy zpracování (např. zpracování toků dat) se začínají
objevovat jisté šablony architektur, jinými slovy generické architektury modifikovatelné pro konkrétní
aplikace.
Předložená práce nemá v žádném případě ambice zmapovat toto nesmírně široké pole; jejím
námětem je modelování a analýza jen několika vybraných generických architektur aplikačně
specifických multiprocesorových systémů na čipu. Cílem byl výkonnostně orientovaný návrh,
případně volba cenově zajímavých propojení procesorů. Při tom vznikly i pomocné nástroje a techniky
usnadňující vývoj konkrétních tříd systémů, použitelné i v širším kontextu.
1.2 Vývoj technologií
Prvním důležitým technologickým krokem byl vývoj ASIC (Application Specific Integrated
Circuit). ASIC umožňuje zrychlení určité konkrétní funkce či funkcí systému a je vhodný především
pro mnohokráte se opakující výpočet. Problémem je nesnadná modifikace a cena výroby při malém
počtu kusů, kdy převažuje cena masky. Proto se ASIC používá především pro značně rozšířené,
výpočetně více náročné a hojné používané funkce, např. komprimace videa [DJR01], [REJ02].
Alternativním a levnějším řešením aplikačně specifických systémů je použít mnohem pružnější a
snadněji modifikovatelnou architekturu, program běžící na univerzálním nebo signálovém procesoru
(DSP – Digital Signal Processor) procesoru, přičemž výpočetně náročné funkce vedoucí k časové tísni
jsou odsunuty do programovatelného pole FPGA [FUC97]. Daří se integrovat analogové, digitální či
kombinované systémy vedle sebe [HVP02].
Systémy vzniklé z několika procesorů pro obecné použití od firem PACT [XPP05] nebo
QuickSilver Technologies [QST05] jsou především určeny pro zpracování obrazu. Protože obvykle
zpracování multimédií znamená zpracování toku dat v reálném čase, je ladění výkonnosti pro takové
paralelní aplikace důležitou a aktivní výzkumnou oblastí.
Posledním trendem se stávají adaptivní a rekonfigurovatelné architektury [XPP05], [RAP05], které,
zdá se, umožňují nejlépe splnit všechny požadavky. Využití nacházejí především pro zpracování
signálů. V dnešní době, kdy je vyžadovaná výkonnost na úrovni výkonnosti ASIC a množství
standardů roste velice rychle (např. ze světa mobilních telekomunikací: CDMA, GSM, EDGE, GPRS,
12
UMTS), přičemž každý standard používá sadu více méně specializovaných operací, jsou
rekonfigurovatelné systémy odpovědí na související problémy. Odpadá nákladný návrh
jednoúčelových ASIC obvodů. Také při inovaci standardů je inovace (tj. rekonfigurace) obvodu velmi
rychlá a umožňuje zavádět výrobky s nejnovějšími verzemi standardů, popř. novými technologiemi.
Rekonfigurovatelný procesor se může použít samostatně nebo ve skupině procesorů jako
programovatelný procesor výpočetně intenzivních operací. Oproti architekturám vykonávajících
sekvenci instrukcí, se u rekonfigurovatelných systémů vykonává sekvence konfigurací. Na jedné
konfiguraci se vykoná sekvence instrukcí a v průběhu výpočtu se mohou připravovat nutné kroky pro
další rekonfiguraci, přitom právě nevyužívané oblasti čipu se mohou rekonfigurovat dopředu. Další
pokročilé využití je multitasking, kdy lze vyměňovat úlohu běžící na obecném procesoru s tou, která
běží na rekonfigurovatelném procesoru.
1.3 Cíle disertační práce
Disertační práce je z názvu zaměřena na aplikačně specifické multiprocesorové systémy. Tradičně
jsou multiprocesorové systémy děleny do dvou tříd – se sdílenou a distribuovanou pamětí a rovněž
formulace cílů se týká obou těchto tříd.
1. Architektury se sdílenou pamětí. Klasický multiprocesor se sdílenou pamětí a sběrnicí a s
koherentními vyrovnávacími pamětmi je výzkumně téměř uzavřen, ale při přenosu na čip a při
tlaku na výkonnost může být u specifických aplikací výkonnost ještě zlepšena. Cílem bylo
zjistit v tomto směru možnosti (rezervy) řadiče koherence.
2. Architektury s distribuovanou pamětí. Zde byla na základě známých šablon architektur (farmy
a zřetězené linky) vytvořen model kombinované architektury „zřetězené farmy“. Cílem byl
optimální návrh této struktury s ohledem na výkonnost a to s použitím simulace.
3. Algoritmické šablony – skeletony. Podobně jako architektury multiprocesorů bývají
odvozovány z generických typů (šablon), i často se vyskytující algoritmy mají podobnou
generickou formu. Před použitím takové algoritmické šablony (skeletonu) zajímá uživatele
nejčastěji výkonnost, resp. dosažitelné zrychlení paralelního zpracování. Cílem bylo
namodelovat typický, často se vyskytující algoritmický skeleton „Rozděl a panuj“ s možností
predikce výkonnosti v architekturách s distribuovanou i sdílenou pamětí.
4. Generická komunikační architektura. Otázka propojení procesorů a komunikace nabývá na
důležitosti, protože velmi významně ovlivnuje výkonnost paralelního systému. Vzhledem k
velkému množství topologií propojovacích sítí, přepínacích technik a dalších parametrů
komunikačních architektur bylo cílem zjistit pouze v případě jedné konkrétní topologie tlusté
krychle možné úspory na HW směrovačů a případný dopad na výkonnost komunikačních
algoritmů ve srovnání s topologií klasické krychle.
1.4 Organizace disertační práce
Práce začíná přehledem důležitých pojmů vztahující se k paralelnímu zpracování (kapitola 2.1) a
ke komunikačním architekturám (kapitola 2.2). Následují poznatky o skupinových komunikacích na
krychli (kapitola 2.3) a to jak s paketovým přepínáním, tak i s červím přepínáním.
Další kapitola je věnována ladění výkonnosti generických a rekonfigurovatelných architektur
(kapitola 3). Zabýváme se zde možnostmi modifikovaného SMP s víceprotokolovým řadičem
vyrovnávací paměti. (kapitola 3.1) a dále optimálním návrhem nové generické architektury – zřetězené
procesorové farmy (kapitola 3.2). Také zde bude modelován skeleton rozděl a panuj pomocí
statických komunikujících procesů Transimu (kapitola 3.3).
Následuje kapitola o generické komunikační architektuře typu tlusté krychle (kapitola 4). Přes
definice použitých pojmů a základní vlastnosti architektury tlusté krychle se dostaneme k vlastním
modelům jednotlivých skupinových komunikací a vztahům mezi nimi (kapitola 4.2). Důkazy vět jsou
pro přehlednost uvedeny zvlášť v kapitole 4.3. Kapitola 4.4 představuje výsledky analýzy časové
složitosti skupinových komunikací a ceny různých konfigurací architektury, tabulky a grafy ceny
13
řešení i dosažitelné počty kroků pro jednotlivé skupinové komunikace. V kapitole 4.5 je popsána
metodika a nástroj CARE na příkladu čtyřvrstvé umělé neuronové sítě. Kapitola 4.6 ukazuje příklady
komunikací pro konkrétní počet procesorů, (dva procesory v uzlu, osm procesorů celkem) a to včetně
popisu komunikace v jednotlivých krocích.
Na případové studii, která analyzuje výkonnost waveletové transformace (kapitola 5), je tentokráte
ukázána neskupinová komunikace na tlusté krychli, včetně úvah volby její konfigurace. V závěru jsou
uvedeny dosažené výsledky a směr budoucího výzkumu.
14
15
2. Současný stav problematiky
2.1 Paralelní zpracování
2.1.1 Základní pojmy
Teorie složitosti paralelních algoritmů pracuje s abstraktními modely paralelních počítačů (PRAM,
BSP aj.) a s asymptotickými odhady zrychlení algoritmů (počet procesorů, velikost řešeného problému
rostou nade všechny meze). Nebezpečí asymptotických odhadů (např. ))(( ngΟ , ))(( ngΘ ) je v tom,
že obsahují skryté konstanty a že platí až od jisté počáteční hodnoty. V dalším se omezíme jen na
základní pojmy potřebné dále.
Časová složitost sekvenčního algoritmu, ST(n), je měřena čítáním instrukcí, výpočetních kroků či
operací. Spodní mez časové složitosti, SL(n), nám udává nejhorší časovou složitost nejlepšího možného
sekvenčního algoritmu. Někdy tuto spodní mez dokážeme odhadnout z počtu nutných načtení
vstupních dat, označujeme ji pak jako triviální spodní mez. Horní mez časové složitosti řešení, SU(n),
je nejhorší časová složitost nejrychlejšího známého sekvenčního algoritmu. Pokud spodní mez daného
problému se rovná horní, pak známe optimální algoritmus pro řešený problém, nebo si to aspoň
myslíme, pokud skutečná spodní mez je nižší. Pokud se meze nerovnají, máme nejlepší známý, ale
zatím neoptimální algoritmus. V tomto případě neznáme nejlepší možný algoritmus anebo jsme
chybně určili spodní mez algoritmu (je příliš nízká).
Příkladem algoritmu, pro který neznáme optimální algoritmus je násobení čtvercových n×n matic.
Triviální spodní mez je dána množstvím dat – n2
. Jednoduchá metoda vyžaduje n3
operací. Složitost
Strassenova algoritmu [STV69] či algoritmu Winograda [CVS90] je někde mezi těmito dvěma
milníky. Nicméně složitost těchto algoritmů je značná a zahrnuje vysoké skryté konstanty, které
omezují jejich použití.
V porovnání se sekvenčními algoritmy je situace u paralelních algoritmů složitější o závislost na
počtu procesorů – P. Pro ujasnění terminologie zde uvedeme základní pojmy, jejich značení a vztahy.
Práce paralelního algoritmu W(n, P) odpovídá počtu provedených operací.
),(21),( PnTPPPPnW +++= L , kde Pi je počet procesorů pracujících ve výpočetním kroku
{ }),(,,1 PnTi K∈ paralelního algoritmu.
Zrychlení paralelního algoritmu, S(n,P), ),(/)(),( PnTnSUPnS = . Je zřejmé, že PPnS ≤),( .
Efektivnost paralelního algoritmu, 1/),(),( ≤= PPnSPnE
Škálovatelnost paralelního algoritmu, bez nároku na přesnou definici, je schopnost algoritmu
zachovat si rozumnou efektivnost při měnícím se počtu procesorů nebo velikosti řešeného problému.
Amdahlův zákon omezuje zrychlení v případě, že kód aplikace je ideálně paralelizovatelný až na
jistou část fs, která se musí zpracovávat sekvenčně: ( )P
f
s
s
fPnS
−
+≤
1
/1),( .
Absolutně minimální paralelní čas Tmin je minimum funkce T(n, P). Tato funkce nemá minimum
pro ∞→P , ale pro nějaké minTP . Pro minTP platí, že nárůst komunikační režie způsobený přidáním
dalších procesorů je větší než nárůst práce, kterou jsou spolu schopny vykonat za čas Tmin.
Cílem návrhu paralelního algoritmu je přiblížit se lineárnímu zrychlení rovnému počtu procesorů.
V praxi se sice dosahuje zrychlení )(),( PPnS Θ= pro některé algoritmy, ale obvykle jen pro danou
komunikační architekturu a nebo pro určitý interval počtu procesorů.
Občas se v praxi setkáváme s pojmem „superlineární“ zrychlení, jenž nejčastěji dosáhneme díky
některé specifické vlastnosti paralelní architektury. Např. algoritmus má superlineární zrychlení
dosažené tím, že daný problém se vejde do daného typu paměti na paralelním počítači, ale na
16
jednoprocesorovém stroji do stejného typu paměti nikoliv. Ať už se jedná o vyrovnávací paměť či
hlavní paměť.
2.1.2 Režie paralelního zpracování
Zdroje degradace výkonnosti paralelních programů jsou různorodé, nejčastěji se jedná o:
• Nemožnost rovnoměrně rozdělit práci mezi procesory na začátku úlohy v případě
statického rozdělování práce, nebo nedokonalé vyvažování výpočetní zátěže mezi
procesory v případě dynamického rozdělování práce. Sem patří i nedostatek práce pro daný
počet procesorů, speciálně i případ Amdahlova modelu zátěže.
• Režie synchronizace/komunikace. Doba komunikace představuje často největší část režie
paralelního zpracování. Komunikační režie závisí na četnosti a velikosti zpráv. Také
nutnost synchronizovat procesy zavádí časovou režii rostoucí výrazně s počtem procesů.
• Režie paralelizace – oproti sekvenčnímu řešení problému jsou u paralelního řešení někdy
nutné přídavné výpočty související např. s rozdělením dat.
Způsoby jak snížit režii paralelního zpracování jsou zejména:
• Zmenšení komunikační režie, především softwarové. Efektivní přenosová rychlost je
výrazně menší než maximální a to především z důvodu SW přípravy komunikace. Pokud
snížíme jen HW režii (obvykle zlomky mikrosekundy), nemá to praktický význam, dokud
nesnížíme SW režii trvající desítky až stovky mikrosekund.
• Rychlejší, širší komunikační linky, rychlejší protokoly, popř. použití jiné propojovací sítě
architektury, což ale také má vliv na cenu.
• U mnoha výpočtů je důležitá nejen volba přiměřeně velké zrnitosti úloh, ale také
(celočíselná) dělitelnost počtu úloh nebo velikosti datové množiny úlohy počtem
procesorů.
• Překrývání komunikačních a výpočetních operací, tj. jestliže je to možné, zahájit
komunikaci dříve než jsou skutečná data zapotřebí pro výpočet a v jejím průběhu provádět
výpočet, který je na ní datově nezávislý.
Na různých místech této práce byly použity především poslední tři metody.
2.1.3 Jazyky pro simulaci a modelování paralelních systémů
Přibližné, ale rychlé simulace se používají na odhad vlastností výsledného produktu, především
odhad výkonnosti. V jednodušších případech stačí odhad dle různých ad hoc heuristik a výpočtů,
pokud je nutná větší přesnost, nastupuje analytický model. Predikce pak pomůže s rychlejším
rozhodováním mezi mnoha možnými variantami návrhu.
Pro rychlý a ekonomický, rozumí se konkurenceschopný, vývoj je nutný neustálý pokrok v oblasti
testování a simulace. Z nejnovějších prací můžeme zmínit práce francouzské laboratoře TIMA. Je
možné:
• spojení dvou úrovní abstrakce (úroveň zpráv a ovladačů) v jedné simulaci s možností
postupného snižování úrovně abstrakce u komunikačních kanálů [NYJ01]
• spojení simulace HW a SW (OS) do jediné, přesnost je zajištěna použitím originálního kódu
OS (95% veškerého kódu) [YNG02], [BYG02]
• spojení simulace systému složeného ze tří odlišných částí, každá část je implementovaná
v jiném simulačním jazyce, elektromechanická (Matlab), optická (C++) a řídicí (SystemC)
[NMK02]
Jednotlivé části [CBG02] systému se zapouzdřují pomocí „wraperů“, což pak umožňuje lehce
otestovat různé typy stejné komponenty (např. dvouportová SDRAM paměť a jednoportová paměť
SRAM [GMR02] nebo lze simulovat současně dvě různé komponenty (např. paměť a CPU [GLM02]),
17
přitom jsou komponenty automaticky generovány, což vše usnadňuje validaci návrhu a vlastní
simulaci [NYB02].
Proto, aby tyto modely splnily svůj účel, musí se snadno generovat a být přitom dostatečně přesné
a rychlé. Nejen z těchto důvodů existuje velké množství modelovacích či simulačních prostředí čí
jazyků. Například srovnání hodnot získaných ze simulace v Transimu a běhu programu v OpenMP
[LEO02], [OMP05] lze nalézt v [SDM02], rozdíl získaných naměřených časů výpočtu FFT je nejvýše
10–15 %.
Transim [HAR99] – nástroj použitý v další části práce je primárně určen na modelování, simulaci a
prototypování programů se zasíláním zpráv. Vstupem je soubor se třemi sekcemi, které definují
architekturu, procesy i umístění procesů na procesory. Jeho výhodou je přizpůsobivost na požadavky
přesnosti modelu, umožňuje velice rychle navrhnout model a v případě potřeby ho zpřesnit. Doba
komunikace je simulována včetně možného překrytí s výpočtem. Doba výpočtu se simuluje odděleně
od samotného výpočtu, výpočtové operace nepředstavují samy o sobě žádný výpočtový čas a je tak
možné simulovat HW operace. Největší nevýhodou je omezení velikosti modelu, který je současná
implementace schopna pojmout. Architektury se sdílenou pamětí a sběrnicí je možné s omezenou
přesností simulovat, i když simulátor k tomuto účelu primárně určen nebyl. Největší výhodou je, že
výstupem jsou přímo hodnoty dosažené efektivity, zrychlení a času běhu dané aplikace. Propojení
komunikačními kanály je dáno implicitně z programu.
VHDL [VHD05] – Moderní způsoby realizace číslicových systémů si vynutily způsob návrhu,
který je nezávislý na realizační technice. To bylo hlavním důvodem vzniku jazyka pro popis obvodů
HDL. VHDL umožňuje odsunout volbu implementační technologie (PLA, PLD, FPGA) až na samý
závěr návrhu. Největší výhodou jazyka VHDL je jeho přirozená schopnost dekompozice problému.
Celý obvod se navrhne pomocí popisu chování, pak se jednotlivé funkce dále zpřesňují pomocí
knihovny funkcí, které jsou znovu popisem chováním, ale tentokrát už realističtěji vzhledem ke
konečné implementaci. Již v této podobě, kdy úmyslně není specifikováno zapojení obvodu, je možné
chování ve všech logických souvislostech simulovat a ověřit. Při tvorbě komplexních systémů je
důležité, aby navržené obvody mohly být testovány. K tomuto účelu obsahuje VHDL prostředky,
které umožňují návrh způsobu testování. Jazyk je velmi užitečný při hledání chyb, kterých se návrhář
dopustil během návrhu a v konečné fázi umožňuje syntetizovat úspěšný návrh do zvolené architektury.
SystemC [SYC05] – nyní častěji používaný jazyk pro simulace (viz např. [NYJ01], [YNG02],
[BYG02]), umožňuje tvorbu přesných a podrobných modelů. Model je možné postupně zpřesňovat
díky použitému objektovému přístupu. SystemC byl navržen jako náhrada za VHDL především proto,
aby bylo možné jak SW tak HW popsat v jednom jazyce (C). Co se týká možností, je na tom podobně
jako VHDL, ale existuje zatím méně nástrojů, znalostí a především zkušených návrhářů v tomto
jazyce.
Paralaxis [PAR05] – je jazyk typu Pascal/Modula. Byl spíše vyvinut pro datově paralelní
algoritmy, kam patří úlohy z oblasti grafiky. Obdobně se definuje uspořádání procesorů spolu s jejich
propojením pojmenovanými komunikačními kanály a procesy na nich umístěné. Návrh je velice
rychlý a relativně jednoduchý, simulátor bohužel neinformuje o rychlosti či výkonnosti daného
programu.
XDS [XPP05] – je příklad komerčního vývojového nástroje, konkrétně pro rekonfigurovatelnou
architekturu XPP. Jde o simulační a ladicí nástroj, jenž umožňuje krokování po jednotlivých taktech.
2.1.4 Profilace a ladění výkonnosti
Profilace je množina metod určená k analýze kódu programu na vysoké úrovni abstrakce za účelem
zlepšení výkonnosti. Přeložený kód je již optimalizovaný dle možností překladače. Hledá se způsob
jak upravit algoritmus tak, aby běžel úsporněji (s menšími paměťovými nebo časovými nároky).
Profilace může dát odpověď na otázky:
1. Co můžeme změnit v programu, aby se zlepšila jeho výkonnost?
2. Jaké prostředky program používá a v jakém množství?
18
3. Které úseky nejvíce používají daný prostředek?
4. V jakých případech se tyto úseky provádějí?
Profilace umožňuje zjistit místa, která spotřebovávají nejvíce strojového času nebo jež jsou
komunikačně či paměťově náročná apod. Program „profiler“ si ukládá statistiky o spuštěném
programu a po překročení nastavených hodnot se detekují úzká místa (např. počet provedení daného
instrukčního řádku či bloku příkazů). Některé práce využívají podobné metody k určení optimálního
rozdělení procesů na procesory, např. v [BES98] se sleduje využití CPU, paměti RAM, DAC (digital-
to-analog converters), dále čas běhu, cena implementace, plocha čipu(ů), to vše u procesorů se
sdílenou pamětí. Dalším možným použitím je zjištění, že některé části úlohy se vyplatí provést k tomu
vyhrazeném obvodě, protože se provádějí příliš často a stráví se s nimi nezanedbatelné množství času,
např. úloha paralelní MergeSort, kdy vlastní řazení je provedeno v přídavném HW [LLP03].
Laditelný algoritmus je vlastně skupina algoritmů TtA ∈)( indexovaných množinou ladicích
parametrů T, obsahující ladicí podmínky. Z podmínky ladění (původní i vyladěný algoritmus musí mít
stejný výstup) vyplývá, že: TttxxAxA tt ∈∀∀= 1010 ,,),()( , kde t0, t1 jsou ladicí parametry a x je
vstup, )(),( 10 xAxA tt výstupy.
Problém ladění výkonnosti je najít optimální hodnoty ladicích parametrů pro daný algoritmus, tzn.
najít t0 takové, že: TtxxATimexATime tt ∈∀∀≤ ,)),(())(( 0 , kde )(( xATime t je čas strávený
spuštěním t-tého algoritmu At se vstupem x. Naneštěstí řešení této rovnice nemusí existovat, často
řešení rovnice t0 závisí na vstupu x. Proto hledáme řešení funkce t0(x) takové, že:
TtxxATimexATime txt ∈∀∀≤ ,)),(())(( )(0 .
2.2 Komunikační architektury
Komunikace mezi procesory při paralelním řešení úlohy snižuje dosažitelné zrychlení oproti
sekvenčnímu řešení, kde tato komunikace odpadá. Na komunikaci má vliv komunikační architektura
(topologie sítě, přepínací techniky, vlastnosti linek, atd.) a směrovací strategie (algoritmus) [CHT96].
Propojení hraje důležitou roli pro určení celkové výkonnosti komunikace a tím i celého systému.
V plně propojené síti je každý procesor propojen se zbývajícími procesory linkou. Což znamená, že
v síti s P procesory má každý procesor P – 1 linek. Pro větší počet procesorů není plné propojení
ekonomické a je nutné použít řídké propojení, kdy některé prvky spolu nejsou přímo propojeny. Doba
komunikace je pak delší, je součtem času potřebného pro přenos přes použité linky. Obecně existuje
několik použitelných cest a výběr jedné z těchto cest je úkolem směrovacích algoritmů.
Směrovací algoritmy můžeme kromě jiného dělit na necitlivé a adaptivní. Zatímco necitlivé
algoritmy vybírají cestu bez ohledu na momentální stav sítě, adaptivní algoritmy informaci o stavu sítě
využívají. Dále se budeme zabývat jen podmnožinou necitlivých algoritmů, které volí vždy stejnou
trasu od zdroje k cíli – deterministické algoritmy.
2.2.1 Parametry propojovacích sítí
Parametry propojovacích sítí:
• Počet portů na směrovač – cena směrovače se zvyšuje kvadraticky v závislosti na tomto
parametru.
• Počet směrovačů – cena architektury se zvyšuje lineárně v závislosti na tomto parametru.
• Průměr sítě D – maximální počet kroků komunikace, při kterém je libovolný uzel
dosažitelný z libovolného jiného uzlu.
• Bisekční šířka b – množství linek, jejichž přerušením by se komunikační architektura
rozdělila na dvě přibližně stejně velké části.
19
Tabulka 1 Komunikační vlastnosti několika propojovaích sítí pro osm procesorů
b D
Počet
směrovačů
Počet portů na
směrovač
Plné propojení 7 1 8 8 + 8
Omega 1 - 12 2 + 2
Krychle 3 3 8 4 + 4
Tlustá krychle 2 2 4 4 + 4
Octagon 3 2 8 4 + 4
AMP 3 2 8 5 + 5
Kružnice 2 4 8 3 + 3
Tabulka 1 [DKD03] udává parametry některých propojovacích sítí pro jednotný počet procesorů
(osm). Na výkonnost programů spuštěných na paralelních strojích mají vliv parametry propojovací
sítě. Žádoucí je:
• Malý a konstantní stupeň uzlu – omezujeme se na malý počet bran směrovače z důvodu
jejich ceny, s rostoucím počtem komunikačních bran roste cena směrovače kvadraticky.
• Malý průměr sítě a malá průměrná vzdálenost uzlů je důležitá především u komunikace
citlivé na vzdálenost, kdy teprve celá zpráva postupuje o uzel dále.
• Symetrická propojovací síť umožní zjednodušení komunikačních algoritmů. Návrh
komunikace, a to především skupinové s více zdroji nebo cíli, se výrazně zjednoduší,
protože algoritmus pro jednotlivé uzly může být identický.
• Škálovatelnost komunikační sítě. Je-li daná komunikační architektura definována pro
jakýkoliv počet uzlů, řekneme, že je inkrementálně škálovatelná, a v opačném případě je
částečně škálovatelná.
• Velká bisekční šířka. Bisekční šířka je množství linek, jejichž přerušením by se
komunikační architektura rozdělila na dvě přibližně stejně velké části. Velká bisekční šířka
umožňuje efektivní implementaci skupinových komunikací všichni všem.
• Vnořitelnost daného grafu do jiného. Komunikační graf paralelního algoritmu je třeba
efektivně vnořit do grafu sítě.
Obrázek 1 Vnitřní struktura paralelního počítače
křížový přepínač
vnější
výstupní
linky
vnější
vstupní
linky
vnitřní
vstupní linky
vnitřní výstupní
linky
procesor lokální paměťjiné funkční
jednotky
směrovač
jednotka pro směrování
a řešení kom. konfliktů
20
2.2.2 Architektura výpočetního uzlu
Paralelní počítač se z našeho pohledu skládá ze standardního počítače rozšířeného o část
specializovanou na komunikaci, směrovač. Směrovač se stará o vyřízení požadavků na komunikaci od
přilehlého počítače, doručení zpráv k přilehlému počítači a také, bez ovlivnění výpočtu prováděného
přilehlým procesorem, vyřizuje požadavky od sousedních směrovačů pro jiné sousední směrovače.
Směrovač se skládá z křížového přepínače, jednotky pro směrování a řešení komunikačních
konfliktů a několika vstupních a výstupních, vnějších a vnitřních linek, viz obrázek 1.
Linka (port) obsahuje vyrovnávací paměti, fronty, a linkové řadiče, přes které je přepínač propojen
na komunikační medium se sousedním směrovačem resp. s procesorem.
Vnitřní linky slouží pro spojení přepínače s procesorem.
2.2.2.1 Počet současně použitelných komunikujících portů
Výkonnost skupinové komunikace je značně ovlivněna modelem výpočetního uzlu. Podle počtu
paralelně použitelných vnitřních kanálů rozlišujeme jednoportový, k-portový a všeportový procesor.
Dle počtu paralelně použitelných vnějších kanálů rozlišujeme jednoportový a všeportový směrovač.
Kombinací těchto dvou parametrů získáme tyto modely:
• V jednoportovém modelu má procesor k dispozici pouze vstupní a výstupní kanál, a proto
je v každém kroku schopen do sítě vložit jen jednu zprávu a jednu zprávu ze sítě převzít.
Tento model je nejčastější a snadno realizovatelný.
• V k-portovém modelu může procesor vložit či převzít právě k zpráv.
• Ve výstupně všeportovém modelu je procesor jednoportový a směrovač všeportový. Tedy
procesor může vyslat jednu zprávu, ale může ji vyslat na všechny porty směrovače a/nebo
může přijmout jednu zprávu v jednom kroku.
• Ve všeportovém modelu je počet vnitřních kanálů roven počtu vnějších kanálů směrovače
a tak procesor dokáže plně zaměstnat všechny porty směrovače.
2.2.2.2 Typ provozu na linkách
Pro skupinové komunikace, ve kterých každý procesor přijímá i vysílá (AAS, AAB) nebo alespoň
jeden přepínač přijímá i vysílá po stejné lince, je důležitá volba režimu typu linky. Linka může být
jednosměrná, simplexní, která umožňuje posílání dat jen jedním předem daným směrem, nebo
obousměrná. Obousměrné linky můžeme rozdělit na ty, které umožňují současné vysílání i příjem
(plně duplexní), a na ty, které to neumožňují (poloduplexní).
2.2.2.3 Možnosti manipulace s pakety – kombinující a nekombinující model
V případě skupinových komunikací, které používají více různých zpráv, má vliv na dobu
komunikace možnost (C – combining model) či nemožnost (NC – non-combining model) manipulace
s pakety v uzlech (sloučení zpráv přijatých v předchozím kroku do jedné větší nebo naopak, z větší
zprávy vyjmout část, která se jednou komunikační operací pošle dál). U nekombinujícího modelu jsou
směrovače schopny zprávy pouze předat sousednímu uzlu či domácímu procesoru. Pokud se
v komunikaci vyskytuje jen jediná zpráva (OAB, multicast), schopnost kombinování se nevyužije.
2.2.3 Skupinové a párové komunikace
Komunikace mohou být skupinové nebo párové (point-to-point). Pro účely této práce považujeme
za skupinovou komunikaci takovou, která se týká všech procesorů. Nezabývám se např. multicastem,
který je předmětem prací [HOZ97], [MXE94], [PSK99] nebo [PVA97]. Na efektivitu řešení mají vliv i
párové komunikace, ale jejich ladění je více svázáno s danou konkrétní úlohou. Omezení množství
komunikace se stává rozhodujícím pro výslednou efektivitu a škálovatelnost úlohy. Pokud již jsme
dosáhli, nebo si to aspoň myslíme, minimálního množství skupinových komunikací změnou algoritmu
21
či synchronizace, tak můžeme zvolit architekturu, na které danou úlohu spustíme. Pak nastupuje
klasické rozhodování cena versus výkon.
Dle způsobu komunikace, především dle množství různých/stejných zpráv a dle množství
současně vysílajících/přijímajících procesorů rozlišujeme tyto skupinové komunikace (také viz tabulka
2 a obrázek 2):
• OAB – One to All Broadcast – jeden procesor vysílá všem ostatním procesorům stejnou
zprávu, která se ve směrovačích, kterými prochází, může rozhlašovat do více směrů.
• OAS – One to All Scatter – jeden procesor vysílá všem ostatním procesorům různou
zprávu.
• AOG – All to One Gather – každý procesor (kromě jednoho) vysílá jednomu procesoru
různou zprávu.
• AAB – All to All Broadcast – každý procesor vysílá všem ostatním procesorům stejnou
zprávu, která se ve směrovačích, kterými prochází, může rozhlašovat do více směrů.
• AAS – All to All Scatter – každý procesor vysílá všem ostatním procesorům různou zprávu.
• AOR – All to One Reduce – každý procesor (kromě jednoho) vysílá jednomu procesoru
různou zprávu, která se ve směrovačích, kterými prochází, může redukovat s jinými
zprávami, které jsou určeny pro tentýž procesor.
• AAR – All to All Reduce – každý procesor vysílá všem ostatním procesorům stejnou
zprávu, která se ve směrovačích, kterými prochází, může současně posílat do více kanálů a
nebo redukovat s jinými zprávami, které jsou určeny pro tentýž procesor.
Obrázek 2 Schémata skupinových komunikací
Tabulka 2 Charakteristika skupinových komunikací
OAB AOR OAS AOG AAB AAR AAS
Celkový počet zpráv P – 1 P – 1 P – 1 P – 1 (P – 1)P (P – 1)P (P – 1)P
Počet různých zpráv 1 P – 1 P – 1 P – 1 P P (P – 1)P
Počet vysílacích CPU 1 P – 1 1 P – 1 P P P
Počet přijímacích CPU P – 1 1 P – 1 1 P P P
OAB OAS AOG AAB
AAS AOR AAR
22
Jak je patrné z tabulky, složitost komunikací AOG a OAS se liší jen v počtu vysílacích/přijímacích
procesorů, jejich průběh je navzájem inverzní. Důkaz o jejich stejné časové složitosti skupinových
komunikací je známý, viz důkaz 5. Podobně jsou na tom operace OAB a AOR nebo AAB a AAR.
Složitost těchto GC je obvykle stejná, liší se např. při nesouměrném portovém modelu, který v jednom
kroku umožňuje vyslat více zpráv než přijmout (výstupně všeportový model, b-portový model).
Z těchto důvodu se dále zabýváme pouze skupinovými komunikacemi OAB, OAS, AAB a AAS.
Podobnosti mezi GC lze odvodit ze schémat, viz obrázek 2. Schémata reprezentují případ čtyř
procesorů, z důvodu přehlednosti je každý z nich zobrazen dvakrát, jednou jako vysílající (nahoře),
podruhé jako přijímající procesor (dole). Větvení cesty zprávy mimo procesor znamená replikaci
(resp. redukci) informace během cesty v závislosti na topologii sítě. U AOR a AAR se během cesty
mohou zprávy spolu kombinovat, čímž vznikne jiná zpráva o stejné velikosti nesoucí informaci obou
původních. Kombinace se provádí nějakou asociativní operací (např. +, ×, max, min, AND, OR,
XOR). I když čistě matematicky jsou tyto operace asociativní, po implementaci v počítači se
asociativně nechovají. Např. u součtové operace a registru s pohyblivou čárkou o přesnosti čtyř
platných cifer závisí, v jakém pořadí se sečtou tyto tři čísla: 1000; –1000; 0,001. Protože vlivem
zaokrouhlení v registru je (1000 – 1000) + 0,001 = 0,001, ale v jiných případech (1000 + 0,001) –
1000 = (0,001 – 1000) + 1000 = 0. V praxi má sice registr více platných (binárních) cifer, ale to tento
problém jen odsouvá do sčítání větších čísel s ještě menšími. V případě, že používáme takto rozdílná
čísla a požadujeme stejné chování nezávislé na způsobu redukce zpráv nebo požadujeme přesný
výsledek, musí být operace AOR (AAR) provedena jako AOG (AAB) s redukcí v cílovém uzlu. (Toto
je nutné brát v úvahu při použití metodiky navržené v dalším, kdy v přípravné fázi zjišťujeme
množství a typ GC použitých v programu.)
2.2.4 Ukazatele hodnotící komunikační složitost
U sítí SAF se zavádí komunikační práce, CW, což je celkový počet využitých vnějších linek
v průběhu komunikace. Nejdříve potřebné definice:
Phit – (physical unit) Množství dat přenesené linkou za jeden takt, tj. nejmenší jednotka dat, kterou
lze poslat.
Flit – (flow-control unit) nejmenší množství dat, které lze přijmout, odmítnout, přesměrovat. Může
se rovnat phitu, paketu nebo celé zprávě.
Pro hodnocení komunikační složitosti se používají dva modely:
• model konstantního času – nejjednodušší model, udává počet kroků s konstantním
trváním, které jsou třeba pro vykonání komunikace, resp. počet startovních zpoždění.
Spodní (horní) mez v tomto modelu budeme označovat τx (τx
), kde x = OAB, OAS apod.
• model lineárního času – složitější model, ale můžeme docela přesně určit časovou
složitost dané komunikace. Spodní (horní) mez v tomto modelu budeme označovat tx (G)
(tx
(G)), kde x je OAB, OAS apod.
V modelu lineárního času bez ohledu na použitou přepínací techniku lze celkové zpoždění
komunikace rozložit na několik částí: startovací (startup) zpoždění – ts, zpoždění při přenosu (move)
po fyzické lince mezi uzly – tm, zpoždění směrovacího rozhodnutí o (route) – tr, zpoždění (switch)
směrovače – tsw, viz obrázek 3, a zpoždění vyvolané blokováním (contention delay) cesty jiným
paketem – tcd. Vzdálenost, na kterou se zpráva přenáší, vyjádřená v počtu využitých vnějších linek
označujeme h. Kapitola 2.2.5 ukazuje způsob výpočtu celkového zpoždění v závislosti na přepínací
technice.
Startovací zpoždění ts představuje HW ale i SW zpoždění ve zdrojovém uzlu nezbytné pro přípravu
odesílané zprávy. Toto zpoždění není často závislé na délce přenášených dat, protože se při těchto
činnostech nepracuje s vlastními daty, ale ukazateli na ně. Zpoždění směrovacího rozhodnutí tr
představuje zpoždění při budování směrovací cesty uvnitř daného směrovače.
Zpoždění směrovače tsw představuje nutný čas na přenesení dat ze vstupu směrovače přes již
nastavenou cestu na jeho výstup. Zpoždění vodičů tm a směrovače tsw, určují dobu taktu t1 při přenosu,
23
tj. dobu přenosu jednoho phitu. Jak, to záleží ale na tom, zda směrovač obsahuje bufery pouze na
vstupu, nebo i na výstupu. Jsou-li bufery pouze na vstupu, je zpoždění mezi bufery v sousedních
uzlech dáno součtem zpoždění tsw a tm, tj. t1 = tsw + tm. Je-li bufer i na výstupu směrovače, uplatní se
větší ze dvou zpoždění a to mezi bufery v témže směrovači (tsw) nebo mezi bufery v sousedních
směrovačích (tm), tj. t1 = max(tsw, tm).
Serializační zpoždění souvisí s tím, že celá zpráva se nedá přenést po lince šířky W bitů v jednom
taktu, nýbrž se musí serializovat, tj. přetransformovat do řady phitů. Je-li délka zprávy bez hlavičky L
bitů, je toto zpoždění s = L/W taktů. Zpoždění vyvolané blokováním cesty tcd neuvažujeme, protože
volíme způsob komunikace tak, aby k tomuto blokování nedocházelo.
Obrázek 3 Komunikační zpoždění
2.2.5 Přepínací techniky
Pro skupinové komunikace je důležitá přepínací technika použitá v propojovací síti paralelního
počítače. V současné době můžeme rozlišit čtyři základní přepínací technika: ulož-pošli-dál nebo také
paketové přepínání (SAF – store-and-forward), průřezové (VCT – virtual-cut-through), červí (WH –
wormhole) a přepínání kanálů (CS – circuit switching) [DYN03], [HEP03].
2.2.5.1 Přepínaní kanálů
Technika CS používaná především v telefonních sítích realizuje přenos ve třech fázích: fáze
zkonstruování cesty, přenosu zprávy a zrušení cesty. V první fázi putuje od zdroje k cíli žádost o
nastavení cesty o délce a flitů, tato žádost obsahuje především cílovou adresu a cestou rezervuje
kanály, kterými prochází. Po dosažení cílového uzlu je poslán zpět potvrzovací flit. Vlastní přenášení
dat je obsah druhé fáze. Třetí fáze představuje poslání žádosti o zrušení cesty.
Je-li žádost o nastavení cesty blokována a musí se čekat až bude kanál volný, jsou dosud
rezervované kanály pro jiné nepřístupné. Základní zpoždění sítě (viz kóta na obrázek 4) je tedy
[ ] 1))(1( stttatht swmrCS ++++=
Zpoždění žádosti o nastavení cesty je ))(( swmr ttath ++ , potvrzení díky již nastavené cestě
putuje za čas )( swm tth + . Z popisu vyplývá, že režie techniky CS je pro krátké zprávy značná.
Obrázek 4 Přepínání kanálů
R R R R
SW
HW
zdroj
tS
cíl
tm
tsw (+tr)
spoj 1 spoj h
Linka 1
Linka 2
Linka 3
24
2.2.5.2 Paketové přepínání
Technika SAF je citlivá na vzdálenost, využívá bufery na celý paket, někdy také označována jako
paketové přepínání. U techniky SAF se paket začne přenášet z jednoho uzlu do dalšího teprve tehdy,
až je k dispozici celý. Po průchodu směrovačem (za dobu tr + tsw) a linkou (tm) je třeba čekat celé
serializační zpoždění (st1) na konec paketu, viz obrázek 5. Základní síťové zpoždění je tedy značně
citlivé na vzdálenost h zdrojového a cílového uzlu:
)( 1sttht dSAF += , kde td = tr + tsw + tm
Obrázek 5 Paketové přepínání
Proto je výhodné používat směrování přes nejmenší počet uzlů, nejlépe v sítích s malým průměrem.
Technika SAF je výhodná pro krátké a časté zprávy, protože z celkové cesty je vždy obsazen jedním
paketem nejvýše jeden kanál.
2.2.5.3 Červí přepínání
Obrázek 6 Červí přepínání a) celá cesta volná b) poslední část cesty je blokována po dva takty
Směrovače s WH přepínáním obsahují bufery s kapacitou jen na několik flitů, nikoliv na celý
paket. Při komunikaci se nečeká až dorazí celý paket, směrovač pro něj nemá ani bufer, směrovač
podle hlavičky určí kam paket poslat a začne jej ihned (přesněji po zpoždění td) přeposílat po flitech,
viz obrázek 6 a). Když je další postup hlavičky zablokován (čeká na volný kanál), zpráva zamrzne ve
A B C D
Čas
1 paket = 4 flity
4t1
tsw + tr + tm
A B C D
Čas
1 paket = 4 flity
a)
A B C D
Čas
1 paket = 4 flity
b)
25
flitových buferech několika uzlů, viz obrázek 6 b). Kanály, které zpráva používá, zůstávají po dobu
zablokování rezervované a nepoužitelné pro jiné zprávy. Základní síťové zpoždění je:
1sttht dWH += , kde opět td = tr + tsw + tm
Přepínání WH je v paralelních počítačích nejpoužívanější vzhledem k nízké hodnotě základního
síťového zpoždění a malé citlivosti na vzdálenost komunikujících uzlů. Malá velikost flitových buferů
oproti paketovým dovoluje umístění celého směrovače na jeden čip, popřípadě i integraci směrovače
s procesorem na jednom čipu.
2.2.5.4 Průřezové přepínání
Směrovače s přepínáním VCT obsahují opět bufery s kapacitou na celý paket. Tato technika se
snaží spojit výhody technik SAF a WH. Pokud je další postup hlavičky zablokován (čeká na volný
kanál), tělo zprávy pokračuje, až se nasune do buferu před obsazeným kanálem, viz obrázek 7. A tak
se postupně znovu uvolní předešlé kanály použité daným paketem.
Tzn. pokud nedochází k čekání na volný kanál, průřezové přepínání se blíží k WH, viz obrázek 6 a)
a základní síťové zpoždění je dáno vztahem
1sttht dCT += , kde opět td = tr + tsw + tm
Toto síťové zpoždění je na vzdálenosti jen velmi málo závislé, protože pro každý přenos mezi
směrovači se připočte jen malé zpoždění td. Při silném provozu v síti, kdy se na uvolnění téměř každé
linky musí čekat, se technika VCT blíží technice SAF, viz obrázek 5.
Obrázek 7 Průřezové přepínání se zablokováním po dva kroky mezi C a D
2.2.6 Zablokování při komunikaci
V propojovací síti se vyskytuje zablokování, když pakety v síti obsadí řadu buferů a příslušné
kanály tvoří smyčku. Zablokování komunikace způsobí zastavení výpočtu. Zablokování se můžeme
vyhnout způsobem komunikace např. u přepínání SAF a topologii krychle využijeme dimenzionálně
uspořádané minimální směrování. Nebo lze vznik uváznutí tolerovat, ale s mechanismem jeho detekce
a zotavení.
Způsob zablokování, způsob jeho potlačení (detekce, prevence) a frekvence zablokování mimo jiné
závisí i na použitém přepínání. Zablokování při přepínání SAF a VCT vzniká zaplněním front na
všech výstupních kanálech pakety, které také nemohou postoupit. Přepínání WH je k zablokování
náchylnější. Datové flity musí putovat cestou rezervovanou hlavičkovým flitem, nemohou použít jiné
volné kanály k cíli. Nemůže-li zpráva z nějakého důvodu postupovat, je zmražena, roztažena přes
několik uzlů a sekvence kanálů mezi nimi je i nadále rezervována, což může blokovat řadu dalších
přenosů.
Jak jsme již uvedli, nabízejí se dvě možná základní řešení: prevence a detekce. Tedy buď
navrhneme komunikaci mezi uzly tak, aby k zablokování nemohlo dojít, nebo se smíříme s občasným
výskytem zablokování, ale dokážeme ho úspěšně detekovat a zotavit se z něj. Pro adaptivní směrování
A B C D
Čas
1 paket = 4 flity
26
se vyžaduje acykličnost tzv. rozšířeného grafu závislostí, více viz [DUA95]. V této práci uvažujeme
deterministické směrování a prevenci zablokování. Pro danou topologii sítě a deterministický
směrovací algoritmus můžeme výskyt uváznutí zjistit pomocí tzv. grafu závislosti kanálů G(V, E),
definovaného takto:
– uzly grafu G jsou kanály propojovací sítě (skutečné nebo virtuální)
– hrany grafu G jsou dvojice kanálů (ci, ck) takové, že paket je dle daného směrovacího
algoritmu přeposílán z kanálu ci na kanál ck.
Pokud je daný graf G acyklický, tehdy a jen tehdy příslušný směrovací algoritmus nevede k
zablokování.
Jedním ze způsobů jak řešit zablokování jsou virtuální kanály (VC – virtual channel). Pomáhají
také zvýšit průchodnost především u WH přepínání tím, že se přes jednu fyzickou linku může
simultánně přenést několik paketů z několika zdrojů a tím delší pakety zbytečně neprodlužují latenci
krátkých. A nastavením pravidel jejich používání pomocí směrovacího algoritmu se můžeme vyhnout
zablokování úplně.
Např. jednosměrná kružnice složená ze tří uzlů s libovolným směrováním již obsahuje zablokování,
protože graf závislosti kanálů tvoří cyklus. Pokud na jeden fyzický kanál budou multiplexovány dva
virtuální kanály, vnější a vnitřní, můžeme zajistit nepřítomnost zablokování následujícím směrovacím
algoritmem:
Směrovací algoritmus (myid je index aktuálního uzlu) :
je-li dst > myid, pošli zprávu vnějším kanálem (velká písmena);
je-li dst < myid, pošli zprávu vnitřním kanálem (malá písmena);
je-li dst = myid, je zpráva pro nás.
Obrázek 8 Virtuální kanály v jednosměrné kružnici
Graf závislosti kanálů je teď acyklický, viz obrázek 8. Všimněme si, že vždy dle tohoto algoritmu
nepoužijeme dva virtuální kanály (kanál „a“ a „C“). Použití dvou VC pro odstranění zablokování lze
zobecnit i pro jednosměrné kružnice s větším počtem uzlů, a použitím více VC odstraníme
zablokování u více-dimenzionálních topologií, více například viz [NMK93].
2.3 Skupinové komunikace na krychli
2.3.1 Spodní meze
Počet kroků skupinové komunikace x na síti G (model SAF NC) je úměrný době komunikace a je
důležitý parametr pro odhad výkonnosti. Budeme jej značit τ (x,G), kde x = OAB, OAS, …atd. τx(G) a
τx
(G) jsou dolní a horní mez τ (x,G). Pokud je G zřejmé z kontextu, nebudeme jej uvádět. Spodní meze
počtu kroků τx a komunikační práci CW základních skupinových komunikací na krychli (všeportový
plně duplexní SAF nekombinující model) udává tabulka 3. Existují algoritmy, které těchto spodních
mezí dosahují, viz kapitola 4.2.
A
C
B
b
c
a
2
1
3
A
B C
a
b c
b) Graf závislosti kanálůa) Jednosměrná kružnice
2–3
1–2
3–1
27
Tabulka 3 Spodní meze počtu kroků τx a komunikační práce CW na krychli dimenze d
komunikační vzor x τx CW(x)
OAB d 2d
– 1
AAB (2d
– 1)/d 2d
(2d
– 1)
OAS (2d
– 1)/d d2d – 1
AAS 2d – 1
d22d – 1
V jednoportové WH síti G je vždy τOAB(G) = log|V(G)|. U všeportové k-regulární síti je spodní mez
τOAB(G) = logk+1|V(G)|. Té je možné dosáhnout pouze, když každý informovaný uzel od okamžiku,
kdy se dozvěděl informaci, až do konce, informuje v každém kroku k nových uzlů. Vymyslet takové
schéma je obecně velmi obtížné.
U červího směrování existuje řada možných HW realizací. Například u GC OAB je možné vytvořit
tzv. úplný rozhlašovací strom, tzn. každý uzel každý přijatý flit současně posílá/kopíruje do několika
dalších uzlů. V tomto případě by komunikace trvala pouhý jeden krok. Mnohem úspornější hardware
by posílal zprávu/flity pouze do jednoho uzlu dle Hamiltonovy cesty. Ale nejběžnější realizace
spoléhá na SW podporu, rozhlašování se provádí ve stromu. Tento způsob se používá i v této práci.
2.3.2 Komunikace OAB
Pro tuto komunikaci nemá smysl uvažovat kombinování (kombinující model | nekombinující
model), typ kanálů (simplexní | poloduplexní | plně duplexní). Dále nemá smysl všeportový procesor,
proto dále budeme uvažovat jen výstupně všeportový model a jednoportový model.
Obrázek 9 Binomiální kostra (a) v jednoportové Q3 (b) ve výstupně všeportové Q3
V jednoportovém modelu na krychli SAF můžeme užít schématu, kterému se říká d-úrovňová
binomiální kostra, SBTd (spanning binomial tree), viz obrázek 9(a)(b). Tento algoritmus lze zobecnit
na výstupně k-portový, kde počet kroků dosahuje spodní meze τOAB (Kn) = logk+1 P. Tato kostra má
zřejmou rekurzivní strukturu: SBTd se skládá ze spodní SBTd-l a horní SBTd-1 s propojenými kořeny.
Přívlastek binomiální je inspirován faktem, že počet uzlů ve vzdálenosti i od kořenu SBTd vyjadřuje
kombinační číslo d nad i, které je dále značeno jako K(d, i). SBTd reprezentuje optimální (z hlediska
komunikační práce) algoritmus bez ohledu na volbu modelu portu. Rozdíl je v rychlosti, jakým se
informace šíří. Počet uzlů, které obdrží paket v kroku i je
• 2i-1
v jednoportovém modelu
• ⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
=
i
d
idK ),( ve všeportovém modelu
a) b)
28
Protože ∑ ∑= =
−
−=⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
=
d
i
d
i
di
i
d
1 1
1
122 , oba případy (jednoportový, všeportový model) jsou optimální
z hlediska komunikační práce, tedy komunikační práce těchto skupinových komunikací je stejná a je
rovna spodní mezi komunikační práce, viz tabulka 3.
U všeportové WH krychle je spodní mez ⎡ ⎤)1log(/ += ddOABτ . Tato mez již není dosažitelná
SAF algoritmem. Proto se používá obvykle kombinace dvou téměř optimalizovaných algoritmů.
Algoritmus dvojitého stromu (DTA) [MCT93]: Základní myšlenka algoritmu DTA (Double Tree
Algorithm) je poslat paket ze zdroje nejprve uzlu, který je v opačném rohu krychle vůči zdroji (jeho
binární adresa je bitovým doplňkem adresy zdrojového uzlu) a paralelně d – 1 sousedům. Od druhého
kroku pak tyto dva uzly budují proti sobě rostoucí binomiální kostry. Pro všeportovou krychli WH tak
dosáhneme ⎡ ⎤2/dOAB =τ kroků, což je dokonce pro d < 7 optimální.
Obrázek 10 Dvoukrokový algoritmus dvojitého stromu ve všeportové 4D krychli WH
Ho-Kao-ův algoritmus (HKA) [HKA95]: Tento algoritmus je téměř optimální. Používá základní
e-cube směrování s porovnáním bitů zleva doprava. Definujme jednoduchou dimenzionálně rostoucí
cestu jako cestu jdoucí přes posloupnost sousedních uzlů u0,…,uk v d-krychli takových, že δ(uj-1,uj) = ij
a dkdii k ≤−≤<<≤ ,1...0 1 . Platí, že všech k cest z uo do uj, kj ≤≤1 , indukovaných e-cube
směrováním, je po dvojicích uzlově disjunktní. Z toho plyne, že uzel u0 může poslat k paketů všem k
uzlům uj současně. Algoritmus HKA tedy postupuje tak, že zkonstruuje jednoduchou dimenzionálně
rostoucí cestu u0,…,ud takovou, že
1. d-krychli lze rozdělit do d + 1 disjunktních podkrychlí Si, stejné dimenze nebo dimenze o
jedničku větší.
2. Každá podkrychle Si obsahuje uzel ui.
Po uzlově disjunktních cestách pošle zdroj u0 paket všem uj, dj ≤≤1 , najednou. Tento postup
opakuje rekurzivně, dokud není d-krychle rozdělena do podkrychlí velikostí šest a uvnitř těchto
podkrychlí je pak použit DTA.
2.3.3 Komunikace OAS
Pro tuto komunikaci nemá smysl uvažovat typ kanálů, rychlost této GC je stejná jak na
simplexním, poloduplexním tak i plně duplexním modelu. Algoritmy této GC mají na výstupně
všeportovém modelu stejnou složitost jako na jednoportovém. Algoritmy používané pro SAF sítě
můžeme beze změny použít i pro WH sítě, opačně to neplatí.
2.3.3.1 Nekombinující model
V nekombinujícím modelu musí zdroj vyslat P – 1 paketů jako samostatné jednotky. Protože zdroj
v jednoportovém modelu je schopen vyslat v každém kroku jen jednu zprávu, stačí nám najít
Hamiltonovskou cestu, po které se pakety rozesílají metodou FF (further first – nejdříve vzdálenější)
29
prostým předáváním zpráv mezi sousedními uzly. Z výše uvedeného plyne, že spodní mez počtu kroků
je P – 1.
U všeportového modelu je spodní mez počtu kroků ⎡ ⎤dP /)1( − , kde d je stupeň zdrojového uzlu.
Kostra pro OAS se skládá z d podstromů přibližně stejné velikostí a hloubce a opět se použije strategie
FF. Obrázek 9 ukazuje příklad kostry krychle. Ve WH sítích na pořadí, v jakém jsou cíle vybírány,
tolik nezáleží, dokonce i hloubka podstromů se může různit, ale cesty použité v jednom kroku by měly
být hranově disjunktní a přibližně stejně dlouhé. Stačí rozdělit množinu uzlů do d disjunktních
podmnožin, aby v každém kroku bylo možné vybrat d uzlů, které lze spojit se zdrojovým
bezkonfliktními cestami.
2.3.3.2 Kombinující model
Spodní mez počtu kroků je stejná jako u OAB, ale komunikační zpoždění se díky měnící se
velikosti zpráv odlišuje. Délka zpráv se postupně snižuje. Využíváme binární zdvojování, tedy
používáme binomiální kostru. Jak u jednoportového modelu tak všeportového, je komunikace s
použitím kombinování pomalejší, protože komunikační linka je využita jen jedna na dané cestě od
kořene kostry po list. Proto je lépe u GC OAS kombinování nepoužívat. WH všeportový model
neuvažujeme, protože ani pro OAB není známo ideální řešení.
2.3.4 Komunikace AAB
Komunikace AAB patří mezi náročnější a protože každý parametr modelu na ni má vliv. Dále jsou
popsány pouze SAF modely. Algoritmy pro WH sítě jsou obvykle typu GS, tj. sekvence komunikací
AOG a OAB.
2.3.4.1 Kombinující model
2.3.4.1.1 Všeportový model
Plně duplexní kanály: To je nejrychlejší, ale na realizaci také nejnáročnější model. Triviální, ale
ne příliš chytrý, je algoritmus záplavový: každý uzel v každém kroku zkombinuje zprávy ze všech
směrů (včetně svého) a pošle tuto zprávu všemi směry. Počet kroků je optimální (průměr sítě), ale
komunikační zpoždění je vysoké, protože dochází k velké duplikaci zpráv.
Poloduplexní kanály: Obecný důležitý algoritmus je Soustřeď a rozešli (Gather-Scatter – GS).
Kdy komunikaci AAB složíme z komunikací AOG a OAB. V jednom libovolném uzlu shromáždíme
všechny zprávy (AOG) a v další fázi vyšle uzel tuto kombinovanou zprávu všem ostatním uzlům
(OAB).
Topologie, kterou lze silně zorientovat, má jednodušší řešení GC AAB. Silně zorientovat znamená
přiřadit směr hranám tak, aby graf zůstal i po orientaci hran souvislý. D' označíme tento orientovaný
průměr nově vzniklého grafu. Pokud platí D' < 2D, pak můžeme použít rychlejší algoritmus než GS –
záplavový algoritmus ve směru zorientovaných hran. Problém zorientovaní hran grafu tak, aby průměr
D' byl nejmenší možný, se nazývá manhattanský problém a patří do skupiny NP-úplných problémů.
Optimální řešení, kdy D = D' existuje pro dostatečně rozsáhlé mřížky a toroidy. Pro krychli je tento
problém vyřešen úplně.
2.3.4.1.2 Jednoportový model
Poloduplexní kanály: Efektivní algoritmy jsou značně komplikované. Obecně ale zde také
existuje metoda GS.
Plně duplexní kanály: U krychle použijeme algoritmus výměny a to vždy po linkách v jedné
dimenzi. Počet kroků je tedy stejný jako počet dimenzí, tedy d. Komunikační zpoždění je
)12()2(
1
0
−+=+= ∑
−
=
dd
i msm
i
sAAB stdtsttt .
30
2.3.4.2 Nekombinující model
U nekombinujícího modelu je třeba doručit P různých vstupních paketů všem P – 1 uzlům. U
jednoportového modelu je nejjednodušším řešením použití Hamiltonovské kružnice.
Dále uvažujeme jen všeportový plně duplexní model. Spodní mez u AAB v síti G s P uzly a
stupněm d je ⎡ ⎤dPGAAB /)1()( −=τ . Způsob řešení u krychle je použití časově hranově disjunktních
koster (TADT – Time Arc-Disjoint Trees) [RJM93]. Hlavní myšlenkou je vytvořit z každého uzlu
OAB kostru, každá z těchto koster je předpis jak dopravit v několika krocích paket do všech uzlů sítě.
Všechny uzly začnou vysílat pakety současně dle svých koster, tj. v každém okamžiku jsou aktivní
hrany kostry v nějaké vzdálenosti. Vytváření těchto koster se značně zjednoduší, pokud je topologie
uzlově symetrická. Pak lze kostry odvodit z generické kostry. Algoritmus TADT aplikovaný na
krychli je optimální algoritmus pro AAB všeportový model.
2.3.5 Komunikace AAS
2.3.5.1 Kombinující model
Optimálním algoritmem pro SAF krychli je standardní výměna, počet kroků je d, v každé dimenzi
(= kroku) každý uzel pošle P/2 paketů určených pro opačnou polovinu krychle a stejný počet paketů
obdrží pro svou polovinu. Každý krok má stejnou komunikační složitost, celkový čas je
)2( 1−
+= d
msAAS sttdt . To vše je platné za předpokladu plně duplexních linek a jednoportového (nebo
všeportového) modelu.
Pokud ms stt ≥ , můžeme použít algoritmus „Standardní výměna“ pro WH krychli jako u modelu
SAF. Pokud ms stt << je spodní mez 2/)12()2/()2/)12(2( −=−≥ d
m
ddd
mAAS stddstt , této spodní
mezi asymptoticky dosahuje algoritmus pro nekombinující WH model popsaný dále.
2.3.5.2 Nekombinující model
Analýza nekombinujícího SAF d FD modelu byla provedena s dosažením dolní meze počtu kroků
τAAS = τAAS
= 2d – 1
= P / 2 [EDE91]. Algoritmus přímá výměna pracuje v nekombinujícím WH modelu,
ale stejný se použije pro kombinující WH model. Algoritmus přímá výměna je posloupnost 2d
– 1
permutací jXORxxj a:π , pro tyto permutace je dokázána bezkoliznost směrování v krychli, viz
[TVR03]. Při realizaci jπ na WH krychli si každá dvojice uzlů vyměňuje své dva pakety a veškeré
cesty jsou v daném kroku hranově disjunktní. Komunikační složitost je
)2/)(12()( mds
d
dAAS stdttQt ++−= , z čehož plyne, že tento algoritmus je asymptoticky optimální
za podmínky ms stt << .
31
3. Generické architektury
U aplikačně specifických systémů se obecně očekává relativně snadný a rychlý návrh a vývoj.
K tomu přispívá modularita, testovatelnost a opakovaná použitelnost již jednou navržených částí
systémů.
Dle požadavku na univerzálnost architektury, se kterou se pojí odpovídající cena architektury a
rychlost řešení, můžeme rozeznat:
• Univerzální architektury – používá se univerzální procesor, jenž pomocí softwaru dokáže
zpracovat skoro libovolnou úlohu, zvyšování rychlosti je možné zvyšováním rychlosti
procesoru. Konkurenční prostředí a požadavky uživatelů vyžadují kompatibilitu procesoru
s předchozími typy. Protože se vyrábějí v obrovském množství, cena je nízká (např. Intel,
AMD, UltraSparc, Alpha, PowerPC, Transmeta, nebo PIC, procesory řady 48, 51…).
• Proprietární architektury – používají se pro daný typ úloh a jsou plně optimalizované na jejich
rychlost. Kompatibilitu obvykle není nutné zajišťovat, jedná se o nejrychlejší, ale také obvykle
i nejdražší řešení, protože malé množství kusů jedné architektury znamená větší cenu
architektury, ale také vyšší náklady na programování. Pro snížení ceny architektur, které je
potřeba vyrobit v malém množství, se používají programovatelné univerzální architektury
(FPGA, PLA, PLD …).
Obsáhnout jediným nástrojem, vývojovým prostředím, metodikou všechny možné systémy je
(zatím) zhola nemožné. Proto se různé vývojové nástroje, prostředí zaměřují na více či méně obsáhlou
skupinu úloh, problematik. Snahou je zkoumat takovou podmnožinu všech architektur, které jsou
pokud možno pravidelné, rozšiřitelné (škálovatelné), snadno popsatelné, přizpůsobitelné řešené úloze,
tj. které dokáží řešit mnoho úloh. Pokud tato podmnožina architektur tyto požadavky splňuje, obvykle
je označujeme jako „generická architektura“.
Generickou architekturou lze označit obecnou tlustou krychli, ale i „klasickou“ krychli, nebo zde
zkoumanou architekturu „zřetězenou procesorovou farmu“. Beze sporu generickou architekturou jsou
architektury se sdílenou pamětí, více či méně zobecněné. „Víceprotokolový řadič vyrovnávací paměti“
představuje hlavní část těchto architektur, část starající se o koherenci dat, navíc zobecněné pro použití
více protokolů koherence. Princip „rozděl a panuj“ nepředstavuje sice reálnou architekturu, ale
virtuální generickou architekturu. Toto označení si jistě zaslouží za to, že mnoho úloh je tímto
principem možné (efektivně) řešit a naopak některé architektury dokáží vnořit tuto architekturu do své.
„Vnořit tuto architekturu do své“, tím se rozumí schopnost procesy vznikající principem „rozděl a
panuj“ vhodně umísťovat na procesory.
3.1 SMP s víceprotokolovým řadičem vyrovnávací paměti
3.1.1 SMP a koherence vyrovnávacích pamětí
Symetrické multiprocesory se sdílenou pamětí (SMP) jsou v současnosti nejběžnější paralelní
výpočetní platformou. Jedná se o paměť fyzicky centralizovanou do jednoho nebo více paměťových
modulů a připojenou k procesorům nejčastěji sběrnicí, nověji často křížovým přepínačem. Každý
procesor v této architektuře má přístup do celého sdíleného adresového prostoru a doba přístupu ke
všem paměťovým místům je shodná (UMA, Uniform Memory Access). Využívají se v serverech,
pracovních stanicích dokonce i v PC nebo v aplikačně specifických systémech a mohou být
integrovány do jednoho čipu. Většina těchto systémů je založena na sběrnici s podporou koherence dat
ve vyrovnávacích pamětech. Vyrovnávací paměti mohou redukovat přístupové zpoždění k paměti, ale
celkový výsledek je značně ovlivněn způsobem manipulace s daty v konkrétní aplikaci. Nepečlivé
programování vede k falešnému sdílení dat [COR00], které může degradovat výkon SMP pod výkon
samostatného sekvenčního procesoru.
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace
disertace

More Related Content

Similar to disertace

Integrální taktový grafikon v ČR 2012
Integrální taktový grafikon v ČR 2012Integrální taktový grafikon v ČR 2012
Integrální taktový grafikon v ČR 2012Zdeněk Michl
 
WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP
WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP
WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP Janek Wagner
 
Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012Petr Kozlik
 
Základní funkce MetaCentra a jejich využití
Základní funkce MetaCentra a jejich využitíZákladní funkce MetaCentra a jejich využití
Základní funkce MetaCentra a jejich využitíCESNET
 
04 Strategie dlouhodobé ochrany.pptx
04 Strategie dlouhodobé ochrany.pptx04 Strategie dlouhodobé ochrany.pptx
04 Strategie dlouhodobé ochrany.pptxMagdalnaBohuslavov
 
BPTX_2014_1_11320_0_378624_0_158202
BPTX_2014_1_11320_0_378624_0_158202BPTX_2014_1_11320_0_378624_0_158202
BPTX_2014_1_11320_0_378624_0_158202Petr Hude?ek
 
Integrální taktový grafikon v ČR 2013
Integrální taktový grafikon v ČR 2013Integrální taktový grafikon v ČR 2013
Integrální taktový grafikon v ČR 2013Zdeněk Michl
 
Představení e-Infrastruktury CESNET
Představení e-Infrastruktury CESNETPředstavení e-Infrastruktury CESNET
Představení e-Infrastruktury CESNETCESNET
 
Vysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictvi
Vysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictviVysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictvi
Vysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictviMartin Necasky
 
Ekosystem ICT ve skole
Ekosystem ICT ve skoleEkosystem ICT ve skole
Ekosystem ICT ve skoleINTERES - KISK
 
Webináře – výzvy, možnosti hrozby
Webináře – výzvy, možnosti hrozbyWebináře – výzvy, možnosti hrozby
Webináře – výzvy, možnosti hrozbyMichal Černý
 
Datová úložiště CESNET
Datová úložiště CESNETDatová úložiště CESNET
Datová úložiště CESNETCESNET
 
Zkušenosti s využitím Cloud Computingu ve výuce
Zkušenosti s využitím Cloud Computingu ve výuceZkušenosti s využitím Cloud Computingu ve výuce
Zkušenosti s využitím Cloud Computingu ve výuceKISK FF MU
 
Otevrene problemy architektury elektronickeho zdravotnictvi
Otevrene problemy architektury elektronickeho zdravotnictviOtevrene problemy architektury elektronickeho zdravotnictvi
Otevrene problemy architektury elektronickeho zdravotnictviMartin Necasky
 

Similar to disertace (20)

Integrální taktový grafikon v ČR 2012
Integrální taktový grafikon v ČR 2012Integrální taktový grafikon v ČR 2012
Integrální taktový grafikon v ČR 2012
 
WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP
WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP
WORKSHOP Nad kurikuly: ICT, státní maturita RVP/ŠVP
 
Bod2007 Schwarz
Bod2007 SchwarzBod2007 Schwarz
Bod2007 Schwarz
 
Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012Prezentace Bakalářské práce - Obhajoba 2012
Prezentace Bakalářské práce - Obhajoba 2012
 
Základní funkce MetaCentra a jejich využití
Základní funkce MetaCentra a jejich využitíZákladní funkce MetaCentra a jejich využití
Základní funkce MetaCentra a jejich využití
 
Datasheet simplivity cz
Datasheet simplivity czDatasheet simplivity cz
Datasheet simplivity cz
 
04 Strategie dlouhodobé ochrany.pptx
04 Strategie dlouhodobé ochrany.pptx04 Strategie dlouhodobé ochrany.pptx
04 Strategie dlouhodobé ochrany.pptx
 
BPTX_2014_1_11320_0_378624_0_158202
BPTX_2014_1_11320_0_378624_0_158202BPTX_2014_1_11320_0_378624_0_158202
BPTX_2014_1_11320_0_378624_0_158202
 
Integrální taktový grafikon v ČR 2013
Integrální taktový grafikon v ČR 2013Integrální taktový grafikon v ČR 2013
Integrální taktový grafikon v ČR 2013
 
Představení e-Infrastruktury CESNET
Představení e-Infrastruktury CESNETPředstavení e-Infrastruktury CESNET
Představení e-Infrastruktury CESNET
 
Vysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictvi
Vysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictviVysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictvi
Vysledek souteze o navrh hospodarneho a funkcniho elektronickeho zdravotnictvi
 
Ekosystem ICT ve skole
Ekosystem ICT ve skoleEkosystem ICT ve skole
Ekosystem ICT ve skole
 
Webináře – výzvy, možnosti hrozby
Webináře – výzvy, možnosti hrozbyWebináře – výzvy, možnosti hrozby
Webináře – výzvy, možnosti hrozby
 
Datová úložiště CESNET
Datová úložiště CESNETDatová úložiště CESNET
Datová úložiště CESNET
 
Zkušenosti s využitím Cloud Computingu ve výuce
Zkušenosti s využitím Cloud Computingu ve výuceZkušenosti s využitím Cloud Computingu ve výuce
Zkušenosti s využitím Cloud Computingu ve výuce
 
Otevrene problemy architektury elektronickeho zdravotnictvi
Otevrene problemy architektury elektronickeho zdravotnictviOtevrene problemy architektury elektronickeho zdravotnictvi
Otevrene problemy architektury elektronickeho zdravotnictvi
 
Prof. Mařík - Industry 4.0 v ČR
Prof. Mařík - Industry 4.0 v ČRProf. Mařík - Industry 4.0 v ČR
Prof. Mařík - Industry 4.0 v ČR
 
TNPW2-2011-10
TNPW2-2011-10TNPW2-2011-10
TNPW2-2011-10
 
Úvod do OOP
Úvod do OOPÚvod do OOP
Úvod do OOP
 
Diplomka
DiplomkaDiplomka
Diplomka
 

disertace

  • 1. VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ DISERTAČNÍ PRÁCE k získání akademického titulu Doktor (Ph.D.) ve studijním programu INFORMAČNÍ TECHNOLOGIE Ing. Vladimír Kutálek MODELOVÁNÍ A PREDIKCE VÝKONNOSTI APLIKAČNĚ SPECIFICKÝCH MULTIPROCESOROVÝCH SYSTÉMŮ Školitel: Prof. Ing. Václav Dvořák, DrSc. Datum státní doktorské zkoušky: 18.6.2003 Datum odevzdání práce: 30.04.2005 Práce je k dispozici na Vědeckém oddělení děkanátu FIT VUT v Brně
  • 2. 2 Abstrakt S pronikáním číslicové techniky do všech oblastí života dochází k velkému rozvoji aplikačně specifických systémů a architektur, které jsou stále více multiprocesorové, rekonfigurovatelné a často už na jednom čipu. Při přenosu multiprocesorových systémů na čip je třeba modifikovat tradiční techniky distribuované a sdílení paměti s ohledem na stále vyšší požadované výpočetní výkony, nízkou cenu a spotřebu. Pro specifické třídy aplikací vznikají šablony architektur (algoritmů) tzv. generické architektury (skeletony programů). Předložená práce je zaměřena právě do této oblasti a týká se modelování a optimalizace generických aplikačně specifických multiprocesorových systémů zejména s ohledem na výkonnost a cenu. Vzhledem k šíři této oblasti výzkumu a vývoje jde v práci jen o několik dílčích témat, na sobě více méně nezávislých. Většinu z nich spojuje použití stejné modelovací a simulační techniky komunikujících procesů (Transim), v jednom tématu je použit analytický přístup. Nejdříve byly modelovány generické architektury s distribuovanou a sdílenou pamětí. V prvním případě umožňuje simulace návrh (přizpůsobení) zřetězené farmy dané úloze. Ve druhém případě model potvrdil vyšší výkonnost a umožnil specifikovat třídu úloh, na které s ní lze počítat. Následující model algoritmického skeletonu pro třídu algoritmů „Rozděl a panuj“ dovoluje predikci výkonnosti na architekturách s distribuovanou i sdílenou pamětí. Vytvoření modelu bylo poněkud náročnější, poněvadž použitý simulátor a jazyk nepodporuje dynamické procesy. Posledním tématem byla generická komunikační architektura vycházející z krychle. Volbou počtu procesorů v uzlu krychle, případně volbou násobnosti jejích hran vzniká řada konfigurací (tzv. tlustá krychle). Tato nová volnost dovoluje snížit počet dimenzí tradiční krychle a zjednodušit fyzickou implementaci. V práci byly zavedeny čtyři možné modely směrovačů, odvozeny cenové relace jednotlivých variant tlusté krychle a modifikovány známé výsledky týkající se počtu kroků skupinových komunikačních algoritmů na klasické krychli pro tlustou krychli. Uvedený rozbor dovolí výběr optimálního propojení typu tlusté krychle s ohledem na trvání komunikací a cenu. Dosažené výsledky a rozpracované modelovací techniky se uplatní u multiprocesorových systémů s distribuovanou sdílenou pamětí v aplikacích běžících na uvažovaných generických architekturách/algoritmech.
  • 3. 3 Abstract With digital techniques penetrating all areas of our lives, a huge progress is realized in application- specific systems and architectures, which are ever more multi-processor based, reconfigurable and often on a single chip. When transferring multiprocessor systems on a chip, traditional shared and distributed memory techniques have to be modified with respect to steadily rising requirements on computing power, low cost and low power consumption. Architecture (algorithm) templates, so called generic architectures (program skeletons), are being developed for specific classes of applications. The presented thesis is oriented just into this field and deals with modeling and optimization of generic, application-specific multiprocessor systems with the emphasis on performance and cost. With regard to this very wide area of research development, only a few partial topics are treated in the thesis, more or less independent on one another. The most of these topics are connected by making use of a common modeling and simulation technique of communicating sequential processes (Transim); an analytical approach is used in the last single topic. Generic architectures with distributed memory have been modeled first, followed by shared memory architectures. In the farmer case the simulation is used to design (customize) the pipelined farm for a given task. In the latter case the model proved a higher performance in solution of a certain class of problems and also how this class can be specified. Another model of a program skeleton for “divide and conquer” algorithms can predict performance on both the distributed as well as shared memory architectures. The creation of this model has been more demanding because the language and simulator do not support dynamic processes. Generic communication architecture based on the cube architecture is the last topic. A wide range of configurations of the generic communication architecture (so called fat cube) is established by changing a number of processors in cube nodes or a multiplicity of edges. Thanks to this variability a number of dimensions can be lower and physical implementation can be simpler then with the traditional cube. Four possible models of routers have been introduced in the thesis, price relations of particular fat cube configurations have been derived and known results about a number of steps in group communications on the classical cube have been modified for the fat cube. The presented analysis will allow selection of the optimal fat cube interconnection depending on communication times and cost. Achieved results and elaborated modeling technique can assert themselves in multiprocessor systems with distributed or shared memory in the applications running on considered generic architectures/algorithms.
  • 4. 4 Poděkování Tato práce vznikla v letech 2001 – 2004 na Ústavu počítačových systémů Fakulty Informačních technologií Vysokého učení technického v Brně. Děkuji svému školiteli, Prof. Ing. Václavu Dvořákovi, DrSc., za trpělivé vedení během mého studia, za cenné rady, připomínky a komentáře k mé práci. Tato práce vznikla za podpory Grantové agentury České republiky (projekt 102/02/0503 Predikce a ladění paralelní výkonnosti) a Ministerstva školství, mládeže a tělovýchovy (výzkumný záměr J22/98: 262200012 Výzkum informačních a řídicích systémů). Tato práce byla oceněna Fórem průmyslu a vysokých škol ČR a firmou Siemens Cenou Siemens – stipendijní podporou pro doktorandy za 2003, dále programovým výborem pracovního semináře pro studenty doktorského studia „Počítačové architektury & diagnostiky“ PAD 2003 cenou Prof. Ing. Jana Hlavičky, DrSc. za vynikající příspěvek. Děkuji svým kolegům, studentům doktorského studia, za plodné debaty, které byly přínosem mému studiu a práci. V neposlední řadě děkuji své rodině za morální i finanční podporu během mého studia, bez níž by vznik této práce byl nemyslitelný. Vladimír Kutálek Brno, duben 2005
  • 5. 5 Věnováno Antonínovi Kutálkovi 18.2.1971 – 18.5.2002 mému bratrovi, in memoriam
  • 6. 6 Obsah 1. ÚVOD ..............................................................................................................11 1.1 Motivace ..............................................................................................................................................11 1.2 Vývoj technologií ................................................................................................................................11 1.3 Cíle disertační práce...........................................................................................................................12 1.4 Organizace disertační práce ..............................................................................................................12 2. SOUČASNÝ STAV PROBLEMATIKY ............................................................15 2.1 Paralelní zpracování...........................................................................................................................15 2.1.1 Základní pojmy ................................................................................................................................15 2.1.2 Režie paralelního zpracování ...........................................................................................................16 2.1.3 Jazyky pro simulaci a modelování paralelních systémů...................................................................16 2.1.4 Profilace a ladění výkonnosti...........................................................................................................17 2.2 Komunikační architektury ................................................................................................................18 2.2.1 Parametry propojovacích sítí............................................................................................................18 2.2.2 Architektura výpočetního uzlu.........................................................................................................20 2.2.2.1 Počet současně použitelných komunikujících portů................................................................20 2.2.2.2 Typ provozu na linkách...........................................................................................................20 2.2.2.3 Možnosti manipulace s pakety – kombinující a nekombinující model....................................20 2.2.3 Skupinové a párové komunikace .....................................................................................................20 2.2.4 Ukazatele hodnotící komunikační složitost......................................................................................22 2.2.5 Přepínací techniky............................................................................................................................23 2.2.5.1 Přepínaní kanálů......................................................................................................................23 2.2.5.2 Paketové přepínání ..................................................................................................................24 2.2.5.3 Červí přepínání........................................................................................................................24 2.2.5.4 Průřezové přepínání.................................................................................................................25 2.2.6 Zablokování při komunikaci ............................................................................................................25 2.3 Skupinové komunikace na krychli....................................................................................................26 2.3.1 Spodní meze.....................................................................................................................................26 2.3.2 Komunikace OAB............................................................................................................................27 2.3.3 Komunikace OAS ............................................................................................................................28 2.3.3.1 Nekombinující model..............................................................................................................28 2.3.3.2 Kombinující model..................................................................................................................29 2.3.4 Komunikace AAB............................................................................................................................29 2.3.4.1 Kombinující model..................................................................................................................29 2.3.4.2 Nekombinující model..............................................................................................................30 2.3.5 Komunikace AAS ............................................................................................................................30 2.3.5.1 Kombinující model..................................................................................................................30 2.3.5.2 Nekombinující model..............................................................................................................30 3. GENERICKÉ ARCHITEKTURY ......................................................................31 3.1 SMP s víceprotokolovým řadičem vyrovnávací paměti..................................................................31 3.1.1 SMP a koherence vyrovnávacích pamětí .........................................................................................31 3.1.2 Princip víceprotokolového řadiče ....................................................................................................32 3.1.3 Protokoly MESI a Dragon................................................................................................................32 3.1.4 Model sdílené paměti v Transimu....................................................................................................33
  • 7. 7 3.1.5 Model víceprotokolového řadiče v Transimu ..................................................................................34 3.1.6 Výsledky simulací jednoduchého paralelního výkonnostního testu ................................................36 3.2 Zřetězená procesorová farma............................................................................................................37 3.2.1 Motivace...........................................................................................................................................37 3.2.2 Klasická lineární farma ....................................................................................................................38 3.2.3 Zřetězená linka.................................................................................................................................38 3.2.4 Smíšená architektura........................................................................................................................38 3.2.5 Případová studie – desátá mocnina matice.......................................................................................39 3.2.6 Případová studie – abstraktní úlohy.................................................................................................40 3.2.7 Model zřetězené procesorové farmy ................................................................................................40 3.2.8 Výsledky simulací............................................................................................................................41 3.2.9 Výhody a nevýhody zřetězené procesorové farmy ..........................................................................44 3.3 Rozděl a panuj ....................................................................................................................................44 3.3.1 Motivace...........................................................................................................................................44 3.3.2 Sekvenční algoritmus D&C .............................................................................................................45 3.3.3 Paralelizace algoritmu D&C ............................................................................................................46 3.3.4 Modelování algoritmu D&C v Transimu.........................................................................................47 3.3.5 Simulace paralelní implementace D&C algoritmu 1D FFT.............................................................48 3.3.6 Přínos simulace algoritmů D&C implementované v Transimu........................................................49 4. GENERICKÁ KOMUNIKAČNÍ ARCHITEKTURA „TLUSTÁ KRYCHLE“ ......51 4.1 Základní vlastnosti tlusté krychle .....................................................................................................51 4.1.1 Počet současně použitelných komunikujících portů ........................................................................54 4.1.2 Cenová kriteria.................................................................................................................................56 4.2 Modely tlusté krychle.........................................................................................................................58 4.2.1 Meze τ(OAB) na tlusté krychli ........................................................................................................59 4.2.2 Meze τ(OAS) na tlusté krychli.........................................................................................................59 4.2.3 Meze τ(AAB) na tlusté krychli ........................................................................................................60 4.2.4 Meze τ(AAS) na tlusté krychli.........................................................................................................60 4.3 Důkazy.................................................................................................................................................61 Důkaz 1. Počet vnějších linek mezi úrovní i a i + 1 v tlusté krychli..................................................61 Důkaz 2. Existence Hamiltonovské kružnice v tlusté krychli ............................................................62 Důkaz 3. Existence kostry z d vzájemně disjunktních podstromů .....................................................62 Důkaz 4. Komunikační práce při komunikaci OAS...........................................................................63 Důkaz 5. Dualita GC AOG a GC OAS ..............................................................................................63 Důkaz 6. Počet komunikačních kroků OAB na jednoportové tlusté krychli......................................63 Důkaz 7. Postačující podmínka pro dosažení τOAB na modelu SAF d, f = 1 ......................................64 Důkaz 8. Dvě hodnoty dolní meze τOAB na modelu SAF d (b)...........................................................64 Důkaz 9. Horní meze počtu kroků GC OAB u modelů SAF d (b).....................................................66 Důkaz 10. Počet kroků OAS (AAS) a OAB (AAB) na modelu C.......................................................66 Důkaz 11. Spodní mez počtu kroků GC OAS na modelu SAF NC d ..................................................66 Důkaz 12. Spodní mez počtu kroků GC OAS na modelu NC * (f = 1) ...............................................66 Důkaz 13. Dosažitelnost spodní meze počtu kroků GC AAB na modelu SAF NC d FD ....................67 Důkaz 14. Dosažitelnost spodní meze počtu kroků GC AAB na modelu SAF NC * FD f = 1............68 Důkaz 15. Dosažitelnost spodní meze počtu kroků GC AAB na modelu SAF C 1 FD.......................68 Důkaz 16. Horní meze počtu kroků τAAS na modelu SAF NC 1 FD ....................................................69 Důkaz 17. Horní meze počtu kroků τAAS na modelu SAF NC d FD ....................................................70 Důkaz 18. Počet kroků GC AAS na modelu SAF NC * FD ................................................................71 4.4 Grafy závislostí τx a Cs na P a m .......................................................................................................71 4.4.1 Skupinová komunikace OAB...........................................................................................................71 4.4.2 Skupinová komunikace OAS...........................................................................................................74 4.4.3 Skupinová komunikace AAB...........................................................................................................77
  • 8. 8 4.4.4 Skupinová komunikace AAS...........................................................................................................77 4.5 Metodika a nástroj CARE.................................................................................................................80 4.5.1 Metodika (aneb obecný postup řešení) ............................................................................................80 4.5.2 Nástroj CARE ..................................................................................................................................80 4.5.3 Návrh komunikační architektury pro čtyřvrstvou umělou neuronovou síť......................................82 4.5.4 Zhodnocení ......................................................................................................................................83 4.6 Tlustá krychle s osmi procesory........................................................................................................83 4.6.1 Skupinové komunikace na osmiprocesorové SAF tlusté krychli.....................................................83 4.6.2 Skupinová komunikace OAB...........................................................................................................84 4.6.3 Skupinová komunikace OAS...........................................................................................................84 4.6.4 Skupinová komunikace AAB...........................................................................................................85 4.6.5 Skupinová komunikace AAS...........................................................................................................87 4.7 Shrnutí výsledků.................................................................................................................................89 5. PŘÍPADOVÁ STUDIE .....................................................................................93 5.1 Waveletová transformace ..................................................................................................................93 5.2 Paralelní 2D waveletová transformace.............................................................................................94 5.3 Predikce výkonnosti waveletové transformace................................................................................94 5.4 Zhodnocení..........................................................................................................................................98 6. ZÁVĚR.............................................................................................................99 6.1 Shrnutí.................................................................................................................................................99 6.2 Zhodnocení........................................................................................................................................100 6.3 Možná rozšíření práce......................................................................................................................100 LITERATURA..........................................................................................................101 1. Vlastní literatura...................................................................................................................................101 2. Literatura ostatních autorů .................................................................................................................101 SEZNAM NEJČASTĚJI POUŽÍVANÝCH ANGLICKÝCH ZKRATEK.....................107 SEZNAM NEJČASTĚJI POUŽÍVANÝCH SYMBOLŮ.............................................108
  • 9. 9 Seznam obrázků Obrázek 1 Vnitřní struktura paralelního počítače ..........................................................................19 Obrázek 2 Schémata skupinových komunikací..............................................................................21 Obrázek 3 Komunikační zpoždění .................................................................................................23 Obrázek 4 Přepínání kanálů ...........................................................................................................23 Obrázek 5 Paketové přepínání........................................................................................................24 Obrázek 6 Červí přepínání a) celá cesta volná b) poslední část cesty je blokována po dva takty..24 Obrázek 7 Průřezové přepínání se zablokováním po dva kroky mezi C a D .................................25 Obrázek 8 Virtuální kanály v jednosměrné kružnici......................................................................26 Obrázek 9 Binomiální kostra (a) v jednoportové Q3 (b) ve výstupně všeportové Q3 ...................27 Obrázek 10 Dvoukrokový algoritmus dvojitého stromu ve všeportové 4D krychli WH...............28 Obrázek 11 Graf stavových přechodů v MESI protokolu..............................................................32 Obrázek 12 Graf stavových přechodů v Dragon protokolu............................................................33 Obrázek 13 Graf procesů víceprotokolového CC řadiče................................................................34 Obrázek 14 Závislost doby trvání 1000krát provedené bariéry na počtu procesorů a na kombinaci protokolů pro proměnné Barcnt a Flag. (I/U znamená MESI (Invalidate) pro proměnnou Barcnt a Dragon (Update) protokol pro proměnnou Flag)................................................37 Obrázek 15 Příklad konfigurace zřetězené procesorové farmy (5,2,3) ..........................................39 Obrázek 16 Zjednodušený model prvního stupně zřetězené procesorové farmy s pěti procesory.40 Obrázek 17 Zahlcení farmy při různé celkové výpočetní práci......................................................41 Obrázek 18 Závislost času na počtu procesorů pro poměr výpočetní práce úlohy 27 150 49 .......42 Obrázek 19 Závislost času na počtu procesorů při změně výpočetní práce úlohy.........................43 Obrázek 20 Závislost zrychlení na počtu procesorů při změně výpočetní náročnosti úlohy .........43 Obrázek 21 Porovnání sekvenčního a paralelního řešení principu Rozděl a panuj........................45 Obrázek 22 Příklady umístění procesů na procesory .....................................................................47 Obrázek 23 Umístění procesů na procesory – MP .........................................................................47 Obrázek 24 Umístění procesů na procesory – SM .........................................................................48 Obrázek 25 Srovnání MP a SM architektur o dvou nebo čtyřech procesorech..............................49 Obrázek 26 Příklady propojovacích sítí „tlusté krychle“...............................................................52 Obrázek 27 Souběžná komunikace z/do jednoho procesoru na tlusté krychli m = 2, d = 2, f = 1.54 Obrázek 28 Počty linek mezi jednotlivými úrovněmi, počty linek z uzlů .....................................61 Obrázek 29 Porovnání maximálních hodnot m pro dosažení horní nebo spodní meze rovné D....65 Obrázek 30 Grafické znázornění architektur (f, m, d) = (1, 2, 2) a (1, 2, 1) ..................................68 Obrázek 31 Horní mez počtu kroků GC OAB pro model f = 1, WH, 1, C, HD ............................72 Obrázek 32 Ceny směrovačů pro model f = 1, 1, HD ....................................................................72 Obrázek 33 Horní mez počtu kroků GC OAB pro model f = 1, SAF, d, NC, HD.........................73 Obrázek 34 Ceny směrovačů pro model f = 1, d, HD ....................................................................73 Obrázek 35 Horní mez počtu kroků GC OAB pro model f = 1, SAF, b, C, HD............................74 Obrázek 36 Horní mez počtu kroků GC OAS pro model f = 1, WH, 1, NC, HD..........................75 Obrázek 37 Horní mez počtu kroků GC OAS pro model f = 1, SAF, d, NC, HD .........................75 Obrázek 38 Horní mez počtu kroků GC OAS pro model f = 1, SAF, *, NC, HD .........................76 Obrázek 39 Ceny směrovačů pro model f = 1, *, HD ....................................................................76 Obrázek 40 Horní mez počtu kroků GC AAB pro model f = 1, SAF, d, NC, FD..........................77 Obrázek 41 Horní mez počtu kroků GC AAS pro model f = 1, SAF, 1, NC, FD..........................78 Obrázek 42 Horní mez počtu kroků GC AAS pro model f = 1, SAF, d, NC, FD..........................78 Obrázek 43 Horní mez počtu kroků GC AAS pro model f = m, SAF, d, NC, FD.........................79 Obrázek 44 Ceny směrovačů pro model f = m, d, FD....................................................................79 Obrázek 45 List „Zadání+Výsledky“.............................................................................................81 Obrázek 46 Umělá neuronová síť a umístění jejích neuronů na procesory....................................82 Obrázek 47 Schématicky znázorněná architektura tlusté krychle s osmi procesory......................83 Obrázek 48 Komunikace OAB na tlusté krychli NC HD...............................................................84 Obrázek 49 Komunikace OAS na tlusté krychli NC HD...............................................................85 Obrázek 50 Komunikace OAS na tlusté krychli C HD..................................................................85
  • 10. 10 Obrázek 51 Komunikace AAB na modelu NC b HD – OAB z procesorů sedm a osm.................86 Obrázek 52 Komunikace AAB na modelu NC d FD .....................................................................86 Obrázek 53 Komunikace AAB na modelech C..............................................................................87 Obrázek 54 Komunikace AAS na modelech NC FD – OAS z procesoru jedna ............................88 Obrázek 55 Komunikace AAS na modelu C 1 FD.........................................................................88 Obrázek 56 Komunikace AAS na modelu C d FD.........................................................................88 Obrázek 57 Závislost zrychlení na délce vstupu bez překrytí doby komunikace (loi=4, noc=4) ..96 Obrázek 58 Závislost zrychlení na délce vstupu s překrytím doby komunikace (loi=4, noc=4) ...97 Seznam tabulek Tabulka 1 Komunikační vlastnosti několika propojovaích sítí pro osm procesorů .......................19 Tabulka 2 Charakteristika skupinových komunikací .....................................................................21 Tabulka 3 Spodní meze počtu kroků τx a komunikační práce CW na krychli dimenze d..............27 Tabulka 4 Čas zpracování v μs pro dva, čtyři nebo osm procesorů, daný počet opakování (1.sloupec) a danou kombinaci invalidate (I) a update (U) protokolu použitého pro proměnnou BarCnt/Flag (I/I, I/U,U/I,U/U). Minimální hodnoty jsou zvýrazněny...................................................36 Tabulka 5 Výpočetní a komunikační vytížení tří stupňové linky při výpočtu desáté mocniny .....39 Tabulka 6 Simulace lineární farmy na třech různě náročných úlohách .........................................42 Tabulka 7 Zrychlení a efektivita několika konfigurací zřetězené procesorové farmy a klasické farmy pro segmenty 27, 150 a 49 časových jednotek; Pi (E1,E2,E3) – počet procesorů (efektivita) v jednotlivých stupních linky, E – celková efektivita, S – celkové zrychlení; PF, EF, SF – počet procesorů, celková efektivita, celkové zrychlení v klasické farmě...................................42 Tabulka 8 Závislost zrychlení a efektivita paralelní rekurzivní FFT na velikosti problému k.......49 Tabulka 9 Počet portů na jeden procesor .......................................................................................55 Tabulka 10 Ceny směrovačů v závislosti na použitém modelu......................................................56 Tabulka 11 Dimenze d' klasické krychle s vyšší cenou Cs než cena u tlusté krychle se stejným počtem procesorů...........................................................................................................................58 Tabulka 12 Spodní meze počtu kroků τAAB na modelech NC 1(b).................................................60 Tabulka 13 Disjunktní podstromy pro krychli s jedním a dvěma procesory v uzlu.......................63 Tabulka 14 Zadávání parametrů modelů........................................................................................80 Tabulka 15 Výsledné vlastnosti parametrů ....................................................................................81 Tabulka 16 Cena směrovačů a horní meze počtu kroků τOAB+AAB+AOG pro čtyřvrstvou ANN ........83 Tabulka 17 Souvislost barvy a typu linky s krokem, ve kterém se komunikace provede..............83 Tabulka 18 Vnoření kroků OAB do jedenácti kroků AAB............................................................86 Tabulka 19 Schéma komunikace AAB NC d FD...........................................................................86 Tabulka 20 Ověřené výsledky modelů tlusté krychle ....................................................................89 Tabulka 21 Výsledky týkající se skupinových komunikací na tlusté krychle................................89 Tabulka 22 τGC na tlusté SAF krychli NC m=2, d=2, f=1 (FC) a SAF krychli NC (C) .................90 Tabulka 23 τGC na tlusté SAF krychli C m=2, d=2, f=1 (FC) a SAF krychli C (C).......................90 Tabulka 24 Délky zpráv tlusté krychle C SAF s parametry m=2, d=2, f=1 (P=8).........................91 Tabulka 25 Závislost zrychlení na délce vstupu bez překrytí doby komunikace (loi=4, noc=4)...96 Tabulka 26 Nejlevnější modely v závislosti na dimenzi použité krychle ......................................97
  • 11. 11 1. Úvod 1.1 Motivace V posledních letech se aplikačně specifické procesory, architektury a systémy stávají rychle rostoucím segmentem trhu výpočetní techniky. Jsou oblastí velmi aktivního výzkumu a vývoje, jak v akademické sféře, tak v průmyslu. Dovolují totiž v mnoha aplikačních oblastech přizpůsobení návrhu zákazníkovi, jeho požadavkům na výkonnost, cenu a spotřebu energie. Takové systémy jsou umísťovány dokonce na jeden čip (SoC, System on Chip), vestavovány do jiných zařízení (od běžných spotřebičů, většiny tiskáren, automobilů, mobilů a příručních zařízení až po video hry a doplňky TV přijímačů), případně rekonfigurovány (Field Programmable SoC) s možností otevření kódu programovatelné logiky vývojářům (GOSPL, [GOS05]). Aplikačně specifické systémy vykazují velký rozsah výpočetních výkonů a primární cíl je splnit výkonnostní požadavky s minimální cenou, často i s minimálním příkonem. Tradiční mikroprocesory a signálové procesory nemohou nejnovější požadavky v tomto směru splnit. Podobná situace je i u obvodů ASIC, které nemají vlastnosti pro více funkčnost. Možným řešením jsou paralelní a distribuované zpracování a rekonfigurace. V mnoha případech je lepší použít několik malých výpočetních jednotek spíše než jednu velkou složitou CPU. V současnosti je již možné na jeden čip umístit větší svazky CPU (MSoC, multiprocessor SoC) s velkými lokálními pamětmi a vysokou propustností propojovacích linek (~1Gbyte/s) [JAW05]. S přenosem multiprocesorových systému na čip dochází k úpravám a inovacím technik známých z tradičních paralelních systémů. Pro určité typy zpracování (např. zpracování toků dat) se začínají objevovat jisté šablony architektur, jinými slovy generické architektury modifikovatelné pro konkrétní aplikace. Předložená práce nemá v žádném případě ambice zmapovat toto nesmírně široké pole; jejím námětem je modelování a analýza jen několika vybraných generických architektur aplikačně specifických multiprocesorových systémů na čipu. Cílem byl výkonnostně orientovaný návrh, případně volba cenově zajímavých propojení procesorů. Při tom vznikly i pomocné nástroje a techniky usnadňující vývoj konkrétních tříd systémů, použitelné i v širším kontextu. 1.2 Vývoj technologií Prvním důležitým technologickým krokem byl vývoj ASIC (Application Specific Integrated Circuit). ASIC umožňuje zrychlení určité konkrétní funkce či funkcí systému a je vhodný především pro mnohokráte se opakující výpočet. Problémem je nesnadná modifikace a cena výroby při malém počtu kusů, kdy převažuje cena masky. Proto se ASIC používá především pro značně rozšířené, výpočetně více náročné a hojné používané funkce, např. komprimace videa [DJR01], [REJ02]. Alternativním a levnějším řešením aplikačně specifických systémů je použít mnohem pružnější a snadněji modifikovatelnou architekturu, program běžící na univerzálním nebo signálovém procesoru (DSP – Digital Signal Processor) procesoru, přičemž výpočetně náročné funkce vedoucí k časové tísni jsou odsunuty do programovatelného pole FPGA [FUC97]. Daří se integrovat analogové, digitální či kombinované systémy vedle sebe [HVP02]. Systémy vzniklé z několika procesorů pro obecné použití od firem PACT [XPP05] nebo QuickSilver Technologies [QST05] jsou především určeny pro zpracování obrazu. Protože obvykle zpracování multimédií znamená zpracování toku dat v reálném čase, je ladění výkonnosti pro takové paralelní aplikace důležitou a aktivní výzkumnou oblastí. Posledním trendem se stávají adaptivní a rekonfigurovatelné architektury [XPP05], [RAP05], které, zdá se, umožňují nejlépe splnit všechny požadavky. Využití nacházejí především pro zpracování signálů. V dnešní době, kdy je vyžadovaná výkonnost na úrovni výkonnosti ASIC a množství standardů roste velice rychle (např. ze světa mobilních telekomunikací: CDMA, GSM, EDGE, GPRS,
  • 12. 12 UMTS), přičemž každý standard používá sadu více méně specializovaných operací, jsou rekonfigurovatelné systémy odpovědí na související problémy. Odpadá nákladný návrh jednoúčelových ASIC obvodů. Také při inovaci standardů je inovace (tj. rekonfigurace) obvodu velmi rychlá a umožňuje zavádět výrobky s nejnovějšími verzemi standardů, popř. novými technologiemi. Rekonfigurovatelný procesor se může použít samostatně nebo ve skupině procesorů jako programovatelný procesor výpočetně intenzivních operací. Oproti architekturám vykonávajících sekvenci instrukcí, se u rekonfigurovatelných systémů vykonává sekvence konfigurací. Na jedné konfiguraci se vykoná sekvence instrukcí a v průběhu výpočtu se mohou připravovat nutné kroky pro další rekonfiguraci, přitom právě nevyužívané oblasti čipu se mohou rekonfigurovat dopředu. Další pokročilé využití je multitasking, kdy lze vyměňovat úlohu běžící na obecném procesoru s tou, která běží na rekonfigurovatelném procesoru. 1.3 Cíle disertační práce Disertační práce je z názvu zaměřena na aplikačně specifické multiprocesorové systémy. Tradičně jsou multiprocesorové systémy děleny do dvou tříd – se sdílenou a distribuovanou pamětí a rovněž formulace cílů se týká obou těchto tříd. 1. Architektury se sdílenou pamětí. Klasický multiprocesor se sdílenou pamětí a sběrnicí a s koherentními vyrovnávacími pamětmi je výzkumně téměř uzavřen, ale při přenosu na čip a při tlaku na výkonnost může být u specifických aplikací výkonnost ještě zlepšena. Cílem bylo zjistit v tomto směru možnosti (rezervy) řadiče koherence. 2. Architektury s distribuovanou pamětí. Zde byla na základě známých šablon architektur (farmy a zřetězené linky) vytvořen model kombinované architektury „zřetězené farmy“. Cílem byl optimální návrh této struktury s ohledem na výkonnost a to s použitím simulace. 3. Algoritmické šablony – skeletony. Podobně jako architektury multiprocesorů bývají odvozovány z generických typů (šablon), i často se vyskytující algoritmy mají podobnou generickou formu. Před použitím takové algoritmické šablony (skeletonu) zajímá uživatele nejčastěji výkonnost, resp. dosažitelné zrychlení paralelního zpracování. Cílem bylo namodelovat typický, často se vyskytující algoritmický skeleton „Rozděl a panuj“ s možností predikce výkonnosti v architekturách s distribuovanou i sdílenou pamětí. 4. Generická komunikační architektura. Otázka propojení procesorů a komunikace nabývá na důležitosti, protože velmi významně ovlivnuje výkonnost paralelního systému. Vzhledem k velkému množství topologií propojovacích sítí, přepínacích technik a dalších parametrů komunikačních architektur bylo cílem zjistit pouze v případě jedné konkrétní topologie tlusté krychle možné úspory na HW směrovačů a případný dopad na výkonnost komunikačních algoritmů ve srovnání s topologií klasické krychle. 1.4 Organizace disertační práce Práce začíná přehledem důležitých pojmů vztahující se k paralelnímu zpracování (kapitola 2.1) a ke komunikačním architekturám (kapitola 2.2). Následují poznatky o skupinových komunikacích na krychli (kapitola 2.3) a to jak s paketovým přepínáním, tak i s červím přepínáním. Další kapitola je věnována ladění výkonnosti generických a rekonfigurovatelných architektur (kapitola 3). Zabýváme se zde možnostmi modifikovaného SMP s víceprotokolovým řadičem vyrovnávací paměti. (kapitola 3.1) a dále optimálním návrhem nové generické architektury – zřetězené procesorové farmy (kapitola 3.2). Také zde bude modelován skeleton rozděl a panuj pomocí statických komunikujících procesů Transimu (kapitola 3.3). Následuje kapitola o generické komunikační architektuře typu tlusté krychle (kapitola 4). Přes definice použitých pojmů a základní vlastnosti architektury tlusté krychle se dostaneme k vlastním modelům jednotlivých skupinových komunikací a vztahům mezi nimi (kapitola 4.2). Důkazy vět jsou pro přehlednost uvedeny zvlášť v kapitole 4.3. Kapitola 4.4 představuje výsledky analýzy časové složitosti skupinových komunikací a ceny různých konfigurací architektury, tabulky a grafy ceny
  • 13. 13 řešení i dosažitelné počty kroků pro jednotlivé skupinové komunikace. V kapitole 4.5 je popsána metodika a nástroj CARE na příkladu čtyřvrstvé umělé neuronové sítě. Kapitola 4.6 ukazuje příklady komunikací pro konkrétní počet procesorů, (dva procesory v uzlu, osm procesorů celkem) a to včetně popisu komunikace v jednotlivých krocích. Na případové studii, která analyzuje výkonnost waveletové transformace (kapitola 5), je tentokráte ukázána neskupinová komunikace na tlusté krychli, včetně úvah volby její konfigurace. V závěru jsou uvedeny dosažené výsledky a směr budoucího výzkumu.
  • 14. 14
  • 15. 15 2. Současný stav problematiky 2.1 Paralelní zpracování 2.1.1 Základní pojmy Teorie složitosti paralelních algoritmů pracuje s abstraktními modely paralelních počítačů (PRAM, BSP aj.) a s asymptotickými odhady zrychlení algoritmů (počet procesorů, velikost řešeného problému rostou nade všechny meze). Nebezpečí asymptotických odhadů (např. ))(( ngΟ , ))(( ngΘ ) je v tom, že obsahují skryté konstanty a že platí až od jisté počáteční hodnoty. V dalším se omezíme jen na základní pojmy potřebné dále. Časová složitost sekvenčního algoritmu, ST(n), je měřena čítáním instrukcí, výpočetních kroků či operací. Spodní mez časové složitosti, SL(n), nám udává nejhorší časovou složitost nejlepšího možného sekvenčního algoritmu. Někdy tuto spodní mez dokážeme odhadnout z počtu nutných načtení vstupních dat, označujeme ji pak jako triviální spodní mez. Horní mez časové složitosti řešení, SU(n), je nejhorší časová složitost nejrychlejšího známého sekvenčního algoritmu. Pokud spodní mez daného problému se rovná horní, pak známe optimální algoritmus pro řešený problém, nebo si to aspoň myslíme, pokud skutečná spodní mez je nižší. Pokud se meze nerovnají, máme nejlepší známý, ale zatím neoptimální algoritmus. V tomto případě neznáme nejlepší možný algoritmus anebo jsme chybně určili spodní mez algoritmu (je příliš nízká). Příkladem algoritmu, pro který neznáme optimální algoritmus je násobení čtvercových n×n matic. Triviální spodní mez je dána množstvím dat – n2 . Jednoduchá metoda vyžaduje n3 operací. Složitost Strassenova algoritmu [STV69] či algoritmu Winograda [CVS90] je někde mezi těmito dvěma milníky. Nicméně složitost těchto algoritmů je značná a zahrnuje vysoké skryté konstanty, které omezují jejich použití. V porovnání se sekvenčními algoritmy je situace u paralelních algoritmů složitější o závislost na počtu procesorů – P. Pro ujasnění terminologie zde uvedeme základní pojmy, jejich značení a vztahy. Práce paralelního algoritmu W(n, P) odpovídá počtu provedených operací. ),(21),( PnTPPPPnW +++= L , kde Pi je počet procesorů pracujících ve výpočetním kroku { }),(,,1 PnTi K∈ paralelního algoritmu. Zrychlení paralelního algoritmu, S(n,P), ),(/)(),( PnTnSUPnS = . Je zřejmé, že PPnS ≤),( . Efektivnost paralelního algoritmu, 1/),(),( ≤= PPnSPnE Škálovatelnost paralelního algoritmu, bez nároku na přesnou definici, je schopnost algoritmu zachovat si rozumnou efektivnost při měnícím se počtu procesorů nebo velikosti řešeného problému. Amdahlův zákon omezuje zrychlení v případě, že kód aplikace je ideálně paralelizovatelný až na jistou část fs, která se musí zpracovávat sekvenčně: ( )P f s s fPnS − +≤ 1 /1),( . Absolutně minimální paralelní čas Tmin je minimum funkce T(n, P). Tato funkce nemá minimum pro ∞→P , ale pro nějaké minTP . Pro minTP platí, že nárůst komunikační režie způsobený přidáním dalších procesorů je větší než nárůst práce, kterou jsou spolu schopny vykonat za čas Tmin. Cílem návrhu paralelního algoritmu je přiblížit se lineárnímu zrychlení rovnému počtu procesorů. V praxi se sice dosahuje zrychlení )(),( PPnS Θ= pro některé algoritmy, ale obvykle jen pro danou komunikační architekturu a nebo pro určitý interval počtu procesorů. Občas se v praxi setkáváme s pojmem „superlineární“ zrychlení, jenž nejčastěji dosáhneme díky některé specifické vlastnosti paralelní architektury. Např. algoritmus má superlineární zrychlení dosažené tím, že daný problém se vejde do daného typu paměti na paralelním počítači, ale na
  • 16. 16 jednoprocesorovém stroji do stejného typu paměti nikoliv. Ať už se jedná o vyrovnávací paměť či hlavní paměť. 2.1.2 Režie paralelního zpracování Zdroje degradace výkonnosti paralelních programů jsou různorodé, nejčastěji se jedná o: • Nemožnost rovnoměrně rozdělit práci mezi procesory na začátku úlohy v případě statického rozdělování práce, nebo nedokonalé vyvažování výpočetní zátěže mezi procesory v případě dynamického rozdělování práce. Sem patří i nedostatek práce pro daný počet procesorů, speciálně i případ Amdahlova modelu zátěže. • Režie synchronizace/komunikace. Doba komunikace představuje často největší část režie paralelního zpracování. Komunikační režie závisí na četnosti a velikosti zpráv. Také nutnost synchronizovat procesy zavádí časovou režii rostoucí výrazně s počtem procesů. • Režie paralelizace – oproti sekvenčnímu řešení problému jsou u paralelního řešení někdy nutné přídavné výpočty související např. s rozdělením dat. Způsoby jak snížit režii paralelního zpracování jsou zejména: • Zmenšení komunikační režie, především softwarové. Efektivní přenosová rychlost je výrazně menší než maximální a to především z důvodu SW přípravy komunikace. Pokud snížíme jen HW režii (obvykle zlomky mikrosekundy), nemá to praktický význam, dokud nesnížíme SW režii trvající desítky až stovky mikrosekund. • Rychlejší, širší komunikační linky, rychlejší protokoly, popř. použití jiné propojovací sítě architektury, což ale také má vliv na cenu. • U mnoha výpočtů je důležitá nejen volba přiměřeně velké zrnitosti úloh, ale také (celočíselná) dělitelnost počtu úloh nebo velikosti datové množiny úlohy počtem procesorů. • Překrývání komunikačních a výpočetních operací, tj. jestliže je to možné, zahájit komunikaci dříve než jsou skutečná data zapotřebí pro výpočet a v jejím průběhu provádět výpočet, který je na ní datově nezávislý. Na různých místech této práce byly použity především poslední tři metody. 2.1.3 Jazyky pro simulaci a modelování paralelních systémů Přibližné, ale rychlé simulace se používají na odhad vlastností výsledného produktu, především odhad výkonnosti. V jednodušších případech stačí odhad dle různých ad hoc heuristik a výpočtů, pokud je nutná větší přesnost, nastupuje analytický model. Predikce pak pomůže s rychlejším rozhodováním mezi mnoha možnými variantami návrhu. Pro rychlý a ekonomický, rozumí se konkurenceschopný, vývoj je nutný neustálý pokrok v oblasti testování a simulace. Z nejnovějších prací můžeme zmínit práce francouzské laboratoře TIMA. Je možné: • spojení dvou úrovní abstrakce (úroveň zpráv a ovladačů) v jedné simulaci s možností postupného snižování úrovně abstrakce u komunikačních kanálů [NYJ01] • spojení simulace HW a SW (OS) do jediné, přesnost je zajištěna použitím originálního kódu OS (95% veškerého kódu) [YNG02], [BYG02] • spojení simulace systému složeného ze tří odlišných částí, každá část je implementovaná v jiném simulačním jazyce, elektromechanická (Matlab), optická (C++) a řídicí (SystemC) [NMK02] Jednotlivé části [CBG02] systému se zapouzdřují pomocí „wraperů“, což pak umožňuje lehce otestovat různé typy stejné komponenty (např. dvouportová SDRAM paměť a jednoportová paměť SRAM [GMR02] nebo lze simulovat současně dvě různé komponenty (např. paměť a CPU [GLM02]),
  • 17. 17 přitom jsou komponenty automaticky generovány, což vše usnadňuje validaci návrhu a vlastní simulaci [NYB02]. Proto, aby tyto modely splnily svůj účel, musí se snadno generovat a být přitom dostatečně přesné a rychlé. Nejen z těchto důvodů existuje velké množství modelovacích či simulačních prostředí čí jazyků. Například srovnání hodnot získaných ze simulace v Transimu a běhu programu v OpenMP [LEO02], [OMP05] lze nalézt v [SDM02], rozdíl získaných naměřených časů výpočtu FFT je nejvýše 10–15 %. Transim [HAR99] – nástroj použitý v další části práce je primárně určen na modelování, simulaci a prototypování programů se zasíláním zpráv. Vstupem je soubor se třemi sekcemi, které definují architekturu, procesy i umístění procesů na procesory. Jeho výhodou je přizpůsobivost na požadavky přesnosti modelu, umožňuje velice rychle navrhnout model a v případě potřeby ho zpřesnit. Doba komunikace je simulována včetně možného překrytí s výpočtem. Doba výpočtu se simuluje odděleně od samotného výpočtu, výpočtové operace nepředstavují samy o sobě žádný výpočtový čas a je tak možné simulovat HW operace. Největší nevýhodou je omezení velikosti modelu, který je současná implementace schopna pojmout. Architektury se sdílenou pamětí a sběrnicí je možné s omezenou přesností simulovat, i když simulátor k tomuto účelu primárně určen nebyl. Největší výhodou je, že výstupem jsou přímo hodnoty dosažené efektivity, zrychlení a času běhu dané aplikace. Propojení komunikačními kanály je dáno implicitně z programu. VHDL [VHD05] – Moderní způsoby realizace číslicových systémů si vynutily způsob návrhu, který je nezávislý na realizační technice. To bylo hlavním důvodem vzniku jazyka pro popis obvodů HDL. VHDL umožňuje odsunout volbu implementační technologie (PLA, PLD, FPGA) až na samý závěr návrhu. Největší výhodou jazyka VHDL je jeho přirozená schopnost dekompozice problému. Celý obvod se navrhne pomocí popisu chování, pak se jednotlivé funkce dále zpřesňují pomocí knihovny funkcí, které jsou znovu popisem chováním, ale tentokrát už realističtěji vzhledem ke konečné implementaci. Již v této podobě, kdy úmyslně není specifikováno zapojení obvodu, je možné chování ve všech logických souvislostech simulovat a ověřit. Při tvorbě komplexních systémů je důležité, aby navržené obvody mohly být testovány. K tomuto účelu obsahuje VHDL prostředky, které umožňují návrh způsobu testování. Jazyk je velmi užitečný při hledání chyb, kterých se návrhář dopustil během návrhu a v konečné fázi umožňuje syntetizovat úspěšný návrh do zvolené architektury. SystemC [SYC05] – nyní častěji používaný jazyk pro simulace (viz např. [NYJ01], [YNG02], [BYG02]), umožňuje tvorbu přesných a podrobných modelů. Model je možné postupně zpřesňovat díky použitému objektovému přístupu. SystemC byl navržen jako náhrada za VHDL především proto, aby bylo možné jak SW tak HW popsat v jednom jazyce (C). Co se týká možností, je na tom podobně jako VHDL, ale existuje zatím méně nástrojů, znalostí a především zkušených návrhářů v tomto jazyce. Paralaxis [PAR05] – je jazyk typu Pascal/Modula. Byl spíše vyvinut pro datově paralelní algoritmy, kam patří úlohy z oblasti grafiky. Obdobně se definuje uspořádání procesorů spolu s jejich propojením pojmenovanými komunikačními kanály a procesy na nich umístěné. Návrh je velice rychlý a relativně jednoduchý, simulátor bohužel neinformuje o rychlosti či výkonnosti daného programu. XDS [XPP05] – je příklad komerčního vývojového nástroje, konkrétně pro rekonfigurovatelnou architekturu XPP. Jde o simulační a ladicí nástroj, jenž umožňuje krokování po jednotlivých taktech. 2.1.4 Profilace a ladění výkonnosti Profilace je množina metod určená k analýze kódu programu na vysoké úrovni abstrakce za účelem zlepšení výkonnosti. Přeložený kód je již optimalizovaný dle možností překladače. Hledá se způsob jak upravit algoritmus tak, aby běžel úsporněji (s menšími paměťovými nebo časovými nároky). Profilace může dát odpověď na otázky: 1. Co můžeme změnit v programu, aby se zlepšila jeho výkonnost? 2. Jaké prostředky program používá a v jakém množství?
  • 18. 18 3. Které úseky nejvíce používají daný prostředek? 4. V jakých případech se tyto úseky provádějí? Profilace umožňuje zjistit místa, která spotřebovávají nejvíce strojového času nebo jež jsou komunikačně či paměťově náročná apod. Program „profiler“ si ukládá statistiky o spuštěném programu a po překročení nastavených hodnot se detekují úzká místa (např. počet provedení daného instrukčního řádku či bloku příkazů). Některé práce využívají podobné metody k určení optimálního rozdělení procesů na procesory, např. v [BES98] se sleduje využití CPU, paměti RAM, DAC (digital- to-analog converters), dále čas běhu, cena implementace, plocha čipu(ů), to vše u procesorů se sdílenou pamětí. Dalším možným použitím je zjištění, že některé části úlohy se vyplatí provést k tomu vyhrazeném obvodě, protože se provádějí příliš často a stráví se s nimi nezanedbatelné množství času, např. úloha paralelní MergeSort, kdy vlastní řazení je provedeno v přídavném HW [LLP03]. Laditelný algoritmus je vlastně skupina algoritmů TtA ∈)( indexovaných množinou ladicích parametrů T, obsahující ladicí podmínky. Z podmínky ladění (původní i vyladěný algoritmus musí mít stejný výstup) vyplývá, že: TttxxAxA tt ∈∀∀= 1010 ,,),()( , kde t0, t1 jsou ladicí parametry a x je vstup, )(),( 10 xAxA tt výstupy. Problém ladění výkonnosti je najít optimální hodnoty ladicích parametrů pro daný algoritmus, tzn. najít t0 takové, že: TtxxATimexATime tt ∈∀∀≤ ,)),(())(( 0 , kde )(( xATime t je čas strávený spuštěním t-tého algoritmu At se vstupem x. Naneštěstí řešení této rovnice nemusí existovat, často řešení rovnice t0 závisí na vstupu x. Proto hledáme řešení funkce t0(x) takové, že: TtxxATimexATime txt ∈∀∀≤ ,)),(())(( )(0 . 2.2 Komunikační architektury Komunikace mezi procesory při paralelním řešení úlohy snižuje dosažitelné zrychlení oproti sekvenčnímu řešení, kde tato komunikace odpadá. Na komunikaci má vliv komunikační architektura (topologie sítě, přepínací techniky, vlastnosti linek, atd.) a směrovací strategie (algoritmus) [CHT96]. Propojení hraje důležitou roli pro určení celkové výkonnosti komunikace a tím i celého systému. V plně propojené síti je každý procesor propojen se zbývajícími procesory linkou. Což znamená, že v síti s P procesory má každý procesor P – 1 linek. Pro větší počet procesorů není plné propojení ekonomické a je nutné použít řídké propojení, kdy některé prvky spolu nejsou přímo propojeny. Doba komunikace je pak delší, je součtem času potřebného pro přenos přes použité linky. Obecně existuje několik použitelných cest a výběr jedné z těchto cest je úkolem směrovacích algoritmů. Směrovací algoritmy můžeme kromě jiného dělit na necitlivé a adaptivní. Zatímco necitlivé algoritmy vybírají cestu bez ohledu na momentální stav sítě, adaptivní algoritmy informaci o stavu sítě využívají. Dále se budeme zabývat jen podmnožinou necitlivých algoritmů, které volí vždy stejnou trasu od zdroje k cíli – deterministické algoritmy. 2.2.1 Parametry propojovacích sítí Parametry propojovacích sítí: • Počet portů na směrovač – cena směrovače se zvyšuje kvadraticky v závislosti na tomto parametru. • Počet směrovačů – cena architektury se zvyšuje lineárně v závislosti na tomto parametru. • Průměr sítě D – maximální počet kroků komunikace, při kterém je libovolný uzel dosažitelný z libovolného jiného uzlu. • Bisekční šířka b – množství linek, jejichž přerušením by se komunikační architektura rozdělila na dvě přibližně stejně velké části.
  • 19. 19 Tabulka 1 Komunikační vlastnosti několika propojovaích sítí pro osm procesorů b D Počet směrovačů Počet portů na směrovač Plné propojení 7 1 8 8 + 8 Omega 1 - 12 2 + 2 Krychle 3 3 8 4 + 4 Tlustá krychle 2 2 4 4 + 4 Octagon 3 2 8 4 + 4 AMP 3 2 8 5 + 5 Kružnice 2 4 8 3 + 3 Tabulka 1 [DKD03] udává parametry některých propojovacích sítí pro jednotný počet procesorů (osm). Na výkonnost programů spuštěných na paralelních strojích mají vliv parametry propojovací sítě. Žádoucí je: • Malý a konstantní stupeň uzlu – omezujeme se na malý počet bran směrovače z důvodu jejich ceny, s rostoucím počtem komunikačních bran roste cena směrovače kvadraticky. • Malý průměr sítě a malá průměrná vzdálenost uzlů je důležitá především u komunikace citlivé na vzdálenost, kdy teprve celá zpráva postupuje o uzel dále. • Symetrická propojovací síť umožní zjednodušení komunikačních algoritmů. Návrh komunikace, a to především skupinové s více zdroji nebo cíli, se výrazně zjednoduší, protože algoritmus pro jednotlivé uzly může být identický. • Škálovatelnost komunikační sítě. Je-li daná komunikační architektura definována pro jakýkoliv počet uzlů, řekneme, že je inkrementálně škálovatelná, a v opačném případě je částečně škálovatelná. • Velká bisekční šířka. Bisekční šířka je množství linek, jejichž přerušením by se komunikační architektura rozdělila na dvě přibližně stejně velké části. Velká bisekční šířka umožňuje efektivní implementaci skupinových komunikací všichni všem. • Vnořitelnost daného grafu do jiného. Komunikační graf paralelního algoritmu je třeba efektivně vnořit do grafu sítě. Obrázek 1 Vnitřní struktura paralelního počítače křížový přepínač vnější výstupní linky vnější vstupní linky vnitřní vstupní linky vnitřní výstupní linky procesor lokální paměťjiné funkční jednotky směrovač jednotka pro směrování a řešení kom. konfliktů
  • 20. 20 2.2.2 Architektura výpočetního uzlu Paralelní počítač se z našeho pohledu skládá ze standardního počítače rozšířeného o část specializovanou na komunikaci, směrovač. Směrovač se stará o vyřízení požadavků na komunikaci od přilehlého počítače, doručení zpráv k přilehlému počítači a také, bez ovlivnění výpočtu prováděného přilehlým procesorem, vyřizuje požadavky od sousedních směrovačů pro jiné sousední směrovače. Směrovač se skládá z křížového přepínače, jednotky pro směrování a řešení komunikačních konfliktů a několika vstupních a výstupních, vnějších a vnitřních linek, viz obrázek 1. Linka (port) obsahuje vyrovnávací paměti, fronty, a linkové řadiče, přes které je přepínač propojen na komunikační medium se sousedním směrovačem resp. s procesorem. Vnitřní linky slouží pro spojení přepínače s procesorem. 2.2.2.1 Počet současně použitelných komunikujících portů Výkonnost skupinové komunikace je značně ovlivněna modelem výpočetního uzlu. Podle počtu paralelně použitelných vnitřních kanálů rozlišujeme jednoportový, k-portový a všeportový procesor. Dle počtu paralelně použitelných vnějších kanálů rozlišujeme jednoportový a všeportový směrovač. Kombinací těchto dvou parametrů získáme tyto modely: • V jednoportovém modelu má procesor k dispozici pouze vstupní a výstupní kanál, a proto je v každém kroku schopen do sítě vložit jen jednu zprávu a jednu zprávu ze sítě převzít. Tento model je nejčastější a snadno realizovatelný. • V k-portovém modelu může procesor vložit či převzít právě k zpráv. • Ve výstupně všeportovém modelu je procesor jednoportový a směrovač všeportový. Tedy procesor může vyslat jednu zprávu, ale může ji vyslat na všechny porty směrovače a/nebo může přijmout jednu zprávu v jednom kroku. • Ve všeportovém modelu je počet vnitřních kanálů roven počtu vnějších kanálů směrovače a tak procesor dokáže plně zaměstnat všechny porty směrovače. 2.2.2.2 Typ provozu na linkách Pro skupinové komunikace, ve kterých každý procesor přijímá i vysílá (AAS, AAB) nebo alespoň jeden přepínač přijímá i vysílá po stejné lince, je důležitá volba režimu typu linky. Linka může být jednosměrná, simplexní, která umožňuje posílání dat jen jedním předem daným směrem, nebo obousměrná. Obousměrné linky můžeme rozdělit na ty, které umožňují současné vysílání i příjem (plně duplexní), a na ty, které to neumožňují (poloduplexní). 2.2.2.3 Možnosti manipulace s pakety – kombinující a nekombinující model V případě skupinových komunikací, které používají více různých zpráv, má vliv na dobu komunikace možnost (C – combining model) či nemožnost (NC – non-combining model) manipulace s pakety v uzlech (sloučení zpráv přijatých v předchozím kroku do jedné větší nebo naopak, z větší zprávy vyjmout část, která se jednou komunikační operací pošle dál). U nekombinujícího modelu jsou směrovače schopny zprávy pouze předat sousednímu uzlu či domácímu procesoru. Pokud se v komunikaci vyskytuje jen jediná zpráva (OAB, multicast), schopnost kombinování se nevyužije. 2.2.3 Skupinové a párové komunikace Komunikace mohou být skupinové nebo párové (point-to-point). Pro účely této práce považujeme za skupinovou komunikaci takovou, která se týká všech procesorů. Nezabývám se např. multicastem, který je předmětem prací [HOZ97], [MXE94], [PSK99] nebo [PVA97]. Na efektivitu řešení mají vliv i párové komunikace, ale jejich ladění je více svázáno s danou konkrétní úlohou. Omezení množství komunikace se stává rozhodujícím pro výslednou efektivitu a škálovatelnost úlohy. Pokud již jsme dosáhli, nebo si to aspoň myslíme, minimálního množství skupinových komunikací změnou algoritmu
  • 21. 21 či synchronizace, tak můžeme zvolit architekturu, na které danou úlohu spustíme. Pak nastupuje klasické rozhodování cena versus výkon. Dle způsobu komunikace, především dle množství různých/stejných zpráv a dle množství současně vysílajících/přijímajících procesorů rozlišujeme tyto skupinové komunikace (také viz tabulka 2 a obrázek 2): • OAB – One to All Broadcast – jeden procesor vysílá všem ostatním procesorům stejnou zprávu, která se ve směrovačích, kterými prochází, může rozhlašovat do více směrů. • OAS – One to All Scatter – jeden procesor vysílá všem ostatním procesorům různou zprávu. • AOG – All to One Gather – každý procesor (kromě jednoho) vysílá jednomu procesoru různou zprávu. • AAB – All to All Broadcast – každý procesor vysílá všem ostatním procesorům stejnou zprávu, která se ve směrovačích, kterými prochází, může rozhlašovat do více směrů. • AAS – All to All Scatter – každý procesor vysílá všem ostatním procesorům různou zprávu. • AOR – All to One Reduce – každý procesor (kromě jednoho) vysílá jednomu procesoru různou zprávu, která se ve směrovačích, kterými prochází, může redukovat s jinými zprávami, které jsou určeny pro tentýž procesor. • AAR – All to All Reduce – každý procesor vysílá všem ostatním procesorům stejnou zprávu, která se ve směrovačích, kterými prochází, může současně posílat do více kanálů a nebo redukovat s jinými zprávami, které jsou určeny pro tentýž procesor. Obrázek 2 Schémata skupinových komunikací Tabulka 2 Charakteristika skupinových komunikací OAB AOR OAS AOG AAB AAR AAS Celkový počet zpráv P – 1 P – 1 P – 1 P – 1 (P – 1)P (P – 1)P (P – 1)P Počet různých zpráv 1 P – 1 P – 1 P – 1 P P (P – 1)P Počet vysílacích CPU 1 P – 1 1 P – 1 P P P Počet přijímacích CPU P – 1 1 P – 1 1 P P P OAB OAS AOG AAB AAS AOR AAR
  • 22. 22 Jak je patrné z tabulky, složitost komunikací AOG a OAS se liší jen v počtu vysílacích/přijímacích procesorů, jejich průběh je navzájem inverzní. Důkaz o jejich stejné časové složitosti skupinových komunikací je známý, viz důkaz 5. Podobně jsou na tom operace OAB a AOR nebo AAB a AAR. Složitost těchto GC je obvykle stejná, liší se např. při nesouměrném portovém modelu, který v jednom kroku umožňuje vyslat více zpráv než přijmout (výstupně všeportový model, b-portový model). Z těchto důvodu se dále zabýváme pouze skupinovými komunikacemi OAB, OAS, AAB a AAS. Podobnosti mezi GC lze odvodit ze schémat, viz obrázek 2. Schémata reprezentují případ čtyř procesorů, z důvodu přehlednosti je každý z nich zobrazen dvakrát, jednou jako vysílající (nahoře), podruhé jako přijímající procesor (dole). Větvení cesty zprávy mimo procesor znamená replikaci (resp. redukci) informace během cesty v závislosti na topologii sítě. U AOR a AAR se během cesty mohou zprávy spolu kombinovat, čímž vznikne jiná zpráva o stejné velikosti nesoucí informaci obou původních. Kombinace se provádí nějakou asociativní operací (např. +, ×, max, min, AND, OR, XOR). I když čistě matematicky jsou tyto operace asociativní, po implementaci v počítači se asociativně nechovají. Např. u součtové operace a registru s pohyblivou čárkou o přesnosti čtyř platných cifer závisí, v jakém pořadí se sečtou tyto tři čísla: 1000; –1000; 0,001. Protože vlivem zaokrouhlení v registru je (1000 – 1000) + 0,001 = 0,001, ale v jiných případech (1000 + 0,001) – 1000 = (0,001 – 1000) + 1000 = 0. V praxi má sice registr více platných (binárních) cifer, ale to tento problém jen odsouvá do sčítání větších čísel s ještě menšími. V případě, že používáme takto rozdílná čísla a požadujeme stejné chování nezávislé na způsobu redukce zpráv nebo požadujeme přesný výsledek, musí být operace AOR (AAR) provedena jako AOG (AAB) s redukcí v cílovém uzlu. (Toto je nutné brát v úvahu při použití metodiky navržené v dalším, kdy v přípravné fázi zjišťujeme množství a typ GC použitých v programu.) 2.2.4 Ukazatele hodnotící komunikační složitost U sítí SAF se zavádí komunikační práce, CW, což je celkový počet využitých vnějších linek v průběhu komunikace. Nejdříve potřebné definice: Phit – (physical unit) Množství dat přenesené linkou za jeden takt, tj. nejmenší jednotka dat, kterou lze poslat. Flit – (flow-control unit) nejmenší množství dat, které lze přijmout, odmítnout, přesměrovat. Může se rovnat phitu, paketu nebo celé zprávě. Pro hodnocení komunikační složitosti se používají dva modely: • model konstantního času – nejjednodušší model, udává počet kroků s konstantním trváním, které jsou třeba pro vykonání komunikace, resp. počet startovních zpoždění. Spodní (horní) mez v tomto modelu budeme označovat τx (τx ), kde x = OAB, OAS apod. • model lineárního času – složitější model, ale můžeme docela přesně určit časovou složitost dané komunikace. Spodní (horní) mez v tomto modelu budeme označovat tx (G) (tx (G)), kde x je OAB, OAS apod. V modelu lineárního času bez ohledu na použitou přepínací techniku lze celkové zpoždění komunikace rozložit na několik částí: startovací (startup) zpoždění – ts, zpoždění při přenosu (move) po fyzické lince mezi uzly – tm, zpoždění směrovacího rozhodnutí o (route) – tr, zpoždění (switch) směrovače – tsw, viz obrázek 3, a zpoždění vyvolané blokováním (contention delay) cesty jiným paketem – tcd. Vzdálenost, na kterou se zpráva přenáší, vyjádřená v počtu využitých vnějších linek označujeme h. Kapitola 2.2.5 ukazuje způsob výpočtu celkového zpoždění v závislosti na přepínací technice. Startovací zpoždění ts představuje HW ale i SW zpoždění ve zdrojovém uzlu nezbytné pro přípravu odesílané zprávy. Toto zpoždění není často závislé na délce přenášených dat, protože se při těchto činnostech nepracuje s vlastními daty, ale ukazateli na ně. Zpoždění směrovacího rozhodnutí tr představuje zpoždění při budování směrovací cesty uvnitř daného směrovače. Zpoždění směrovače tsw představuje nutný čas na přenesení dat ze vstupu směrovače přes již nastavenou cestu na jeho výstup. Zpoždění vodičů tm a směrovače tsw, určují dobu taktu t1 při přenosu,
  • 23. 23 tj. dobu přenosu jednoho phitu. Jak, to záleží ale na tom, zda směrovač obsahuje bufery pouze na vstupu, nebo i na výstupu. Jsou-li bufery pouze na vstupu, je zpoždění mezi bufery v sousedních uzlech dáno součtem zpoždění tsw a tm, tj. t1 = tsw + tm. Je-li bufer i na výstupu směrovače, uplatní se větší ze dvou zpoždění a to mezi bufery v témže směrovači (tsw) nebo mezi bufery v sousedních směrovačích (tm), tj. t1 = max(tsw, tm). Serializační zpoždění souvisí s tím, že celá zpráva se nedá přenést po lince šířky W bitů v jednom taktu, nýbrž se musí serializovat, tj. přetransformovat do řady phitů. Je-li délka zprávy bez hlavičky L bitů, je toto zpoždění s = L/W taktů. Zpoždění vyvolané blokováním cesty tcd neuvažujeme, protože volíme způsob komunikace tak, aby k tomuto blokování nedocházelo. Obrázek 3 Komunikační zpoždění 2.2.5 Přepínací techniky Pro skupinové komunikace je důležitá přepínací technika použitá v propojovací síti paralelního počítače. V současné době můžeme rozlišit čtyři základní přepínací technika: ulož-pošli-dál nebo také paketové přepínání (SAF – store-and-forward), průřezové (VCT – virtual-cut-through), červí (WH – wormhole) a přepínání kanálů (CS – circuit switching) [DYN03], [HEP03]. 2.2.5.1 Přepínaní kanálů Technika CS používaná především v telefonních sítích realizuje přenos ve třech fázích: fáze zkonstruování cesty, přenosu zprávy a zrušení cesty. V první fázi putuje od zdroje k cíli žádost o nastavení cesty o délce a flitů, tato žádost obsahuje především cílovou adresu a cestou rezervuje kanály, kterými prochází. Po dosažení cílového uzlu je poslán zpět potvrzovací flit. Vlastní přenášení dat je obsah druhé fáze. Třetí fáze představuje poslání žádosti o zrušení cesty. Je-li žádost o nastavení cesty blokována a musí se čekat až bude kanál volný, jsou dosud rezervované kanály pro jiné nepřístupné. Základní zpoždění sítě (viz kóta na obrázek 4) je tedy [ ] 1))(1( stttatht swmrCS ++++= Zpoždění žádosti o nastavení cesty je ))(( swmr ttath ++ , potvrzení díky již nastavené cestě putuje za čas )( swm tth + . Z popisu vyplývá, že režie techniky CS je pro krátké zprávy značná. Obrázek 4 Přepínání kanálů R R R R SW HW zdroj tS cíl tm tsw (+tr) spoj 1 spoj h Linka 1 Linka 2 Linka 3
  • 24. 24 2.2.5.2 Paketové přepínání Technika SAF je citlivá na vzdálenost, využívá bufery na celý paket, někdy také označována jako paketové přepínání. U techniky SAF se paket začne přenášet z jednoho uzlu do dalšího teprve tehdy, až je k dispozici celý. Po průchodu směrovačem (za dobu tr + tsw) a linkou (tm) je třeba čekat celé serializační zpoždění (st1) na konec paketu, viz obrázek 5. Základní síťové zpoždění je tedy značně citlivé na vzdálenost h zdrojového a cílového uzlu: )( 1sttht dSAF += , kde td = tr + tsw + tm Obrázek 5 Paketové přepínání Proto je výhodné používat směrování přes nejmenší počet uzlů, nejlépe v sítích s malým průměrem. Technika SAF je výhodná pro krátké a časté zprávy, protože z celkové cesty je vždy obsazen jedním paketem nejvýše jeden kanál. 2.2.5.3 Červí přepínání Obrázek 6 Červí přepínání a) celá cesta volná b) poslední část cesty je blokována po dva takty Směrovače s WH přepínáním obsahují bufery s kapacitou jen na několik flitů, nikoliv na celý paket. Při komunikaci se nečeká až dorazí celý paket, směrovač pro něj nemá ani bufer, směrovač podle hlavičky určí kam paket poslat a začne jej ihned (přesněji po zpoždění td) přeposílat po flitech, viz obrázek 6 a). Když je další postup hlavičky zablokován (čeká na volný kanál), zpráva zamrzne ve A B C D Čas 1 paket = 4 flity 4t1 tsw + tr + tm A B C D Čas 1 paket = 4 flity a) A B C D Čas 1 paket = 4 flity b)
  • 25. 25 flitových buferech několika uzlů, viz obrázek 6 b). Kanály, které zpráva používá, zůstávají po dobu zablokování rezervované a nepoužitelné pro jiné zprávy. Základní síťové zpoždění je: 1sttht dWH += , kde opět td = tr + tsw + tm Přepínání WH je v paralelních počítačích nejpoužívanější vzhledem k nízké hodnotě základního síťového zpoždění a malé citlivosti na vzdálenost komunikujících uzlů. Malá velikost flitových buferů oproti paketovým dovoluje umístění celého směrovače na jeden čip, popřípadě i integraci směrovače s procesorem na jednom čipu. 2.2.5.4 Průřezové přepínání Směrovače s přepínáním VCT obsahují opět bufery s kapacitou na celý paket. Tato technika se snaží spojit výhody technik SAF a WH. Pokud je další postup hlavičky zablokován (čeká na volný kanál), tělo zprávy pokračuje, až se nasune do buferu před obsazeným kanálem, viz obrázek 7. A tak se postupně znovu uvolní předešlé kanály použité daným paketem. Tzn. pokud nedochází k čekání na volný kanál, průřezové přepínání se blíží k WH, viz obrázek 6 a) a základní síťové zpoždění je dáno vztahem 1sttht dCT += , kde opět td = tr + tsw + tm Toto síťové zpoždění je na vzdálenosti jen velmi málo závislé, protože pro každý přenos mezi směrovači se připočte jen malé zpoždění td. Při silném provozu v síti, kdy se na uvolnění téměř každé linky musí čekat, se technika VCT blíží technice SAF, viz obrázek 5. Obrázek 7 Průřezové přepínání se zablokováním po dva kroky mezi C a D 2.2.6 Zablokování při komunikaci V propojovací síti se vyskytuje zablokování, když pakety v síti obsadí řadu buferů a příslušné kanály tvoří smyčku. Zablokování komunikace způsobí zastavení výpočtu. Zablokování se můžeme vyhnout způsobem komunikace např. u přepínání SAF a topologii krychle využijeme dimenzionálně uspořádané minimální směrování. Nebo lze vznik uváznutí tolerovat, ale s mechanismem jeho detekce a zotavení. Způsob zablokování, způsob jeho potlačení (detekce, prevence) a frekvence zablokování mimo jiné závisí i na použitém přepínání. Zablokování při přepínání SAF a VCT vzniká zaplněním front na všech výstupních kanálech pakety, které také nemohou postoupit. Přepínání WH je k zablokování náchylnější. Datové flity musí putovat cestou rezervovanou hlavičkovým flitem, nemohou použít jiné volné kanály k cíli. Nemůže-li zpráva z nějakého důvodu postupovat, je zmražena, roztažena přes několik uzlů a sekvence kanálů mezi nimi je i nadále rezervována, což může blokovat řadu dalších přenosů. Jak jsme již uvedli, nabízejí se dvě možná základní řešení: prevence a detekce. Tedy buď navrhneme komunikaci mezi uzly tak, aby k zablokování nemohlo dojít, nebo se smíříme s občasným výskytem zablokování, ale dokážeme ho úspěšně detekovat a zotavit se z něj. Pro adaptivní směrování A B C D Čas 1 paket = 4 flity
  • 26. 26 se vyžaduje acykličnost tzv. rozšířeného grafu závislostí, více viz [DUA95]. V této práci uvažujeme deterministické směrování a prevenci zablokování. Pro danou topologii sítě a deterministický směrovací algoritmus můžeme výskyt uváznutí zjistit pomocí tzv. grafu závislosti kanálů G(V, E), definovaného takto: – uzly grafu G jsou kanály propojovací sítě (skutečné nebo virtuální) – hrany grafu G jsou dvojice kanálů (ci, ck) takové, že paket je dle daného směrovacího algoritmu přeposílán z kanálu ci na kanál ck. Pokud je daný graf G acyklický, tehdy a jen tehdy příslušný směrovací algoritmus nevede k zablokování. Jedním ze způsobů jak řešit zablokování jsou virtuální kanály (VC – virtual channel). Pomáhají také zvýšit průchodnost především u WH přepínání tím, že se přes jednu fyzickou linku může simultánně přenést několik paketů z několika zdrojů a tím delší pakety zbytečně neprodlužují latenci krátkých. A nastavením pravidel jejich používání pomocí směrovacího algoritmu se můžeme vyhnout zablokování úplně. Např. jednosměrná kružnice složená ze tří uzlů s libovolným směrováním již obsahuje zablokování, protože graf závislosti kanálů tvoří cyklus. Pokud na jeden fyzický kanál budou multiplexovány dva virtuální kanály, vnější a vnitřní, můžeme zajistit nepřítomnost zablokování následujícím směrovacím algoritmem: Směrovací algoritmus (myid je index aktuálního uzlu) : je-li dst > myid, pošli zprávu vnějším kanálem (velká písmena); je-li dst < myid, pošli zprávu vnitřním kanálem (malá písmena); je-li dst = myid, je zpráva pro nás. Obrázek 8 Virtuální kanály v jednosměrné kružnici Graf závislosti kanálů je teď acyklický, viz obrázek 8. Všimněme si, že vždy dle tohoto algoritmu nepoužijeme dva virtuální kanály (kanál „a“ a „C“). Použití dvou VC pro odstranění zablokování lze zobecnit i pro jednosměrné kružnice s větším počtem uzlů, a použitím více VC odstraníme zablokování u více-dimenzionálních topologií, více například viz [NMK93]. 2.3 Skupinové komunikace na krychli 2.3.1 Spodní meze Počet kroků skupinové komunikace x na síti G (model SAF NC) je úměrný době komunikace a je důležitý parametr pro odhad výkonnosti. Budeme jej značit τ (x,G), kde x = OAB, OAS, …atd. τx(G) a τx (G) jsou dolní a horní mez τ (x,G). Pokud je G zřejmé z kontextu, nebudeme jej uvádět. Spodní meze počtu kroků τx a komunikační práci CW základních skupinových komunikací na krychli (všeportový plně duplexní SAF nekombinující model) udává tabulka 3. Existují algoritmy, které těchto spodních mezí dosahují, viz kapitola 4.2. A C B b c a 2 1 3 A B C a b c b) Graf závislosti kanálůa) Jednosměrná kružnice 2–3 1–2 3–1
  • 27. 27 Tabulka 3 Spodní meze počtu kroků τx a komunikační práce CW na krychli dimenze d komunikační vzor x τx CW(x) OAB d 2d – 1 AAB (2d – 1)/d 2d (2d – 1) OAS (2d – 1)/d d2d – 1 AAS 2d – 1 d22d – 1 V jednoportové WH síti G je vždy τOAB(G) = log|V(G)|. U všeportové k-regulární síti je spodní mez τOAB(G) = logk+1|V(G)|. Té je možné dosáhnout pouze, když každý informovaný uzel od okamžiku, kdy se dozvěděl informaci, až do konce, informuje v každém kroku k nových uzlů. Vymyslet takové schéma je obecně velmi obtížné. U červího směrování existuje řada možných HW realizací. Například u GC OAB je možné vytvořit tzv. úplný rozhlašovací strom, tzn. každý uzel každý přijatý flit současně posílá/kopíruje do několika dalších uzlů. V tomto případě by komunikace trvala pouhý jeden krok. Mnohem úspornější hardware by posílal zprávu/flity pouze do jednoho uzlu dle Hamiltonovy cesty. Ale nejběžnější realizace spoléhá na SW podporu, rozhlašování se provádí ve stromu. Tento způsob se používá i v této práci. 2.3.2 Komunikace OAB Pro tuto komunikaci nemá smysl uvažovat kombinování (kombinující model | nekombinující model), typ kanálů (simplexní | poloduplexní | plně duplexní). Dále nemá smysl všeportový procesor, proto dále budeme uvažovat jen výstupně všeportový model a jednoportový model. Obrázek 9 Binomiální kostra (a) v jednoportové Q3 (b) ve výstupně všeportové Q3 V jednoportovém modelu na krychli SAF můžeme užít schématu, kterému se říká d-úrovňová binomiální kostra, SBTd (spanning binomial tree), viz obrázek 9(a)(b). Tento algoritmus lze zobecnit na výstupně k-portový, kde počet kroků dosahuje spodní meze τOAB (Kn) = logk+1 P. Tato kostra má zřejmou rekurzivní strukturu: SBTd se skládá ze spodní SBTd-l a horní SBTd-1 s propojenými kořeny. Přívlastek binomiální je inspirován faktem, že počet uzlů ve vzdálenosti i od kořenu SBTd vyjadřuje kombinační číslo d nad i, které je dále značeno jako K(d, i). SBTd reprezentuje optimální (z hlediska komunikační práce) algoritmus bez ohledu na volbu modelu portu. Rozdíl je v rychlosti, jakým se informace šíří. Počet uzlů, které obdrží paket v kroku i je • 2i-1 v jednoportovém modelu • ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = i d idK ),( ve všeportovém modelu a) b)
  • 28. 28 Protože ∑ ∑= = − −=⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = d i d i di i d 1 1 1 122 , oba případy (jednoportový, všeportový model) jsou optimální z hlediska komunikační práce, tedy komunikační práce těchto skupinových komunikací je stejná a je rovna spodní mezi komunikační práce, viz tabulka 3. U všeportové WH krychle je spodní mez ⎡ ⎤)1log(/ += ddOABτ . Tato mez již není dosažitelná SAF algoritmem. Proto se používá obvykle kombinace dvou téměř optimalizovaných algoritmů. Algoritmus dvojitého stromu (DTA) [MCT93]: Základní myšlenka algoritmu DTA (Double Tree Algorithm) je poslat paket ze zdroje nejprve uzlu, který je v opačném rohu krychle vůči zdroji (jeho binární adresa je bitovým doplňkem adresy zdrojového uzlu) a paralelně d – 1 sousedům. Od druhého kroku pak tyto dva uzly budují proti sobě rostoucí binomiální kostry. Pro všeportovou krychli WH tak dosáhneme ⎡ ⎤2/dOAB =τ kroků, což je dokonce pro d < 7 optimální. Obrázek 10 Dvoukrokový algoritmus dvojitého stromu ve všeportové 4D krychli WH Ho-Kao-ův algoritmus (HKA) [HKA95]: Tento algoritmus je téměř optimální. Používá základní e-cube směrování s porovnáním bitů zleva doprava. Definujme jednoduchou dimenzionálně rostoucí cestu jako cestu jdoucí přes posloupnost sousedních uzlů u0,…,uk v d-krychli takových, že δ(uj-1,uj) = ij a dkdii k ≤−≤<<≤ ,1...0 1 . Platí, že všech k cest z uo do uj, kj ≤≤1 , indukovaných e-cube směrováním, je po dvojicích uzlově disjunktní. Z toho plyne, že uzel u0 může poslat k paketů všem k uzlům uj současně. Algoritmus HKA tedy postupuje tak, že zkonstruuje jednoduchou dimenzionálně rostoucí cestu u0,…,ud takovou, že 1. d-krychli lze rozdělit do d + 1 disjunktních podkrychlí Si, stejné dimenze nebo dimenze o jedničku větší. 2. Každá podkrychle Si obsahuje uzel ui. Po uzlově disjunktních cestách pošle zdroj u0 paket všem uj, dj ≤≤1 , najednou. Tento postup opakuje rekurzivně, dokud není d-krychle rozdělena do podkrychlí velikostí šest a uvnitř těchto podkrychlí je pak použit DTA. 2.3.3 Komunikace OAS Pro tuto komunikaci nemá smysl uvažovat typ kanálů, rychlost této GC je stejná jak na simplexním, poloduplexním tak i plně duplexním modelu. Algoritmy této GC mají na výstupně všeportovém modelu stejnou složitost jako na jednoportovém. Algoritmy používané pro SAF sítě můžeme beze změny použít i pro WH sítě, opačně to neplatí. 2.3.3.1 Nekombinující model V nekombinujícím modelu musí zdroj vyslat P – 1 paketů jako samostatné jednotky. Protože zdroj v jednoportovém modelu je schopen vyslat v každém kroku jen jednu zprávu, stačí nám najít Hamiltonovskou cestu, po které se pakety rozesílají metodou FF (further first – nejdříve vzdálenější)
  • 29. 29 prostým předáváním zpráv mezi sousedními uzly. Z výše uvedeného plyne, že spodní mez počtu kroků je P – 1. U všeportového modelu je spodní mez počtu kroků ⎡ ⎤dP /)1( − , kde d je stupeň zdrojového uzlu. Kostra pro OAS se skládá z d podstromů přibližně stejné velikostí a hloubce a opět se použije strategie FF. Obrázek 9 ukazuje příklad kostry krychle. Ve WH sítích na pořadí, v jakém jsou cíle vybírány, tolik nezáleží, dokonce i hloubka podstromů se může různit, ale cesty použité v jednom kroku by měly být hranově disjunktní a přibližně stejně dlouhé. Stačí rozdělit množinu uzlů do d disjunktních podmnožin, aby v každém kroku bylo možné vybrat d uzlů, které lze spojit se zdrojovým bezkonfliktními cestami. 2.3.3.2 Kombinující model Spodní mez počtu kroků je stejná jako u OAB, ale komunikační zpoždění se díky měnící se velikosti zpráv odlišuje. Délka zpráv se postupně snižuje. Využíváme binární zdvojování, tedy používáme binomiální kostru. Jak u jednoportového modelu tak všeportového, je komunikace s použitím kombinování pomalejší, protože komunikační linka je využita jen jedna na dané cestě od kořene kostry po list. Proto je lépe u GC OAS kombinování nepoužívat. WH všeportový model neuvažujeme, protože ani pro OAB není známo ideální řešení. 2.3.4 Komunikace AAB Komunikace AAB patří mezi náročnější a protože každý parametr modelu na ni má vliv. Dále jsou popsány pouze SAF modely. Algoritmy pro WH sítě jsou obvykle typu GS, tj. sekvence komunikací AOG a OAB. 2.3.4.1 Kombinující model 2.3.4.1.1 Všeportový model Plně duplexní kanály: To je nejrychlejší, ale na realizaci také nejnáročnější model. Triviální, ale ne příliš chytrý, je algoritmus záplavový: každý uzel v každém kroku zkombinuje zprávy ze všech směrů (včetně svého) a pošle tuto zprávu všemi směry. Počet kroků je optimální (průměr sítě), ale komunikační zpoždění je vysoké, protože dochází k velké duplikaci zpráv. Poloduplexní kanály: Obecný důležitý algoritmus je Soustřeď a rozešli (Gather-Scatter – GS). Kdy komunikaci AAB složíme z komunikací AOG a OAB. V jednom libovolném uzlu shromáždíme všechny zprávy (AOG) a v další fázi vyšle uzel tuto kombinovanou zprávu všem ostatním uzlům (OAB). Topologie, kterou lze silně zorientovat, má jednodušší řešení GC AAB. Silně zorientovat znamená přiřadit směr hranám tak, aby graf zůstal i po orientaci hran souvislý. D' označíme tento orientovaný průměr nově vzniklého grafu. Pokud platí D' < 2D, pak můžeme použít rychlejší algoritmus než GS – záplavový algoritmus ve směru zorientovaných hran. Problém zorientovaní hran grafu tak, aby průměr D' byl nejmenší možný, se nazývá manhattanský problém a patří do skupiny NP-úplných problémů. Optimální řešení, kdy D = D' existuje pro dostatečně rozsáhlé mřížky a toroidy. Pro krychli je tento problém vyřešen úplně. 2.3.4.1.2 Jednoportový model Poloduplexní kanály: Efektivní algoritmy jsou značně komplikované. Obecně ale zde také existuje metoda GS. Plně duplexní kanály: U krychle použijeme algoritmus výměny a to vždy po linkách v jedné dimenzi. Počet kroků je tedy stejný jako počet dimenzí, tedy d. Komunikační zpoždění je )12()2( 1 0 −+=+= ∑ − = dd i msm i sAAB stdtsttt .
  • 30. 30 2.3.4.2 Nekombinující model U nekombinujícího modelu je třeba doručit P různých vstupních paketů všem P – 1 uzlům. U jednoportového modelu je nejjednodušším řešením použití Hamiltonovské kružnice. Dále uvažujeme jen všeportový plně duplexní model. Spodní mez u AAB v síti G s P uzly a stupněm d je ⎡ ⎤dPGAAB /)1()( −=τ . Způsob řešení u krychle je použití časově hranově disjunktních koster (TADT – Time Arc-Disjoint Trees) [RJM93]. Hlavní myšlenkou je vytvořit z každého uzlu OAB kostru, každá z těchto koster je předpis jak dopravit v několika krocích paket do všech uzlů sítě. Všechny uzly začnou vysílat pakety současně dle svých koster, tj. v každém okamžiku jsou aktivní hrany kostry v nějaké vzdálenosti. Vytváření těchto koster se značně zjednoduší, pokud je topologie uzlově symetrická. Pak lze kostry odvodit z generické kostry. Algoritmus TADT aplikovaný na krychli je optimální algoritmus pro AAB všeportový model. 2.3.5 Komunikace AAS 2.3.5.1 Kombinující model Optimálním algoritmem pro SAF krychli je standardní výměna, počet kroků je d, v každé dimenzi (= kroku) každý uzel pošle P/2 paketů určených pro opačnou polovinu krychle a stejný počet paketů obdrží pro svou polovinu. Každý krok má stejnou komunikační složitost, celkový čas je )2( 1− += d msAAS sttdt . To vše je platné za předpokladu plně duplexních linek a jednoportového (nebo všeportového) modelu. Pokud ms stt ≥ , můžeme použít algoritmus „Standardní výměna“ pro WH krychli jako u modelu SAF. Pokud ms stt << je spodní mez 2/)12()2/()2/)12(2( −=−≥ d m ddd mAAS stddstt , této spodní mezi asymptoticky dosahuje algoritmus pro nekombinující WH model popsaný dále. 2.3.5.2 Nekombinující model Analýza nekombinujícího SAF d FD modelu byla provedena s dosažením dolní meze počtu kroků τAAS = τAAS = 2d – 1 = P / 2 [EDE91]. Algoritmus přímá výměna pracuje v nekombinujícím WH modelu, ale stejný se použije pro kombinující WH model. Algoritmus přímá výměna je posloupnost 2d – 1 permutací jXORxxj a:π , pro tyto permutace je dokázána bezkoliznost směrování v krychli, viz [TVR03]. Při realizaci jπ na WH krychli si každá dvojice uzlů vyměňuje své dva pakety a veškeré cesty jsou v daném kroku hranově disjunktní. Komunikační složitost je )2/)(12()( mds d dAAS stdttQt ++−= , z čehož plyne, že tento algoritmus je asymptoticky optimální za podmínky ms stt << .
  • 31. 31 3. Generické architektury U aplikačně specifických systémů se obecně očekává relativně snadný a rychlý návrh a vývoj. K tomu přispívá modularita, testovatelnost a opakovaná použitelnost již jednou navržených částí systémů. Dle požadavku na univerzálnost architektury, se kterou se pojí odpovídající cena architektury a rychlost řešení, můžeme rozeznat: • Univerzální architektury – používá se univerzální procesor, jenž pomocí softwaru dokáže zpracovat skoro libovolnou úlohu, zvyšování rychlosti je možné zvyšováním rychlosti procesoru. Konkurenční prostředí a požadavky uživatelů vyžadují kompatibilitu procesoru s předchozími typy. Protože se vyrábějí v obrovském množství, cena je nízká (např. Intel, AMD, UltraSparc, Alpha, PowerPC, Transmeta, nebo PIC, procesory řady 48, 51…). • Proprietární architektury – používají se pro daný typ úloh a jsou plně optimalizované na jejich rychlost. Kompatibilitu obvykle není nutné zajišťovat, jedná se o nejrychlejší, ale také obvykle i nejdražší řešení, protože malé množství kusů jedné architektury znamená větší cenu architektury, ale také vyšší náklady na programování. Pro snížení ceny architektur, které je potřeba vyrobit v malém množství, se používají programovatelné univerzální architektury (FPGA, PLA, PLD …). Obsáhnout jediným nástrojem, vývojovým prostředím, metodikou všechny možné systémy je (zatím) zhola nemožné. Proto se různé vývojové nástroje, prostředí zaměřují na více či méně obsáhlou skupinu úloh, problematik. Snahou je zkoumat takovou podmnožinu všech architektur, které jsou pokud možno pravidelné, rozšiřitelné (škálovatelné), snadno popsatelné, přizpůsobitelné řešené úloze, tj. které dokáží řešit mnoho úloh. Pokud tato podmnožina architektur tyto požadavky splňuje, obvykle je označujeme jako „generická architektura“. Generickou architekturou lze označit obecnou tlustou krychli, ale i „klasickou“ krychli, nebo zde zkoumanou architekturu „zřetězenou procesorovou farmu“. Beze sporu generickou architekturou jsou architektury se sdílenou pamětí, více či méně zobecněné. „Víceprotokolový řadič vyrovnávací paměti“ představuje hlavní část těchto architektur, část starající se o koherenci dat, navíc zobecněné pro použití více protokolů koherence. Princip „rozděl a panuj“ nepředstavuje sice reálnou architekturu, ale virtuální generickou architekturu. Toto označení si jistě zaslouží za to, že mnoho úloh je tímto principem možné (efektivně) řešit a naopak některé architektury dokáží vnořit tuto architekturu do své. „Vnořit tuto architekturu do své“, tím se rozumí schopnost procesy vznikající principem „rozděl a panuj“ vhodně umísťovat na procesory. 3.1 SMP s víceprotokolovým řadičem vyrovnávací paměti 3.1.1 SMP a koherence vyrovnávacích pamětí Symetrické multiprocesory se sdílenou pamětí (SMP) jsou v současnosti nejběžnější paralelní výpočetní platformou. Jedná se o paměť fyzicky centralizovanou do jednoho nebo více paměťových modulů a připojenou k procesorům nejčastěji sběrnicí, nověji často křížovým přepínačem. Každý procesor v této architektuře má přístup do celého sdíleného adresového prostoru a doba přístupu ke všem paměťovým místům je shodná (UMA, Uniform Memory Access). Využívají se v serverech, pracovních stanicích dokonce i v PC nebo v aplikačně specifických systémech a mohou být integrovány do jednoho čipu. Většina těchto systémů je založena na sběrnici s podporou koherence dat ve vyrovnávacích pamětech. Vyrovnávací paměti mohou redukovat přístupové zpoždění k paměti, ale celkový výsledek je značně ovlivněn způsobem manipulace s daty v konkrétní aplikaci. Nepečlivé programování vede k falešnému sdílení dat [COR00], které může degradovat výkon SMP pod výkon samostatného sekvenčního procesoru.