Institutionen för datavetenskap Umeå Universitet

 

Design and Analysis of Algorithms for Parallel Computer Systems, VT08


Kursinnehåll

Nedan ges en kortfattad beskrivning av olika kursavsnitts syfte och innehåll tillsammans med läsanvisningar och eventuellt elektroniskt tillgängligt material. Se även utdelat material. (Sidan uppdateras med ytterligare information och material under kursens gång.)

Kursintroduktion och modeller för parallella beräkningar, Kapitel 1,2, appendix A  
Syfte: Att placera in kursen i sitt sammanhang, att ge en repetition av grundläggande modeller, att introducera nödvändiga begrepp och beteckningar, samt att klara av en del praktiska problem.
Innehåll: Kommunikationskostnader (uppstartningstid, per-hopp-tid, tid per ord), lagra-vidarebefordra (store-and-forward), direkt-igenom (cut-through). Komplexitetsfunktioner. Därtill självstudier (kap. 1-2) för att repetera följande: Klassificering av parallella arkitekturer: kontrollmekanism, minnesorganisation (gemensamt, distribuerat), nätverk, kornighet, PRAM, dynamiska nätverk, crossbar, buss, flerstegsnätverk (multistage networks), statiska nätverk, linjär lista, ring, 2-dimensionella nät, träd, hyperkub, utvärdering av nätverk, diameter, connectivity, bandbredd, inbäddning av andra nätverk i en hyperkub, routing.

Grundläggande kommunikationsoperationer, Kapitel 4, sid 147-184
Syfte: Att ge kunskap om algoritmer för grundläggande kommunikationsoperationer och deras komplexitet.
Innehåll: Detaljerad beskrivning och analys av kommunikationsoperationer som används boken igenom. Vanliga kommunikationsmönster: 1-till-1 kommunikation, utsändning (broadcast), alla-till-alla utsändning, reduktion, prefix summering, "personlig" kommunikation (1-till-alla, alla-till-alla), cirkulär skiftning. Analys av samtliga kommunikationsoperationer för en eller flera av topologierna ring, 2-dimensionellt nät, hyperkub eller balanserat träd. Analys för nätverk med principerna lagra-vidarebefordra (store-and-forward) och direkt-igenom (cut-through).

Prestanda och skalbarhet för parallella system, Kapitel 5, sid 195 - 231
Syfte: Att ge kunskap om hur ett parallellsystems prestanda och skalbarhet kan utvärderas.
Innehåll: Prestandamått: exekveringstid, uppsnabbning, effektivitet och kostnad. Kornighet och datafördelningens inverkan på prestanda. Skalbarhet, isoeffektivitet, isoeffektivitetsfunktionen, grad av parallellitet, kostnadsoptimalt, lastbalansering samt undre gränser för exekveringstid.  

Algoritmer för täta matriser I, Sek. 3.4.1, sid 117 - 129, Sek. 4.5, sid 171, Kapitel 8, sid 337 - 351
Kopior av föreläsningsmaterial delas ut i samband med lektionen.
Syfte: Att ge kunskap om vanliga mönster för att avbilda matriser på processorer, samt parallella algoritmer för grundläggande matrisoperationer.
Innehåll: Mönster för att avbilda matriser på parallelldatorer: blockpartitionering och schackbrädespartitionering. Matristransponering för olika datadistributioner på 2-dimensionellt nät och hyperkub. Matris-vektor-multiplikation för olika datadistributioner med utförlig prestanda- och skalbarhetsanalys. Algoritmer för matrismultiplikation: enkel algoritm, Cannons algoritm, Foxs algoritm och DNS-algoritmen (3-dimensionellt nät av processorer), med utförlig prestanda och skalbarhetsanalys för samtliga algoritmer på olika topologier.

Principer för design av parallella algoritmer, kapitel 3, sid 85 - 146
Syfte: Att ge kunskap om olika principer för design av effektiva och robusta parallella algoritmer för lösning av olika typer av beräkningsproblem.
Innehåll: Uppdelning av ett problem i oberoende uppgifter (tasks) som kan lösas parallellt. Olika sätt till uppdelning sk. dekompositionsprinciper: rekursiv, data, undersökande, spekulativ, hybridvarianter. Statisk respektive dynamisk uppdelning i uppgifter. Interaktion mellan uppgifter. Mappning av uppgifter för lastbalansering: datapartitionering, uppgiftspartitionering, hierarkiska mappningar. Modeller för parallella algoritmer: dataparallell, uppgiftsgraf, arbetspool, master-slave, pipeline.

Algoritmer för täta matriser II, Kapitel 8, sid 352 - 377
Kopior av föreläsningsmaterial delas ut i samband med lektionen.
Syfte: Att ge kunskap om parallella algoritmer för lösning av linjära ekvationssystem.
Innehåll: Lösning av linjära system med gausselimination för olika datadistributioner, överlappning av kommunikation och beräkningar, pivotering, lösning av triangulära system samt numeriska hänsyn.