Hoppa till huvudinnehållet

ID1217 Programmering av parallella system 7,5 hp

Kursen behandlar principer för och konstruktion av program bestående av flera parallella processer och trådar med tillämpning på realtidssystem, operativsystem, parallelldatorer och distribuerade system.

Välj termin och kursomgång

Välj termin och kursomgång för att se aktuell information och mer om kursen, såsom kursplan, studieperiod och anmälningsinformation.

Kursval

Gäller för kursomgång

VT 2025 Start 2025-01-14 programstuderande

Anmälningskod

60141

Rubriker med innehåll från kursplan ID1217 (VT 2024–) är markerade med en asterisk ( )

Innehåll och lärandemål

Kursinnehåll

Parallellprogrammering med trådar och gemensamma variabler. Processer och synkronisering.
Kritiska sektioner, lås, barriärer, semaforer och monitorer. Språköversikt: trådar i Java, Pthreads.
Introduktion till parallell och distribuerad programmering med processer.
Meddelandesändning, RPC, RMI och rendezvous.
Översikt över parallella och distribuerade
programmeringsmiljöer t ex MPI, PVM och OpenMP. Prestanda.

Lärandemål

Efter godkänd kurs ska studenten kunna

  1. jämföra och kontrastera programmeringsmodeller och paradigm för delat minne och distribuerat minne för att välja de mest lämpliga modellerna och paradigmen för ett givet problem
  2. motivera, illustrera och förklara behovet av synkronisering i ett samtidigt exekverande program
  3. förklara, jämföra, välja och använda de olika synkroniseringsmekanismerna i samtidigt exekverande program
  4. förklara, jämföra, välja och använda olika kommunikationsmekanismer för processinteraktion i distribuerade program
  5. implementera samtidigt exekverande och distribuerade program i C, Java eller andra programspråk med hjälp av olika programmeringsmiljöer såsom pthreads, openMP, Java-trådar och monitorer, Socket API, MPI och Java RMI
  6. utvärdera, mäta och uppskatta snabbhet, prestanda och skalbarhet samt analysera säkerhets- och livskraftsegenskaper för parallella och distribuerade program

i syfte att

  • få kunskaper i grunderna för samtidig programmering, mer specifikt om programmeringsmodeller, koncept, paradigm, tekniker, synkronisering och kommunikationsmekanismer
  • utveckla praktiska färdigheter och erfarenhet i programmeringsmiljöer för att utveckla parallella och distribuerade program.

Kurslitteratur och förberedelser

Särskild behörighet

Kunskaper om datorteknik/datorarkitektur inklusive flerkärniga arkitekturer, 6 hp, motsvarande slutförd kurs IS1200/IS1500/EP1200/HE1028.

Kunskaper och färdigheter i C-programmering, 3 hp, motsvarande slutförd kurs IS1200/IS1500 eller DD1388/SF2565/HI1024.

Kunskaper och färdigheter i objektorienterad programmering, 6 hp, motsvarande slutförd kurs ID1018/DD1337/HI1027/DD1310-DD1319/DD1321/DD1331/DD100N.

Rekommenderade förkunskaper

Ingen information tillagd

Utrustning

Ingen information tillagd

Kurslitteratur

An Introduction to Parallel Programming, by Peter S. Pacheco, and Matthew Malensek, Morgan Kaufmann, 2021, eBook ISBN: 9780128046180, Paperback ISBN: 9780128046050. 

Examination och slutförande

När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.

Betygsskala

A, B, C, D, E, FX, F

Examination

  • LABA - Laboration, 3,0 hp, betygsskala: P, F
  • TEN1 - Tentamen, 4,5 hp, betygsskala: A, B, C, D, E, FX, F

Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Tentamen är datorbaserad och ska göras på plats på KTH.

Övriga krav för slutbetyg

Godkänd skriftlig tentamen (TEN1; 4,5 hp) och godkända programmeringsuppgifter (LABA;3,0hp).

Möjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Ytterligare information

Kursrum i Canvas

Registrerade studenter hittar information för genomförande av kursen i kursrummet i Canvas. En länk till kursrummet finns under fliken Studier i Personliga menyn vid kursstart.

Ges av

Huvudområde

Informationsteknik, Teknik

Utbildningsnivå

Grundnivå

Påbyggnad

Någon (eller någon kombination) av följande kurser: ID2201, ID2203 Distribuerade System
IS2204 Distribuerad programmering, peer-to-peer och GRIDS
2G1511 Datorarkitektur
2G1114 Parallella datorsystem

Kontaktperson

Al-Shishtawy, Ahmad

Övrig information

I denna kurs tillämpas EECS hederskodex, se: http://www.kth.se/eecs/utbildning/hederskodex.