1.14k likes | 1.29k Views
Parallelle systemen. 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
E N D
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
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 ?
Inevitability of Parallel Computing • Applicatievereisten: onverzadigbare nood aan rekenkracht • Scientific computing: CFD, biologie, scheikunde, natuurkunde, ... • General-purpose computing: video, graphics, CAD, databases, TP... • technologietendensen • aantal transistoren op een chip stijgt snel • kloksnelheid stijgt minder snel • architectuurtendensen • 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
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.
Applications: Speech and Image Processing • Also CAD, Databases, . . . • 100 processors gets you 10 years, 1000 gets you 20 !
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)
TPC-C resultaten (maart 1996) • Parallellisme is overal aanwezig • vooral klein tot middelgrootte schaal van parallellisme
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
Technologietendensen The natural building block for multiprocessors is now also the fastest!
Phases in VLSI Generation • How good is instruction-level parallelism? • Thread-level needed in microprocessors?
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 eigenschappenbv. het modelleren van performantie: een classificatie kan ons helpen begrijpen waarom bepaalde architecturen performanter zijn dan andere
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
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
typische karakteristieken van SIMD en MIMD SIMD MIMD klok synchroon asynchroon toepassingen numeriek formeel parallellisme impliciet expliciet controle gecentraliseerd gedecentraliseerd relatie meester/slaaf klant/server
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
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
Classificatie van Feng • deze classificatie brengt in kaart de maximale graad van parallellisme die bereikt wordt in computer-architecturen: 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
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
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)
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
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
Types parallelle architecturen die men op de markt treft klassieke modellen
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
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)
Supercomputers of vectorcomputers (vervolg) • 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)
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
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
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
M0 M1 Mn P0 P1 Pn interconnectienetwerk Multiprocessoren • multiprocessoren = MIMD-machine met gedeeld geheugen • homogeen van structuur • symmetrisch van structuur (alle knooppunten hebben gelijkaardige rol) • maken gebruik van standaard componenten • zijn daarom ook veel goedkoper dan een supercomputer • granulariteit van parallellisme : middelmatig (niet ontzettend fijn, ook niet grof) ... ...
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 bottleneck-probleem gedeeltelijk te verhelpen, maar de caches moeten consistent gehouden worden
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)
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 No. of processors in fully configured commercial shared-memory systems
Architectural Trends: Bus-based MPs No. of processors in fully configured commercial shared-memory systems
M0 Mn M1 P0 Pn P1 interconnectienetwerk ... Multicomputers • multicomputers = MIMD-machine met gespreid geheugen • zijn ook homogeen van structuur
Multicomputers (vervolg) • zijn meestal niet symmetrisch, doordat de interconnectie van de processoren meestal niet volledig is (niet alle processoren zijn met alle processoren verbonden) • 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 • multicomputers maken gebruik van standaard componenten • ze zijn daarom ook veel goedkoper dan een supercomputer • granulariteit van parallellisme: grof
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
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
Raw Parallel Performance: LINPACK • 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)
350 319 313 u n 284 300 u 239 250 MPP u u PVP n 200 198 n SMP u s 187 Number of systems 150 110 106 s n s 100 106 n s 73 50 63 0 s 11/93 11/94 11/95 11/96 500 Fastest Computers
Types parallelle architecturen die men op de markt treft geavanceerde modellen
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
classificatie van DSM • Non-uniform Memory Access machines • Cache-Coherent Non-Uniform Memory Access machines • Cache-Only Memory Access machines NUMA CC-NUMA COMA
P1 P0 Pn C1 Cn Pn C0 P1 P0 M1 M0 M0 Mn M1 Mn P0 Pn P1 C1 C0 Cn interconnectienetwerk interconnectienetwerk interconnectienetwerk ... ... NUMA ... COMA CC-NUMA