Classificatie van parallelle architecturen

advertisement
Parallelle
systemen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 1
overzicht


inleiding: wat is een parallel systeem, nood, toepassingen
parallelle systemen: architecturen
classificatie van parallelle architecturen
 parallelle architecturen die men op de markt aantreft
 supercomputers (= vector-computers)
 multiprocessoren
 multicomputers
 geavanceerde multiprocessoren: multi-threaded-architecturen
en NUMA-architecturen




parallelle systemen: software
granulariteit
performantie
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 2
Inleiding
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 3
Wat is een parallel systeem?


een verzameling van processing elementen die
samenwerken om een groot probleem snel op te lossen
belangrijke punten:
Resource allocatie:
 hoeveel elementen?
 hoe krachtig zijn de elementen?
 hoeveel geheugen ?
 Data toegang, communicatie en synchronisatie
 hoe communiceren en synchroniseren de elementen?
 hoe worden gegevens doorgegeven ?
 welke abstracties en primitieven worden gebruikt ?
 Performantie en schaalbaarheid
 hoe vertaalt zich dat in performantie ?
 is het schaleerbaar ?

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 4
Inevitability of Parallel Computing

Applicatievereisten: onverzadigbare nood aan rekenkracht



technologietendensen



aantal transistoren op een chip stijgt snel
kloksnelheid stijgt minder snel
architectuurtendensen



Scientific computing: CFD, biologie, scheikunde, natuurkunde, ...
General-purpose computing: video, graphics, CAD, databases, TP...
Instruction-level parallelism is waardevol maar beperkt
grover parallellisme, zoals in MPs, heeft de meeste toekomst
huidige tendensen:
microprocessoren
van vandaag ondersteunen multiprocessoren
 Servers en werkstations worden MP: Sun, SGI, DEC, COMPAQ!
microprocessoren van (over)morgen zijn multiprocessoren
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 5
Scientific Computing Demand
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 6
Engineering Computing Demand

grote parallelle machines steunpilaren in vele industries
Petroleum (reservoir analysis)
 Automotive (crash simulation, combustion efficiency)
 Luchtvaart (airflow analysis, motor efficiency, structural
mechanics, electromagnetism)
 Computer-aided design
 Farmaceutische industrie (molecular modeling)
 visualisatie


in al de domeinen hier boven vernoemd

entertainment (films zoals Toy Story)
architectuur (walk-throughs en weergave)
 Financial modeling (yield and derivative analysis)
 enz.

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 7
Applications: Speech and Image Processing
10 GIPS
1 GIPS
Telephone
Number
Recognition
100 M IPS
10 M IP S
1 M IPS
1980
200 Words
Isolated Sp eech
Recognition
Sub-Band
Speech Coding
1985
1,000 Words
Continuous
Speech
Recognition
ISDN-CD Stereo
Receiver
5,000 Words
Continuous
Speech
Recognition
HDTVReceiver
CIF Video
CELP
Speech Coding
Speaker
Veri¼cation
1990
1995
• Also CAD, Databases, . . .
• 100 processors gets you 10 years, 1000 gets you 20 !
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 8
Commercial Computing

steunt ook op parallellisme voor high end
individuele systemen niet zo groot
 maar gebruikt op grotere schaal



Databases, online-transaction processing, decision
support, data mining, data warehousing ...
TPC benchmarks
(TPC-C order entry, TPC-D decision support)
systemen kunnen groeien met grootte van bedrijf
 doorvoer wordt gebruikt om performantie te meten (transacties
per minuut of tpm)

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 9
TPC-C resultaten (maart 1996)
25,000






Throughput (tpmC)
20,000
Tandem Himalaya
DEC Alpha
SGI Pow erChallenge
HP P A
IBM Pow erPC
Other

15,000

10,000









5,000 










 

 


 













0 
0
20

40
60
80
100
120
Number of processors


Parallellisme is overal aanwezig
vooral klein tot middelgrootte schaal van parallellisme
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 10
samenvatting van applicatietendensen


wetenschappelijk en industriële computing is
gemigreerd naar parallel computing
in commercial computing is er grote vooruitgang
Database en transacties, en ook financies
 meestal kleinere schaal


vraag voor betere throughput op sequentiële workloads


grootste gebruik van kleine multiprocessoren
applicatienoden bestaan en zullen groter worden
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 11
Technologietendensen
Performance
100
Supercomputers
10
Mainframes
Microprocessors
Minicomputers
1
0.1
1965
1970
1975
1980
1985
1990
1995
The natural building block for multiprocessors is now also the fastest!
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 12
Phases in VLSI Generation
Bit-level parallelism
Instruction-level
Thread-level (?)
100,000,000

How good is
instruction-level
parallelism?
Thread-level
needed in
microprocessors
?

10,000,000






1,000,000


R10000




 










Pentium

Transistors


 i80386



i80286 
100,000


 R3000
 R2000

 i8086
10,000
 i8080
 i8008

 i4004
1,000
1970
Yolande Berbers
1975
1980
1985
1990
1995
Structuur en Organisatie van Computersystemen: deel 2
2000
2005
slide 13
Classificatie van
parallelle architecturen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 14
waarom een classificatie ?



een classificatie helpt begrijpen wat er reeds
verwezenlijkt is
een classificatie toont eventueel nieuwe mogelijkheden
een classificatie helpt bij het formuleren van modellen
van eigenschappen
bv. het modelleren van performantie: een classificatie
kan ons helpen begrijpen waarom bepaalde
architecturen performanter zijn dan andere
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 15
we behandelen hier 4 classificaties:




classificatie van Flynn (1972):
meest gekende classificatie, onvoldoende om alle
huidige architecturen goed in kaart te brengen
classificatie van Skillicorn (1988):
uitbreiding van de classificatie van Flynn
classificatie van Feng:
zegt iets over de graad van parallellisme dat bereikt is
classificatie naar sturing van bewerkingen:
zegt iets over architecturen die helemaal afstappen van
het Von Neumann model
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 16
Classificatie van Flynn


