Gedistribueerde Systemen Inleiding
Grand Challenge Problems Bron: NSF Grand Challenges final reportNSF Grand Challenges final report
Grand Challenge Problems Bron: NSF Grand Challenges final reportNSF Grand Challenges final report
Grand Challenge Problems Bron: NSF Grand Challenges final reportNSF Grand Challenges final report
Grand Challenge Problems (vanaf 36’)
“Third Pillar of Science”
Von Neumann architectuur Historiek “Stored Program Computer”
Shared-memory multi-processors Historiek
Multi-processors met lokaal geheugen In 1 “doos” Communicatie via “netwerk” Historiek
Transputers
Parsytec x’plore (16 transputers met 4 MB RAM)
Historiek Interconnectie-netwerken
Distributed shared memory Historiek NUMA
Computer clusters Verbonden via LAN “Distributed computing” Historiek
Internet-based collaborative computing Lange-afstand Historiek Internet client-server Internet client-server Cloud computing Cloud computing Grid Computing Grid Computing
Flynn’s taxonomy MMX SSE GPU
PDC architectuurklassen Data- parallellisme SuperscalairPipelineStreamVectorDataflow Controle- parallellisme MultithreadingMultiprocessingMulticoreClusterGrid/Cloud Cray GPU ILP Intel Core, Cell SMT
Dual core processor architectuur
PDC architectuurklassen Communicatie via geheugen / netwerk Shared vs. distributed memory
Versnelling/verbetering Parallel computing maakt oplossen grand challenge problemen mogelijk Maar ook Oplossen van “groter” probleem (bv extra factoren beschouwen bij num simulatie) Meer precieze oplossing (bv weersvoor-spelling: # beschouwde cellen verhogen) Zelfde probleem meermaals oplossen met verschillende input waarden Toepassing in Internet (bv webservers)
Speedup Factor Snelheidswinst parallel systeem? Noem p het # CPUs Speedup factor S(p) = Toename in snelheid door gebruik te maken multiprocessor
Speedup Factor Max mogelijke speedup met p CPUs is in theorie p Lineaire versnelling Wordt behaald als Computatie opgedeeld kan worden in problemen met gelijke lengte Geen overhead in parallelle oplossing Superlineaire versnelling als S(p) > p Occasioneel mogelijk (seq alg niet optimaal, eigenschappen probleem – bv zoekopdracht, extra geheugen, …)
Speedup Factor Efficiency E = Hoe continu worden CPUs van multiprocessor benut? Bv E = 50% CPUs worden gemiddeld helft van de tijd gebruikt voor effectieve computatie 100% efficiency bij linear speedup
Maximale Speedup Parallellisatie resulteert in overhead CPU is bepaalde tijd idle/taakloos Introduceert extra berekeningen (komen niet voor in sequentiele oplossing) Communicatie tussen CPUs Deel van probleem kan mogelijk niet geparallelliseerd worden en moet sequentieel uitgevoerd worden Bv initialisatie-stap Slechts 1 CPU doet zinvol werk; rest idle
Maximale Speedup Noem seriële gedeelte f Parallelle oplossing kost tijd Amdahl’s Law (1967)
Maximale Speedup Speedup factor wordt dan Staat bekend als Amdahl’s law Hoe groter f, hoe kleiner speedup Parallel gedeelte moet een substantieel deel zijn van totale berekening om significante speedup te bekomen Max speedup (oneindig # CPUs) is 1/f: Amdahl’s Law (1967)
Maximale Speedup Amdahl’s Law Speedup versus # CPUs Speedup versus serieel deel f
Amdahl’s Law
Scalability: Vrij onnauwkeurige term Hardware scalability: Uitbouwen systeem verhoogt performantie Uitbouwen systeem = CPUs toevoegen Algorithmic scalability: Verhogen # data items resulteert in lage en begrensde toename in # computationele stappen Noem n het # input data items Gebruikt in Gustafson’s law Maximale Speedup Schaalbaarheid
Maximale Speedup Gustafson’s Law Amdahl’s law: cte n (en dus ook ) Gustafson’s law: alternatief op basis van cte (parallelle uitvoeringstijd) Als p toeneemt, dan ook n Scaled speedup factor is een lineaire functie met neg helling ipv snelle reductie bij Amdahl Speedup Amdahl en Gustafson erg ≠ Gustafson stelt dat grotere speedup mogelijk is dan aangegeven door Amdahl Geef resultaten dicht bij lineaire speedup
Maximale Speedup Communicatie Overhead Tot nu toe geen rekening gehouden met message passing Data uitwisseling en synchronisatie Niet aanwezig in sequentiële oplossing Belangrijke overhead in parallel systeem! Parallelle uitvoeringstijd
Maximale Speedup Communicatie Overhead Probleem opsplitsen in meer delen Parallelle comp tijd daalt (kleinere delen), maar comm tijd stijgt Comm tijd kan overheersen! Ondanks verhoogde parallellisatie stijgt Daarom zo hoog mogelijk houden
TOP500 supercomputers UGent supercomputer op 118!
TOP500 supercomputers
Heel veel uitdagingen! Effectiviteit Alle cores/processoren/computers zo nuttig mogelijk bezig houden Deadlocks en starvation voorkomen Efficiëntie Memory access overhead beperken Communicatieoverhead beperken Synchronisatie Inherent parallel programmeren … Programmeren van PDC
2 categorieën Parallel algorithm strategy patterns (hi-level) Task parallelism Data parallelism Divide and conquer Pipeline Geometric decomposition… Implementation strategy patterns (low-level) SPMD (single program multiple data) SIMD (single instruction multiple data) Loop-level parallelism Fork-join Master-worker… Design Patterns
Recente ontwikkelingen (vanaf 25’)
PDC heeft veel toepassingen Verscheidene architecturen Van zeer nauw gekoppeld tot wereldwijd verspreid Beste architectuur hangt af van probleem en constraints Nieuwe manier van programmeren nodig Nieuwe design patterns Optimalisatie is grote uitdaging Automatische parallellisatie komt op Boost via recente ontwikkelingen Conclusie