Introduktion till parallellprogrammering

5 hp

Kursplan, Avancerad nivå, 1DL530

Det finns en senare version av kursplanen.
Kod
1DL530
Utbildningsnivå
Avancerad nivå
Huvudområde(n) med fördjupning
Datavetenskap A1N, Teknik A1N
Betygsskala
Med beröm godkänd, icke utan beröm godkänd, godkänd, underkänd
Fastställd av
Teknisk-naturvetenskapliga fakultetsnämnden, 9 mars 2017
Ansvarig institution
Institutionen för informationsteknologi

Behörighetskrav

120 hp varav 20 hp datavetenskap inklusive en fortsättningskurs i programmering i ett imperativt och objektorienterat språk och Algoritmer och datastrukturer I.

Mål

Efter godkänd kurs ska studenten kunna

  • förklara centrala begrepp inom parallellprogrammering
  • skriva och modifiera program som använder trådar och lås för att utnyttja parallellism i delade minnen
  • redogöra för vanliga problem vid shared memory-programmering samt hur synkronisering kan användas för att undvika dessa
  • implementera lösningar till grundläggande synkroniseringsproblem
  • redogöra för olika konsistensmodeller och använda dessa för att diskutera korrekthet hos parallella program
  • identifiera möjligheter till parallellism i sekvensiella algoritmer och utnyttja dessa för att göra sekvensiella implementationer parallella.

Innehåll

Grundläggande begrepp inom concurrecy och parallellprogrammering, t ex uppsnabbning och parallell avmattning, Amdahls lag, Flynns taxonomi, instruktionsparallellism, dataoberoende. "Shared-memory concurrency" baserad på trådar och lås samt hur det används i språk som C++. Problem som kan uppkomma i samband med samtidighet, t.ex. synkronisering, icke-determinism, data race, dödläge, fairness. Synkroniseringsproblem, t.ex. producer-consumer, och tekniker för att lösa dessa. Konsistensmodeller som linearizability ochsekvesiell konsistens. Fork/join-ramverk. Task- och dataparallellism.

Undervisning

Föreläsningar, laborationer.

Examination

Muntlig och skriftlig examination av uppgifter. Skriftlig tentamen.

Övriga föreskrifter

Kursen kan inte ingå i examen tillsammans med 1DL540 Programspråksabstraktioner för parallelprogrammering, 10hp, eller 1DT096 Operativsystem och processorienterad programmering.

FÖLJ UPPSALA UNIVERSITET PÅ

facebook
instagram
twitter
youtube
linkedin