TDDD56 |
Multicore- och GPU-Programmering, 6 hp
/Multicore and GPU Programming/
För:
CS
D
DAV
ELE
I
Ii
IT
MMAT
MT
Y
|
|
Prel. schemalagd
tid: 60
Rek. självstudietid: 100
|
|
Utbildningsområde: Teknik
Huvudområde: Datateknik, Datavetenskap, Informationsteknologi, Medieteknik Nivå (G1,G2,A): A
|
|
Mål:
IUAE-matris
Moderna datorer har processorer med flera kärnor och kraftfulla flerkärniga hårdvaruacceleratorer t ex Graphics Processing Unit (GPU) som kan användas för allmänna beräkningar (GPGPU eller GPU Computing). Prestandapotentialen hos sådana arkitekturer kan bara utnyttjas fullt ut om koden är ordentligt parallelliserad och omskriven för att utnyttja särskilda arkitektoniska detaljer.
Efter kursen ska studenten:
- kunna skriva ny kod och skriva om kod för flerkärniga och GPGPU arkitekturer
- förstå parallella algoritmer och datastrukturer, och kunna analysera dem
- känna till allmänna principer för parallell databehandling och tekniker för parallellisering.
|
|
Förkunskaper: (gäller studerande antagna till program som kursen ges inom, se 'För:' ovan) Datorteknik. Datastrukturer och algoritmer. Processprogrammering och operativsystem. Programmering i C, viss kunskap i C++ rekommenderas.
OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.
|
|
Påbyggnadskurser Programmering av parallelldatorer - metoder och verktyg är en kompletterande kurs. Båda tar upp parallellprogrammering men där fokus i denna kurs ligger på trådprogrammering och GPU-programmering. I den kompletterande kursen fokuseras på OpenMP och meddelandeutbyte vilket krävs vid programmering av större datorkluster.
|
|
Organisation: En föreläsningsserie introducerar teorin och ger en överblick på arkitektoniska koncept och programmeringstekniker. En labbserie innehåller programmeringsuppgifter i multi-core trådprogrammering och GPU-programmering. På lektionerna introduceras programmeringsplattformarna som används för laborationerna.
|
|
Kursinnehåll: Introduktion till multicore-, mångkärnig- och GPU-arkitektur.Teori för parallella beräkningar. Teori för parallellisering. Design och analys av parallella algoritmer. Översikt av parallella programmeringsspråk. Trådprogrammering för flerkärniga datorer. SIMD-programmering och data-parallell programmering. GPU-programmering med OpenCL och / eller CUDA. Icke-blockerande synkronisering och transaktionsminne. Schemaläggning för multicore- och operativsystem. Introduktion till heterogena multicore och parallell-DSP arkitekturkoncept och programmering av sådana.
|
|
Kurslitteratur: Annonseras på kurshemsidan.
|
|
Examination: |
TEN1
LAB1
|
Skriftlig examination (U,3,4,5) Datorlabbar (U,G) |
3 hp 3 hp
|
|
|
Frågorna i tentamen kontrollerar hur väl kursdeltagaren har uppfyllt lärandemål för kursen. För godkänt tentamen kan brister i uppfyllandet av vissa delmål uppvägas av bättre uppfyllda andra delmål. |