Kursplan

Parallell programmering för hög prestanda

High Performance Parallel Programming

Kurs
DIT431
Avancerad nivå
7,5 högskolepoäng (hp)
Utbildningsområde
NA Naturvetenskapliga området 100%

Om kursplanen

Diarienummer
GU 2025/3968
Ikraftträdandedatum
2026-03-15
Beslutsdatum
2025-11-27
Gäller från termin
Höstterminen 2026
Beslutsfattare
Institutionen för data- och informationsteknik

Betygsskala

Tregradig skala

Kursens moduler

Skriftlig salstentamen, 4,5 högskolepoäng
Laborationer, 3 högskolepoäng

Inplacering

Kursen kan ingå i följande program:

  1. Computer Science, masterprogram (N2COS)
  2. Software Engineering and Management, masterprogram (N2SOF)
  3. Applied Data Science, masterprogram (N2ADS)

Kursen ges även som fristående kurs vid Göteborgs Universitet.

Huvudområde med fördjupning

ITDVA Datavetenskap - AXX Avancerad nivå, kursens fördjupning kan inte klassificeras

Behörighetskrav

Studenten ska ha 105 hp avklarade kurser inom ämnesområdet datavetenskap, matematik, Software Engineering eller motsvarande.
Inklusive en avslutad 7,5 hp kurs i maskinorienterad programmering (t.ex. DIT153 Maskinorienterad programmering, eller motsvarande).

Följande kunskapsnivå i Engelska krävs: Engelska 6/Engelska nivå 2 eller motsvarande från ett erkänt internationellt test, t.ex. TOEFL, IELTS.

Innehåll

Kursen behandlar parallella programmeringsmodeller, effektiva
programmeringsmetoder och verktyg för prestandaoptimering med målet att utveckla högeffektiva parallella program.

Kursen består av ett antal föreläsningar och laborationer. Föreläsningarna börjar med en översikt över parallella datorarkitekturer och parallella programmeringsmodeller och paradigmer. En viktig del av diskussionen är mekanismer för synkronisering och datautbyte. Därefter behandlas prestandaanalys av parallella program. Kursen fortsätter med en diskussion om verktyg och tekniker för att utveckla parallella program enligt modellen för ett delat adressutrymme. Detta avsnitt behandlar populära programmeringsmiljöer som pthreads och OpenMP. Därefter diskuterar kursen parallella program för distribuerat adressutrymme. Fokus i denna del ligger på Message Passing Interface (MPI). Slutligen diskuterar vi programmeringsmetoder för att exekvera applikationer på acceleratorer såsom GPUer. Den här delen introducerar programmeringsmiljön CUDA (Compute Unified Device Architecture).

Föreläsningarna kompletteras med en uppsättning laborationer där deltagarna praktiskt utforskar de ämnen som införts i föreläsningarna. Under laborationerna parallelliserar deltagarna exempelprogram över en rad parallella arkitekturer, och använder verktyg för prestandaanalys för att upptäcka och ta bort flaskhalsar i parallella
implementeringar av programmen.

Mål

Efter godkänd kurs ska studenten kunna:

Kunskap och förståelse

  • Lista de olika typerna av parallella datorarkitekturer, programmeringsmodeller och paradigm, samt olika system för synkronisering och kommunikation.
  • Lista de typiska stegen för att parallellisera en sekventiell algoritm
  • Lista olika metoder för prestandaanalys av parallella program

Färdigheter och förmåga

  • Använda metoder för prestandaanalys för att bestämma flaskhalsarna vid exekverandet av ett parallellt program
  • Bestämma den övre gränsen för prestanda för ett parallellt program

Värderingsförmåga och förhållningssätt

  • Ange vilka flaskhalsar för prestanda som begränsar effektiviteten hos parallella program och välja lämpliga strategier för att övervinna dessa flaskhalsar, givet en specifik programvara
  • Utforma energibesparande parallelliseringsstrategier baserade på en specifik algoritmstruktur och datorsystemorganisation
  • Argumentera för vilka metoder för prestandaanalys som är viktiga, givet en specifik context.

Hållbarhetsmärkning

Ingen hållbarhetsmärkning.

Former för undervisning

Undervisningen består av teoriinriktade föreläsningar och laborationer där deltagarna utvecklar kod för olika typer av parallella datorsystem

Undervisningsspråk: engelska

Examinationsformer

Examinationen kommer att baseras på en individuell skriftlig salstentamen och en skriftlig laboratorierapport som utförs i grupper om två studenter.


Om en student som har underkänts två gånger på samma examinerande moment önskar byta examinator inför nästa examinationstillfälle ska en sådan begäran bifallas om det inte finns särskilda skäl däremot (6 kap. 22 § HF).

Om en student har fått besked om pedagogiskt stöd från Göteborgs universitet med rekommendation om anpassad examination och/eller anpassad examinationsform kan examinator, i det fall det är förenligt med kursens lärandemål och förutsatt att inte orimliga resurser krävs, besluta att bevilja studenten anpassad examination och/eller anpassad examinationsform.

Om en kurs har avvecklats eller genomgått en större förändring ska studenten erbjudas minst två examinationstillfällen, utöver ordinarie examinationstillfälle. Dessa tillfällen fördelas under en tid av minst ett år, dock som längst två år efter det att kursen avvecklats/förändrats. Vad gäller praktik och verksamhetsförlagd utbildning (VFU) gäller motsvarande, men med begränsning till endast ett ytterligare examinationstillfälle.

Om en student har fått besked om att denne uppfyller kraven för att vara student vid Riksidrottsuniversitetet (RIU-student) har examinator rätt att besluta om anpassning vid examination, om detta görs i enlighet med Lokala regler gällande RIU-studenter vid Göteborgs universitet

Betyg

Delkurser

  1. Skriftlig salstentamen, 4,5 hp
    Betygsskala: Väl godkänd (VG), Godkänd (G) och Underkänd (U)
  2. Laborationer, 3 hp
    Betygsskala: Godkänd (G) och Underkänd (U)

På kursen ges något av betygen Väl godkänd (VG), Godkänd (G) och Underkänd (U).

För godkänt betyg på hel kurs krävs godkänt betyg på samtliga delkurser.

För betyget Väl godkänd (VG) på hel kurs krävs betyget Väl godkänt (VG) på tentamen.

Kursvärdering

Kursen utvärderas genom möten, både under och efter kursen, mellan lärare och studentrepresentanter. Ett anonymt skriftligt frågeformulär skickas även ut till studenterna efter kursens slut. Resultaten av utvärderingarna används för att förbättra kursinnehållet och som indikation till vilka delar som skulle kunna läggas till, tas bort, förbättras eller ändras.

Övriga föreskrifter

Kännedom om parallell programmering är rekommenderat, t.ex., från kursen DIT391 Principer för parallell programmering, eller motsvarande.

Kursen är samläst med Chalmers.

Kursen ersätter DIT430 Parallell programmering för hög prestanda, 7,5 hp. Den här kursen kan inte ingå i en examen som innehåller DIT430. Den kan inte heller ingå i en examen som bygger på en annan examen där DIT430 ingår.