Kursplan för Projekt inom parallell programmering

Kursplan fastställd 2024-01-30 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnProject in parallel computing
  • KurskodDAT630
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPHPC
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Elektroteknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 86124
  • Blockschema
  • Sökbar för utbytesstudenterJa

Poängfördelning

0124 Projekt 6 hp
Betygsskala: TH
0 hp0 hp6 hp0 hp0 hp0 hp
0224 Tentamen 1,5 hp
Betygsskala: UG
0 hp0 hp1,5 hp0 hp0 hp0 hp

I program

Examinator

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

En kurs i parallell programmering (t.ex. DAT400) och en kurs i datororganisation (t.ex. EDA333) krävs.

Syfte

Denna kurs behandlar design av högpresterande och energieffektiv programvara för parallella datorer, prestandamodellering och HW/SW-samdesign av parallella och heterogena datorsystem. Kursen är en projektinriktad kurs där du ska utveckla färdigheter för programmering och bedömning av prestanda hos parallella och heterogena datorer. En serie föreläsningar om principerna för parallell hårdvara ger nödvändig bakgrund för arkitekturmedveten programoptimering. Via gruppuppgifter kommer du vidare att utveckla dina lagarbetesförmåga, inklusive versionskontroll, kommunikation och presentation.

Lärandemål (efter fullgjord kurs ska studenten kunna)

Efter godkänd kurs ska studenten kunna:

Kunskap och förståelse
  • beskriva aktuella metoder för parallell databehandling
  • förklara designprinciperna för hårdvarustödet för att stödja programmeringsmodellerna shared memory och message passing
  • beskriva implementeringen av olika modeller av parallellitet på trådnivå, såsom chip-multiprocessorer, multipla kärnor eller GPGPU
  • Lista grundläggande tillvägagångssätt för mjukvaruutveckling, prestandateknik och teamwork

Färdigheter och förmåga
  • designa skalbar parallellprogramvara och analysera dess prestanda
  • felsöka och optimera exekveringen av parallella program på heterogena datorer
  • tillämpa prestandamodellering och simuleringstekniker för prestandaprediktion och HW/SW-samdesign.
  • tillämpa teamwork-färdigheter för versionskontroll, kommunikation, presentation och konflikthantering
  • förmåga att samarbeta i olika gruppsammansättningar med gruppmedlemmar med olika kompetens, kulturell och utbildningsbakgrund, kön och nationalitet

Värderingsförmåga och förhållningssätt
  • analysera avvägningar mellan olika metoder för parallell databehandling när det gäller funktion, prestanda och kostnad
  • analysera och bedöma prestandaportabiliteten för en mjukvara

Innehåll

Denna kurs fokuserar på utveckling av parallell programvara med målet att optimera prestanda och effektivitet. Vidare introducerar kursen metoder för prestandaprediktion och samdesign av hårdvara/mjukvara. Slutligen lär kursen ut lagarbete, inklusive versionskontroll, kommunikation och presentation. Kursen är organiserad kring ett flerveckorsprojekt som hanteras av team med flera deltagare.

Organisation

Kursen består av projekttillfällen (laboration och föreläsningssal), plus några föreläsningar som täcker grundläggande parallell datorarkitektur.

Fokus för föreläsningarna ligger på
  • multicore, manycore och vektorarkitektur, med fokus på minneshierarkin och dess konsekvenser för prestanda för OpenMP-program
  • arkitektoniskt stöd för meddelandeöverföring och hur det påverkar prestandan för MPI-program
  • arkitektur för GPGPU:er och hur det påverkar optimering av CUDA-program
Kursen kommer också att innehålla sessioner som täcker flera aspekter relaterade till mjukvaruteknik och samdesign
  • versionskontroll och testning av programvara
  • spårning och simulering för prestandamodellering och samdesign av hårdvara/mjukvara
Dessutom kommer kursen att innehålla en uppsättning praktiska sessioner där studenterna, organiserade i team, kommer att optimera en given kod, öva grundläggande mjukvara, lagarbete och prestandateknik, och utföra prestandamodellering och HW/SW-samdesign.

Slutligen kommer kursen att ha valfria moduler som täcker avancerade ämnen inom datorarkitektur.

Litteratur

Samling av artiklar som annonseras på kurssidan

Examination inklusive obligatoriska moment

Kursen utvärderas via en skriftlig individuell tentamen och ett projekt som genomförs i grupp. Den skriftliga tentamen bedöms genom godkänd/underkänd. Projektet utvärderas på en skala (U, 3, 4, 5). Projektbetyget sätts utifrån kvaliteten på (1) den skriftliga rapporten, (2) presentationen och (3) kvaliteten på referentgranskningen.
Alla kursmoment måste vara godkända för att få godkänt betyg på hela kursen. Slutbetyget blir detsamma som projektbetyget.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.