deze classificatie steunt erop dat parallellisme kan
ingevoerd worden zowel op het niveau van de
instructie-stroom als van de gegevensstroom
zo krijgt men de volgende architecturen:





SISD: single instruction stream - single data stream
 de klassieke monoprocessor
SIMD: single instruction stream - multiple data stream
 de array-processor (\(!= vector-processor !!!)
MISD: multiple instruction stream - single data stream
 komt niet voor
MIMD: multiple instruction stream - multiple data stream
 de multiprocessor en de multicomputer
zie figuren
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 17
typische karakteristieken van SIMD en MIMD
klok
toepassingen
parallellisme
controle
relatie
Yolande Berbers
SIMD
MIMD
synchroon
numeriek
impliciet
gecentraliseerd
meester/slaaf
asynchroon
formeel
expliciet
gedecentraliseerd
klant/server
Structuur en Organisatie van Computersystemen: deel 2
slide 18
Classificatie van Skillicorn

deze classificatie brengt niet alleen in kaart het aantal
instructie-processoren en data-processoren maar bekijkt
ook de verbindingen tussen:




de instructie- en de data-processoren
de instructie-processoren en de geheugenmodules met
instructies
de data-processoren en de geheugenmodules met data
de data-processoren onderling
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 19
Classificatie van Skillicorn (vervolg)

deze verbindingen kunnen de volgende vormen
aannemen:
geen: er zijn geen verbindingen tussen eenheden van de ene
soort en eenheden van de andere soort
 1-1 of n-n: één eenheid van de ene soort is verbonden met één
eenheid van de andere soort
 1-n: de enige eenheid van de ene soort is verbonden met elke
eenheid van de andere soort
 nxn: elke eenheid van de ene soort is verbonden met elke
eenheid van de andere soort


zie figuren
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 20
Classificatie van Feng


deze classificatie brengt in kaart de maximale graad van
parallellisme die bereikt wordt in computerarchitecturen: dit wordt gedefinieerd als het aantal bits
dat tegelijk behandeld wordt
dit wordt berekend door middel van twee assen:



op de horizontale as wordt de woordlengte van een
architectuur uitgezet
de verticale as geeft aan hoeveel bits van een zelfde positie in
een woord in parallel behandeld worden
– dit parallellisme kan bereikt worden
– zowel via pipelining
– als door middel van meerdere data-processoren
zie figuur
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 21
Classificatie naar sturing van bewerkingen

deze classificatie bekijkt hoe bepaald wordt welke
databewerkingen uitgevoerd worden

Von Neumann architecturen:
 een programma, dat duidelijk de volgorde van de
bewerkingen beschrijft, bepaalt de databewerkingen
 in de architectuur komt hier altijd een programma-teller
voor
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 22
Classificatie naar sturing van bewerkingen (vervolg)

data-flow architecturen:
 die bewerkingen waarvoor de input-gegevens reeds
beschikbaar zijn (van de invoer of van eerdere
berekeningen) kunnen uitgevoerd worden
 op elk moment zijn er meestal meerdere bewerkingen die
uitgevoerd kunnen worden in parallel
 het zijn de gegevens die de bewerkingen sturen
 aspecten van data-flow komen voor in moderne
monoprocessoren
(zie hoofdstuk 4: dynamisch schedulen van instructies)
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 23
Dataflow architecturen

voorstelling van programma als een grafe van
afhankelijkheden
Logische processor in elk knooppunt, wordt geactiveerd
door beschikbaarheid van operanden
 Message (tokens) met tag van volgende instructie wordt
verzonden naar volgende processor
 Tag wordt vergeleken met andere in matching store;
een match vuurt een uitvoering

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 24
Dataflow Architectures
1
a = (b +1)  (b  c)
d=ce
f = a d
b
c
e

+

d

Dataflow graph
a

Netw ork
f
Token
store
Program
store
Waiting
Matching
Instruction
fetch
Execute
Form
token
Netw ork
Token queue
Netw ork
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 25
Classificatie naar sturing van bewerkingen (vervolg)

reductie architecturen:
 die bewerkingen die nodig zijn om het resultaat te
berekenen zullen uitgevoerd worden
 op elk moment zijn er zo meestal meerdere bewerkingen
 in deze architectuur stuurt het gewenste resultaat de
bewerkingen
 de beschrijving is zeer functioneel
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 26
Types parallelle
architecturen die men
op de markt treft
klassieke modellen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 27
Supercomputers of vectorcomputers



VOORZICHTIG!!!
een vectorcomputer != een array-computer
zeer complexe machines, met een onregelmatige
structuur
proberen verhoogd parallellisme te bereiken door het
combineren van meerdere methodes:



vectorregisters en vectorinstructies
meerdere functionele eenheden (die elk niet alle instructies
kunnen uitvoeren) met een zware pipeline
door hun concentratie op vector-operaties lijken ze voor
een gebruiker erg op een array-processor
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 28
Supercomputers of vectorcomputers (vervolg)

vector processing: basis principes
vervang
DO 1 I=1,N
1 C(I) = A(I) + B(I)
(N scalaire optellingen)
 door
C(1:N) = A(1:N) + B(1:N)
(1 vector optelling)
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 29
Supercomputers of vectorcomputers (vervolg)

Yolande Berbers
uitvoeringstijd:
– eenvoudige kijk op de zaak
– Ts = N * t(+)
– Tv = N * (t(+)/r) + setup
(voor r stages)
– ook rekening houden met
– aantal in te lezen instructies
– aantal te decoderen instructies
– overhead van het beheren van de lus (nog eens N
integer optellingen, N vergelijkingen en N sprongen)
– inlezen van 1 vector gaat veel sneller dan N aparte
getallen inlezen (er zijn vector-registers)
Structuur en Organisatie van Computersystemen: deel 2
slide 30
Supercomputers of vectorcomputers (vervolg)

soorten operaties:
scalair (real, int, ...)
 rij van N scalairen
 unaire operaties:
– f1
V -> V
– f2
V -> S
 binaire operaties:
– f3
V x V -> V
– f4
V x S -> V

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 31
Supercomputers of vectorcomputers (vervolg)

velden van een vector-operatie
opcode
 voor operanden en resultaat:
 vector register of basis adres in het geheugen en increment
 vector lengte

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 32
Supercomputers of vectorcomputers (vervolg)

chaining
 doorsturen
van een resultaat van een vector-operatie naar een
andere vector-pipeline die op het resultaat een tweede
bewerking uitvoert
 voordeel: tweede maal is geen opstart tijd nodig; verder een
store en load minder





het parallellisme wordt meestal door de compiler toegevoegd
(voor de vector-operaties)
parallellisme wordt ook dynamisch toegevoegd door schedulen
van instructies op verschillende functionele eenheden
het gebruikte parallellisme is fijn
vb. : Cray
deze ideeën worden nu gebruikt in monoprocessoren
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 33
Raw Uniprocessor Performance: LINPACK
10,000
CRAY
 CRAY
 Micro
Micro
n = 1,000
n = 100
n = 1,000
n = 100

1,000

T94

LINPACK (MFLOPS)
C90



100




DEC 8200

Ymp

Xmp/416



 
 IBM Pow er2/990
MIPS R4400
Xmp/14se


DEC Alpha
 HP9000/735

 DEC Alpha AXP
 HP 9000/750
 CRAY 1s
 IBM RS6000/540
10

MIPS M/2000


MIPS M/120

Sun 4/260
1
1975
Yolande Berbers


1980
1985
1990
1995
Structuur en Organisatie van Computersystemen: deel 2
2000
slide 34
Multiprocessoren

multiprocessoren = MIMD-machine met gedeeld
geheugen
M1
...
M0
Mn
interconnectienetwerk



homogeen van structuur
P0
symmetrisch van structuur
P1
(alle knooppunten hebben gelijkaardige rol)
maken gebruik van standaard componenten


...
Pn
zijn daarom ook veel goedkoper dan een supercomputer
granulariteit van parallellisme :
middelmatig (niet ontzettend fijn, ook niet grof)
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 35
Multiprocessoren (vervolg)

lineaire versnelling wordt nooit bereikt
extra kost door synchronisatie
 extra kost door niet perfect gespreide belasting
 niet elk programma is 100% parallelliseerbaar


de architectuur kan niet zomaar uitgebreid worden naar
meer processoren: de bereikbaarheid van het geheugen
door alle processoren (via een bus bv.) is altijd een
bottleneck
daarom NUMA -architecturen: zie verder
 een lokale cache wordt soms voorzien om het bottleneckprobleem gedeeltelijk te verhelpen, maar de caches moeten
consistent gehouden worden

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 36
voor- en nadelen van multiprocessoren

voordelen
geen nieuw programmeringsmodel: gemakkelijk
 efficiënte communicatie: kopiëren niet nodig


nadelen
synchronisatie moeilijker dan via boodschappen
 is niet uitbreidbaar op grote schaal door onderlinge
strijd om het geheugen (memory contention)

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 37
Architectural Trends: Bus-based MPs

microcomputer op een chip maakt het gemakkelijk om
vele te verbinden met gedeeld geheugen


domineert de server en de ondernemingsmarkt, er is een
tendens naar omlaag, naar de desktop computers (krachtige
werkstations)
verzadiging van bus drijft deze technologie vooruit

orde van grote van bus-gebaseerde systemen van desktop tot
grote servers: zie volgende twee slides
Yolande Berbers No. of processors in fully configured
Structuur en
Organisatie
van Computersystemen:
commercial
shared-memory
systems deel 2
slide 38
Architectural Trends: Bus-based MPs
70
CRAY CS6400

Sun
E10000
60
Number of processors
50
40
SGI Challenge

30
Sequent B2100
Symmetry81


SE60



Sun E6000
SE70
Sun SC2000 
20
AS8400
 Sequent B8000
Symmetry21
SE10

10
Pow er 
SGI Pow erSeries 
0
1984
1986
 SC2000E
 SGI Pow erChallenge/XL
1988
SS690MP 140 
SS690MP 120 
1990
1992

SS1000 

 SE30
 SS1000E
AS2100  HP K400
 SS20
SS10 
1994
1996
 P-Pro
1998
Yolande Berbers No. of processors in fully configured
Structuur en
Organisatie
van Computersystemen:
commercial
shared-memory
systems deel 2
slide 39
Bus Bandwidth
100,000
Sun E10000

Shared bus bandwidth (MB/s)
10,000
SGI
 Sun E6000
Pow erCh
 AS8400
XL
 CS6400
SGI Challenge 

 HPK400
 SC2000E
 AS2100
 SC2000
 P-Pro
 SS1000E
SS1000
 SS20
SS690MP 120 
 SE70/SE30
SS10/ 
SS690MP 140
SE10/
1,000
SE60
Symmetry81/21
100

 SGI Pow erSeries

 Pow er
 Sequent B2100
Sequent
B8000
10
1984
Yolande Berbers
1986
1988
1990
1992
1994
1996
Structuur en Organisatie van Computersystemen: deel 2
1998
slide 40
Multicomputers


multicomputers
= MIMD-machine met gespreid geheugen
zijn ook homogeen van structuur
M0
P0
M1
P1
...
Mn
Pn
interconnectienetwerk
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 41
Multicomputers (vervolg)

zijn meestal niet symmetrisch, doordat de interconnectie
van de processoren meestal niet volledig is (niet alle
processoren zijn met alle processoren verbonden)



multicomputers maken gebruik van standaard
componenten


processoren kunnen dus "ver" of "dichtbij" zijn, men spreekt
ook eventueel van "buren"
de communicatie-kost is dan niet gelijk tussen elk willekeurig
paar knooppunten
ze zijn daarom ook veel goedkoper dan een supercomputer
granulariteit van parallellisme: grof
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 42
Multicomputers (vervolg)

spreiding van belasting is hier moeilijker dan bij
multiprocessoren omdat de code en de hele adresruimten
van processen lokaal zijn

de architectuur (afhankelijk van de interconnecties) kan
gemakkelijk uitgebreid worden tot zeer veel knooppunten
(MPP)

grote machines bieden vaak "space-sharing": meerdere
toepassingen kunnen in parallel lopen; elke toepassing
krijgt een fysisch afgebakend deel van de machine

door ‘distributed shared memory’ (DSM) kan men op
multicomputer werken zoals op multiprocessoren
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 43
voor- en nadelen van multicomputers

voordelen
processoren werken meestal met lokaal geheugen
 netwerk minder belast
 architectuur uitbreidbaar op grote schaal (MPP)
 geen ingewikkelde synchronisatie nodig


nadelen
belastingsspreiding is absoluut noodzakelijk
 communicatie met boodschappen: deadlock-gevaar

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 44
Raw Parallel Performance: LINPACK
10,000
 MPP peak
 CRAY peak
ASCI Red 
LINPACK (GFLOPS)
1,000
Paragon XP/S MP
(6768)

Paragon XP/S MP
(1024) 
 T3D
CM-5 
100
T932(32) 
Paragon XP/S
CM-200 
CM-2 
Ymp/832(8)
1

 C90(16)
Delta
10


 iPSC/860
 nCUBE/2(1024)
Xmp /416(4)
0.1
1985
1987
1989
1991
1993
1995
1996
• Even vector Crays became parallel: X-MP (2-4) Y-MP (8), C-90 (16), T94 (32)
• Since 1993, Cray produces MPPs too (T3D, T3E)
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 45
500 Fastest Computers
350
Number of systems
300 
187
110

106
100
0
11/93

63
11/94

 MPP
 PVP
 SMP
 198
150
50
Yolande Berbers
284

239

250
200
319
313
11/95
106


73
11/96
Structuur en Organisatie van Computersystemen: deel 2
slide 46
Types parallelle
architecturen die men
op de markt treft
geavanceerde modellen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 47
uitdaging



uitdaging: verhogen uitbreidbaarheid multiprocessoren
aangepast interconnectie netwerk
lokale caches voorzien
data in cache aanwezig: geen beroep op netwerk
 klassiek gebruik van lokaliteitprincipe
 probleem indien zelfde data in meerdere caches aanwezig is:
cachecoherentie-probleem


fysische implementatie zoals multicomputers
‘virtueel gedeeld geheugen’
of ‘gedistribueerd gedeeld geheugen’ (DSM)
 lokale geheugens zijn componenten van globale adresruimte

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 48
classificatie van DSM

Non-uniform Memory Access
machines

Cache-Coherent Non-Uniform
Memory Access machines

Cache-Only Memory Access
machines
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 49
P1
P0
...
M1
M0
Pn
Mn
interconnectienetwerk
P0
C0
P1
P0
C0
M0
...
M1
C1
...
Pn
Cn
interconnectienetwerk
Pn
C1
P1
Cn
Mn
interconnectienetwerk
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 50
problemen bij uitbreidbare computers

tolereren en verbergen van wachttijd
(a) bij het laden van niet-lokale gegevens
 (b) bij het synchroniseren tussen processen


mogelijke oplossingen voor (a)
caches
 prefetching


mogelijke oplossingen voor (a) en (b)

gebruik van threads en zeer snelle contextwisselingen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 51
Multi-Threaded Architecturen

basisprincipes

gebaseerd op uitvoeren van vele threads per node
 contextswitch
– is logisch gelijk aan de klassieke contextswitch
– moet veel sneller zijn dan wachten op
niet-lokale gegevens
– synchronisatie moet snel herkend worden
 threads hebben hele fijne granulariteit
 contextswitch is hardware ondersteund
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 52
multi-threaded architecturen

alternatieven voor verwezenlijking
bewerkingsmodel
 volledig von Neuman (control flow)
 hybride von Neuman / dataflow
 granulariteit
 heel fijn: meerdere threads delen de pipeline
– leunt meer aan bij dataflow
 minder fijn: slechts 1 thread voert uit
– leunt meer aan bij control flow

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 53
multi-threaded architecturen

alternatieven voor verwezenlijking (vervolg)
geheugenorganisatie
» gedeeld, NUMA, CC-NUMA
 aantal threads per processor
» klein (4-10), middelmatig (10-100), groot (>100)


voorbeelden
HEP, Tera, MIT Alewife (CC-NUMA): control flow
 *T, SAM, MIT Hybrid machine, EM-4: dataflow

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 54
Multicomputer MPP

kenmerken
processoren enkel toegang tot lokaal geheugen
 communicatie met boodschappen
 uitdaging tov communicatie:
 goede opsplitsing van probleem in processen
 goede verdeling van processen over knopen
 NP-compleet
 belastingspreiding is noodzakelijk


machines populair voor problemen die veel parallellisme
bevatten (MPP)
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 55
Multicomputer MPP

alternatieven voor verwezenlijking
interconnectienetwerk
» topologie, switching techniek, routeringsprotocol
» meerdere generaties
 knoop-organisatie
» processor + comm. co-processor + router
» meerdere generaties
 type processoren:
 bestaande of speciaal ontworpen processoren
 gewone of vectorprocessoren

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 56
Multicomputer MPP

alternatieven voor verwezenlijking (vervolg)


bewerkingsmodel
 conventioneel + communicatiebibliotheken
 CSP
 dataflow
voorbeelden
iPSC/1, iPSC/2, Ametek, Intel Paragon, IBM SP2,
Parsytec GC/PowerPlus, Transtech Paramid
 nCUBE, Meiko CS-2
 Transputer, Parsys Supernode, Parsytec Gigacube
 Caltech Mosaic 2, J-Machine

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 57
MIMD met gedeeld geheugen



alternatieven voor verwezenlijking
interconnecties
cache coherence
snoopy
 directory-schema
 hiërarchisch
 software-gebaseerd




synchronisatie
consistentiemodel
UMA, NUMA, CC-NUMA en COMA
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 58
alternatieven voor verwezenlijking

fysische organisatie van logisch gedeeld geheugen
fysisch gedeeld geheugen: UMA
 virtueel of gedistribueerd gedeeld geheugen (DSM):
» NUMA, CC-NUMA, COMA


interconnectienetwerk
gedeeld medium (single bus, multiple bus)
 switching netwerken (crossbar, multistage)


cache-coherence protocol
hardware-gebaseerd
 software-gebaseerd

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 59
interconnectienetwerken: bussen

enkelvoudige bus
elke knoop en elke geheugenmodule aan bus
 broadcast is eenvoudig
 eenvoudig, goedgekend, goedkoop
 gevaar voor verzadiging: daarom niet geschikt voor groot
systeem


meervoudige bus: 1-dimensionaal
meerdere bussen in parallel
 elke knoop en geheugenmodule aan elke bus

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 60
interconnectienetwerken: bussen

meervoudige bus: 2- of 3-dimensionaal
bussen zijn georganiseerd in een rooster
 verschillende manieren om knopen en
geheugenmodules aan bussen te hangen


hiërarchisch systeem
meerdere enkelvoudige bus-systemen (clusters)
 clusters verbonden door enkelvoudige bus
 recursief zijn meerdere niveaus mogelijk
 goedkoop

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 61
Voorbeeld van hiërarchisch systeem

Yolande Berbers
Sequent NUMA-Q 2000
Structuur en Organisatie van Computersystemen: deel 2
slide 62
interconnectienetwerken: switching

crossbar
gelijktijdige toegang mogelijk van elke processor met een
geheugenmodule (hoge bandbreedte)
 gebruikt zeer vele switchen, is dus zeer duur


multistage
compromis tussen enkelvoudige bus en crossbar
 variaties in kost, complexiteit, bandbreedte
 zeer veel verschillende soorten

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 63
Cache coherence

oorsprong van probleem
delen van wijzigbare gegevens (belangrijkst)
 procesmigratie
 in- en uitvoer


verschillende hardware protocols
afhankelijk van
memory update policy
 cache coherence policy
 interconnectieschema

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 64
cache coherence: algemeen

memory update policy
write-through policy (gulzig)
 bij write op cache wordt geheugen aangepast
 gebruikt veel bandbreedte
 erg nadelig bij geheugen dat niet gedeeld wordt
 write-back policy (lui)
 geheugenaanpassing later
 andere aanvraag voor zelfde blok: blok moet uit aangepaste
cache komen
 maakt cache controllers ingewikkelder

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 65
cache coherence: algemeen

cache coherence policy
write-update policy (gulzig)
 bij write worden alle copies aangepast
 gebruikt veel bandbreedte
 write-invalidate policy (lui)
 bij write worden de andere copies ongeldig

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 66
cache coherence: algemeen

interconnectieschema
broadcast mogelijk (enkelvoudige bus)
» snoopy cache protocol
 hiërarchisch bussysteem
» hiërarchisch cache coherence protocol
 multistage
» directory-schema’s
– volledige tabellen (full-map)
– beperkte tabellen (limited directories)
– gelinkte tabellen (chained directories)

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 67
snoopy cache protocol

basisprincipes (voor write-update)
mogelijke toestanden per blok in een cache
 exclusief en geldig
 gedeeld
 exclusief en vuil
 alle consistentiecommando’s worden ge-broadcast
 Read-Blk, Write-Blk, Update-Blk
 iedere processor ziet deze (snoops)
 eindige toestandsmachine beschrijft veranderingen in
toestand (zie volgende slide)

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 68
snoopy cache protocol (vervolg)
P-Read
P-Write
P-Read
P-Read
P-Read
P-Write
Read-Blk/Write-Blk
exclusief
gedeeld
Read-Blk
Write-Blk
Update-Blk
geldig
P-Write
Read-Blk/Write-Blk
P-Read, P-Write: opdrachten
gegeven vanuit eigen processor
exclusief
Read-Blk, Write-Blk, Update-Blk:
consistentiecommando’s die op
de bus verschijnen
Yolande Berbers
vuil
P-Read
P-Write
Structuur en Organisatie van Computersystemen: deel 2
slide 69
directory schema’s

basisprincipes
consistentie commando’s enkel gestuurd naar caches
waar een copie van blok zit
 bijhouden per blok hoofdgeheugen waar gecached is
 afhankelijk van organisatie van directory
 volledige tabel
 beperkte tabel
 gelinkte tabel
 maakt een verschil in
 geheugen nodig om directory bij het houden
 aantal consistentie commando’s nodig

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 70
directory schema’s (vervolg)

volledige tabel
directory wordt bijgehouden in gedeeld geheugen
 per blok: boolean per cache (blok in cache of niet)
 in elke cache: twee bits per blok
 geldig
 write-toelating


beperkte tabel
gebruikt minder geheugen
 logisch gezien gelijkaardig aan volledige tabel
 ipv bits: volledige pointers
 maximum aantal pointers voorzien

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 71
directory schema’s (vervolg)

gelinkte tabel
compromis tussen vorige twee:
 minder geheugen als volledige tabel
 heeft geen last als teveel pointers
 pointer maakt deel uit van blok in cache
 voorbeeld uitwerking:
 Scalable Coherent Interface (SCI)
IEEE standard 1992
 meer dan 30 verschillende toestanden !

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 72
hiërarchisch CC-protocol


bij hiërarchische meervoudige bussen
basisprincipe:
elke processor in een cluster heeft een cache
 elke cluster heeft een supercache
 een blok dat in minstens 1 cache van een cluster zit moet ook in
de supercache zitten
 op elk niveau wordt een variante van het snoopy protocol
gebruikt

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 73
hiërarchisch CC-protocol (vervolg)
Main Memory
C20
C
0
P0
Yolande Berbers
C
1
P1
C21
C
2
P2
C
3
P3
C
4
P4
C22
C
5
P5
C
6
P6
Structuur en Organisatie van Computersystemen: deel 2
C
7
P7
C
9
P8
slide 74
software-gebaseerde protocols


geen hardware-ondersteuning nodig
wel compiler-ondersteuning nodig
classificatie van variabelen in 4 klassen
 read-only
 read-only voor meerdere processen maar
write-only voor slechts 1 proces
 read-write voor slechts 1 proces
 read-write voor meerdere processen
 verdeling in klassen per programmaonderdeel
 bv per lus
 na elke lus wordt cache ongeldig (kan selectief)

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 75
synchronisatie

hardware-ondersteuning voor
synchronisatie-routines

probleem:
synchronisatie komt veel voor
 synchronisatie op een lock-variabele door meerdere processen:
hot-spot
 klassieke test&set zeer inefficiënt
while (exchange(lock, CLOSED) == CLOSED);

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 76
synchronisatie (vervolg)

oplossingen bij bus-gebaseerde systemen
snooping lock
while (exchange(lock, CLOSED) == CLOSED)
while (*lock == CLOSED)
 test-and-test&set
 volgorde omdraaien: eerst lezen
 eventueel een random delay toevoegen
 queue lock:
 een lijst van wachtenden
 slechts 1 wordt verwittigd als lock vrij komt

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 77
synchronisatie (vervolg)

oplossingen bij grote systemen
fetch&add (x, a)
 telt a bij x op en geeft oude waarde van x terug
 optelling gebeurt in geheugenmodule
 eventueel zelfs in switchen van multistage
 lijst-gebaseerde lock

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 78
consistentiemodellen


consistentiemodel:
interface programmeur/systeem
sequentiële consistentie
meest intuïtieve
 niet evident in NUMA-machines
 niet-atomaire geheugentoegangen
 invalideren van caches niet overal tegelijk
 laat een aantal optimisaties niet toe
(bv prefetching, later wegschrijven)


zwakkere vormen van consistentie
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 79
consistentiemodellen (vervolg)

zwakkere vormen van consistentie
uitgangspunt
 sequentiële consistentie niet echt nodig
 meeste programma’s synchroniseren expliciet
 meerdere modellen
 weak consistency model
– datatoegang tussen synchronisatie mag
uit volgorde gebeuren
 release consistency model
– laat nog meer overlapping toe

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 80
consistentiemodellen (vervolg)

implementatie van consistentiemodellen
gebruik van ‘hekken’ (fences) in verschillende vormen
 hek zorgt ervoor dat alle writes werkelijk overal gebeurt zijn
 werkt met gebruik van tellers
 SCI ondersteunt zowel weak consistency als release consistency

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 81
-systemen




zeer geschikt voor het bouwen van
kleine performante multiprocessoren
met enkelvoudige bus
kostprijs is heel redelijk
niet uitbreidbaar tot grote aantallen
voorbeelden

Encore Multimax, SGI Challenge
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 82
-systemen




goed uitbreidbaar
kwetsbaar tov plaatsing van gegevens
geen caches
ondersteunen vaak zowel
programmeren met gedeeld geheugen
 communicatie via boodschappen


voorbeelden

BBN TC2000, IBM RP3, Cray T3D
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 83
-systemen



goed uitbreidbaar
momenteel interessantste architectuur voor grote
algemeen bruikbare parallelle systemen
verschillen in
interconnectienetwerk
 cachecoherentieprotocol


voorbeelden

Dash, Flash, Convex Exemplar,
Sequent Numa-Q 2000,
Silicon Graphics Origin2000
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 84
CC-NUMA
Quad = 4 Pentium Pro 180 Mhz, 512KB L2
512MB-4GB memory
7 PCI I/O slots (133MB/s)
IQ-link= 1 Gbyte/sec ring, 32MB-128MB Fast Cache
CC-NUMA
P6
P6
P6
P6
1-4 GB
Mem
0-7 I/O
Adapters
IQ-Link
500
MB/s
P6
P6
P6
P6
1-4 GB
Mem
0-7 I/O
Adapters
IQ-Link
500
MB/s
P6
P6
P6
P6
1-4 GB
Mem
0-7 I/O
Adapters
IQ-Link
500
MB/s
1GB/s link
1GB/s link
1GB/s link


Zes adres-bits begrenzen aantal Quads op 63 (252
processoren)
IQ-Link is geen bus. Over de ring kunnen gelijktijdig
meerdere transfers plaatsvinden
CC-NUMA
CPU
CPU
CPU
CPU
Memory
Data
Pump
IQ-LINK
PCI I/O
PCI Bus
PCI I/O
PCI Bus
SCLIC
Remote Cache
and Cache
State/Tags
Memory
Directory
4 x SMP System Bus
OBIC
PCI Bridge
EISABus
EISA
P6 Bus
PCI/EISA
Bridge
PCI I/O
PCI I/O
PCI I/O
PCI I/O
PCI I/O
MDC
-systemen


goed uitbreidbaar
allocatie van gegevens
is statisch niet nodig
 gebeurt dynamisch, vraag-gestuurd



analoge cachecoherentieprotocols
als bij CC-NUMA
voorbeelden

Data Diffusion Machine, KSR1
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 88
trends naar de toekomst toe

convergentie van de drie trends binnen MIMD
multi-threaded architecturen
 systemen met gedistribueerd geheugen
 systemen met gedeeld geheugen

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 89
Applicatiesoftware voor
parallelle systemen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 90
typische problemen

simuleren van de stromingen in de oceanen


simuleren van de evolutie van de sterren-galaxies


onregelmatige structuur, scientific computing
weergeven van scènes door middel van ray tracing


regelmatige structuur, scientific computing
onregelmatige structuur, computer graphics
data mining
onregelmatige structuur, information processing
 wordt hier niet besproken

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 91
simulatie van oceaanstromen
(a) doorsneden
(b) ruimtelijke discretisatie van een doorsnede
modelleren als twee-dimensionale roosters
 discretiseren in ruimte en in tijd
 hoe fijner ruimtelijke en temporele resolutie: hoe accurater
 veel verschillende berekeningen per tijdsstap
 het opzetten en het oplossen van vergelijkingen
 concurrency over en in de rooster berekeningen

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 92
simulatie van galaxy-evolutie
simulatie
van de interacties tussen miljoenen sterren die
evolueren
m1m2
het berekenen van de krachten is duur
2
r
 O(n2) met brute kracht aanpak
hiërarchische methode gebaseerd op wet van krachten: G
Star on w hich forc es
are being computed
Star too close to
approximate
veel
Yolande Berbers
Large group far
enough aw ay to
approximate
Small gr oup far enough aw ay to
approximate to center of mass
tijdsstappen, veel concurrency over de sterren bij elke tijdsstap
Structuur en Organisatie van Computersystemen: deel 2
slide 93
weergave van scènes door Ray Tracing
stuur stralen in de scène door de pixels in het beeldvlak
 volg hun paden
 de stralen weerkaatsen als ze objecten tegenkomen
 ze genereren nieuwe stralen: een stralenboom per
invoerstraal
 dit resulteert in kleur en “opacity” voor dat pixel
 er is parallellisme tussen de stralen


al deze voorbeelden hebben overvloedige concurrency
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 94
creëren van een parallel programma

veronderstelling: een sequentieel algoritme is gegeven


soms is een erg verschillend algoritme nodig, hier niet ter sprake
creëren van een parallel programma bestaat uit:
identificatie van het werk dat in parallel kan gebeuren
 partitionering van werk en van gegevens over processen
 beheer van toegang tot gegevens, communicatie en
synchronisatie
 Note: werk = zowel berekeningen als toegang tot gegevens als
I/O

hoofddoel: Speedup, kleine programmeringsinspanning,
Performance(p)
laag middelengebruik
Performance(1)

Speedup (p) =

voor een vast probleem:
Yolande Berbers
Time(1)
Time(p)
Speedup
(p)en=Organisatie van Computersystemen: deel 2
Structuur
slide 95
stappen bij creëren van // programma
Partitioning
D
e
c
o
m
p
o
s
i
t
i
o
n
Sequential
computation

A
s
s
i
g
n
m
e
n
t
Tasks
p0
p1
p2
p3
Processes
O
r
c
h
e
s
t
r
a
t
i
o
n
p0
p1
p2
p3
M
a
p
p
i
n
g
P0
P1
P2
P3
Parallel
program
Processors
4 stappen: decompositie, toekenning, orkestratie, mapping


door programmeur of door systeemsoftware (compiler, runtime, ...)
issues zijn dezelfde, dus veronderstellen we door de programmeur
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 96
enkele belangrijke concepten

taak:
arbitrair deel van het werk van een parallelle berekening
 taak sequentieel uitgevoerd: enkel concurrency tussen taken
 vb: cel in Barnes-Hut, straal of groep van stralen bij ray tracing
 taken kunnen een fijne of een grovere granulariteit hebben



proces (thread):

abstracte entiteit die de toegekende taken uitvoert

communiceert en synchroniseert om toegekende taken uit te voeren
processor:
fysische entiteit op dewelke processen uitvoeren
 processen virtualiseren een machine voor de programmeur
 eerst schrijft men een programma in termen van processen
 daarna worden de processen toegekend aan processoren

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 97
decompositie

splits de bewerkingen op in taken die toegekend kunnen
worden aan processen
taken kunnen statisch en/of dynamisch gecreëerd worden
 aantal taken kan variëren in de tijd



identificeer de concurrency en bepaal op welk niveau je
deze wil gebruiken
doelstelling: genoeg taken om de processen bezig te
houden, maar ook niet te veel

aantal taken op een bepaald tijdstip is een bovenlimiet voor de
te bereiken speedup
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 98
beperkte concurrency: wet van Amdahl

fundamentele limiet op parallelle speedup


stel fractie s van seq uitvoering is inherent serieel, speedup <= 1/s
voorbeeld: berekening in 2 fasen
ga over nxn rooster en doe een onafhankelijke berekening
 ga nogmaals over rooster en vorm som met berekende waarden
 tijd voor fase één = n2/p
 fase twee is geserialiseerd door globale variabele, tijd = n2
2n2
 speedup <=
of maximaal 2
n2
+
n2
p
 methode om speedup te krijgen: verdeel fase 2 in 2 kleinere
stappen
 accumuleer som in deelsommen in elke processor
2pn2
 tel alle deelsommen op
2n2 + p2
 parallelle tijd is n2/p + n2/p + p, en speedup maximaal

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 99
illustratie van voorbeeld
(a)
1
work done concurrently
n2
n2
p
(b)
1
n2/p
n2
p
(c)
1
Time
n2/p n2/p p
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 100
concurrency profiles

niet eenvoudig om programma te verdelen in serieel en parallel deel
1,400
vb:
1,200
Concurrency
1,000
800
600
400
733
702
662
633
589
564
526
504
483
444
415
380
343
313
286
247
219
0
150
200
Clock cycle number
opp onder curve is totaal werk, of tijd op 1 processor
 horizontale as geeft minimum tijd die nodig is


wet van Amdahl is geldig op elke overhead, niet alleen op concurrency
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 101
toekenning

bepaal mechanisme om werk te verdelen over de processen




vb. welke processen berekenen welke krachten op welke sterren
dit wordt samen met decompositie ook wel partitionering
genoemd
spreid de belasting, minimaliseer de communicatie en het beheer
gestructureerde aanpakken werken meestal goed
code inspectie (parallelle lussen) of inzicht in toepassing
 gekende heuristieken
 statische versus dynamische toekenning


voor programmeurs is partitionering belangrijke taak
meestal onafhankelijk van onderliggende architectuur of
programmeringsmodel
 kost en complexiteit van primitieven hebben soms invloed

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 102
orkestratie

belangrijke elementen die meespelen bij orkestratie
naamgeving van gegevens
 structurering van communicatie
 synchronisatie
 organisatie gegevensstructuren en scheduling tijdelijke taken


doelstellingen

minimaliseer communicatie- en synchronisatiekosten in processoren
kies gegevensstructuur ifv lokaliteit van gegevenstoegang
 schedule de taken zodat afhankelijkheden eerst aan bod komen
 minimaliseer overhead van beheer van parallellisme


staat dicht bij architectuur, programmeringsmodel en taal
keuzes hangen af van communicatieabstracties en efficiëntie
van primitieven
 architecten moeten de gepaste primitieven efficiënt aanbieden

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 103
mapping


na de orkestratie heb je al een parallel programma
twee aspecten bij mapping:
welke processen voeren uit op zelfde processor
 welk proces voert uit op welke processor
 mapping op een bepaalde netwerk topologie


één extreem: space-sharing
machine verdeeld in subsets, één toepassing per subset
 processen worden toegekend aan processors, of gelaten voor OS


ander extreem: volledige resource management door OS


meestal ergens tussen de twee


OS doet aan dynamische belastingsspreiding
gebruiker kan directieven geven, OS kan deze negeren
normaal gezien: proces <-> processor
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 104
parallellisering van bewerkingen vs. Data

vorige slides concentreren zich op bewerkingen en niet
op data


bewerkingen worden gedecomposeerd en toegekend
(partitioneerd)
Partitionering van data is vaak ook een natuurlijke manier
bewerkingen volgen de data: eigenaar berekent
 rooster voorbeeld, data mining, High Performance Fortran
(HPF)
 dit heet “data-parallellisme”


data-parallellisme is niet algemeen genoeg

datatoegang en communicatie maakt deel uit van orkestratie
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 105
doelstellingen
High performance (speedup over sequential program)
Table 2.1 Steps in the Parallelization Process and Their Goals
ArchitectureDependent?
Major Performance Goals
Decomposition
Mostly no
Expose enough concurrency but not too much
Assignment
Mostly no
Balance workload
Reduce communication volume
Orchestration
Yes
Reduce noninherent communication via data
locality
Reduce communication and synchr
onization cost
as seen by the processor
Reduce serialization at shared resources
Schedule tasks to satisfy dependences early
Mapping
Yes
Put related processes on the same pr
ocessor if
necessary
Exploit locality in network topology
Step
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 106
Granulariteit van
parallellisme en
uitwerking
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 107
Transparante vormen van parallellisme
Soort parallellisme
granulariteit
elektrische signalen
uiterst fijn
interregister-transfers, uiterst fijn
lezen uit het geheugen,
prefetch van instructies
verantwoordelijkheid en uitvoering
hardware
hardware
pipelining
gevectoriseerde instr.
uiterst fijn
zeer fijn
meerdere pipelines
(in superscalaire
processoren)
zeer fijn
compiler en hardware
hardware,
parallelliserende compiler
en ev. toepassingsprogrammeur
(op supercomputers)
compiler en hardware
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 108
Niet-transparante vormen van parallellisme
Soort parallellisme
granulariteit
threads
fijn
(subprocessen, taken)
(vaak op multiprocessoren)
verantwoordelijkheid en uitvoering
besturingssysteem en
toepassingsprogrammeur
nauw-samenwerkende grof
processen
(op multicomputers
en op multiprocessoren)
besturingssysteem en
toepassingsprogrammeur
los-samenwerkende
zeer grof
(middleware)
processen
(in wide area networks)
Yolande Berbers
laag boven besturingssysteem
en toepassingsprogrammeur
Structuur en Organisatie van Computersystemen: deel 2
slide 109
Performantie van
parallelle systemen
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 110
Performantie van parallelle systemen




vaak interesse in hoeveel sneller is een bepaalde
parallelle machine vergeleken met een sequentiële
machine
dit is afhankelijk van het programma dat men draait !
de versnelling (speedup) wordt gedefinieerd als

speedup = uitvoeringstijd op 1 processor / uitvoeringstijd op n
processoren

s = T(1) / T(n)
de ideale versnelling die men kan bekomen met n
processoren is n
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 111
Performantie (vervolg)

een speedup van n wordt nooit bekomen omdat
niet alle code parallelliseerbaar is
 de code die parallelliseerbaar is kan niet altijd continu alle
middelen bezig houdt (belastingspreiding !)
 bij de code die wel parallelliseerbaar is men extra overhead
moet rekenen voor synchronisatie
 sommige hulpmiddelen in het systeem toch schaars zijn t.o.v.
andere
 I/O vaak niet parallel verloopt
 er vaak vertrokken wordt van de sequentiële code die niet
herdacht is

Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 112
Performantie (vervolg)

de efficiëntie wordt gedefinieerd als



als de efficiëntie dicht bij 1 ligt dan gebruik je de
hardware zeer goed
regel van Minsky (zou gelden voor grote n):


e = T(1) / n*T(n) = s / n
s <= log2 n (zonder bewijs)
zie grafiek met verschillende versnellings-curve
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 113
Performantie (vervolg)

wet van Amdahl:



T(n) = Ts + Tn / n
 Ts is de tijd die besteed wordt aan code die intrinsiek
serieel
 Tn is de tijd die parallelliseerbaar is
 T(1) = Ts + Tn
de wet van Amdahl zegt dat er altijd een deel van de
code niet parallelliseerbaar is
andere regel, afgeleid uit de wet van Amdahl
– s <= n / ln n
Yolande Berbers
Structuur en Organisatie van Computersystemen: deel 2
slide 114
Download