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.
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.
Information per kursomgång
Information för VT 2025 Start 2025-01-14 programstuderande
- Studielokalisering
KTH Campus
- Varaktighet
- 2025-01-14 - 2025-03-16
- Perioder
- P3 (7,5 hp)
- Studietakt
50%
- Anmälningskod
60141
- Undervisningsform
Normal Dagtid
- Undervisningsspråk
Engelska
- Kurs-PM
- Kurs-PM är inte publicerat
- Antal platser
Ingen platsbegränsning
- Målgrupp
Öppen för alla program under förutsättning att kursen kan ingå i programmet.
- Planerade schemamoduler
- [object Object]
- Schema
- Del av program
Civilingenjörsutbildning i informationsteknik, åk 2, Villkorligt valfri
Civilingenjörsutbildning i informationsteknik, åk 3, Villkorligt valfri
Högskoleingenjörsutbildning i datateknik, åk 2, Obligatorisk
Högskoleingenjörsutbildning i datateknik, åk 3, DPU2, Rekommenderad
Högskoleingenjörsutbildning i datateknik, åk 3, SAIN, Rekommenderad
Högskoleingenjörsutbildning i elektronik och datorteknik, åk 3, Rekommenderad
Kandidatprogram, informations- och kommunikationsteknik, åk 2, Obligatorisk
Kandidatprogram, informations- och kommunikationsteknik, åk 3, Obligatorisk
Kandidatprogram, informations- och kommunikationsteknik, åk 3, Rekommenderad
Masterprogram, datalogi, åk 1, CSST, Rekommenderad
Masterprogram, datalogi, åk 1, CSTC, Rekommenderad
Masterprogram, datalogi, åk 2, CSST, Rekommenderad
Masterprogram, datalogi, åk 2, CSTC, Rekommenderad
Kontakt
Al-Shishtawy, Ahmad
Kursplan som PDF
Notera: all information från kursplanen visas i tillgängligt format på denna sida.
Kursplan ID1217 (VT 2024–)Innehåll och lärandemål
Kursinnehåll
Lärandemål
Efter godkänd kurs ska studenten kunna
- 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
- motivera, illustrera och förklara behovet av synkronisering i ett samtidigt exekverande program
- förklara, jämföra, välja och använda de olika synkroniseringsmekanismerna i samtidigt exekverande program
- förklara, jämföra, välja och använda olika kommunikationsmekanismer för processinteraktion i distribuerade program
- 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
- 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.
Utrustning
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
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
Möjlighet till plussning
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
Ges av
Huvudområde
Utbildningsnivå
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
Övrig information
I denna kurs tillämpas EECS hederskodex, se: http://www.kth.se/eecs/utbildning/hederskodex.