studiehandbok@lith
 

Tekniska högskolan vid Linköpings universitet

 
 
År : 2016
 
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.



Undervisningsspråk är Engelska.
Institution: IDA.
Studierektor: Ahmed Rezine
Examinator: Christoph W. Kessler
Länk till kurshemsida på kursgivande institution
Ansvarig programnämnd: Data&Medie

Engelsk kursplan

Kursen bedrivs på ett sådant sätt att både mäns och kvinnors erfarenhet och kunskaper synliggörs och utvecklas.

Planering och genomförande av kurs skall utgå från kursplanens formuleringar. Den kursvärdering som ingår i kursen skall därför genomföras med kursplanen som utgångspunkt.

Om inget annat anges ovan gäller betygsskala enligt avsnitt a8.5 i de gemensamma bestämmelserna.

Kursplanen gäller för 2016 enligt beslut av ansvarig programnämnd/fakultetstyrelse.

Tekniska högskolan vid Linköpings universitet


Informationsansvarig: TFK , val@tfk.liu.se
Senast ändrad: 06/04/2014