Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.
Blekinge Tekniska Högskola
Institutionen för datavetenskap
Revision: 3
Dnr: BTH-4.1.14-0925-2023
Multiprocessorprogrammering
Multiprocessor Programming
6 högskolepoäng (6 credits)
Kurskod: DV2606
Huvudområde: Datavetenskap, Teknik
Utbildningsområde: Tekniska området
Utbildningsnivå: Avancerad nivå
Fördjupning: A1N - Avancerad nivå, har endast kurs/er på grundnivå som förkunskapskrav
Undervisningsspråk: Engelska
Gäller från: 2023-08-11
Fastställd: 2023-08-11
Denna kurs är inrättad av dekan 2021-02-03. Kursplanen är fastställd av prefekten vid institutionen för datavetenskap 2023-08-11 och gäller från 2023-08-11.
För tillträde till kursen krävs 60 hp avklarade i huvudområdet datavetenskap eller programvaruteknik inklusive avklarade kurser i programmering 12 hp, algoritmer och datastrukturer 6 hp, operativsystem samt datorteknik 6 hp.
Parallellism har under många år varit ett sätt att uppnå hög prestanda i datorsystem. Datorsystem består idag av parallellism på flera olika nivåer: regelbundna arrayer (matriser) av SIMD processorkärnor som i GPU:er, ett mindre antal generella processorkärnor som i multicore-processorer, eller sammankopplade noder som i ett distribuerat system. För att kunna utnyttja hårdvaran till fullo, behöver man skriva effektiva parallella program. Mao, parallella datorsystem och parallell programmering är fundamentala grundstenar för dagens och framtidens datorer.
Denna kurs syftar till att studenterna ska lära sig att programmera datorsystem som innehåller många processorer eller processorkärnor så att man uppnår hög prestanda. Vi kommer att gå igenom programmering för delat minne, både MIMD och SIMD, samt programmering av distribuerade system. Fokus i kursen kommer att ligga på programmering av multiprocessorer med delat minne.
Kursen omfattar följande moment:
• Introduktion till multiprocessorer och parallell programmering.
• Konstruktionsprinciper for parallella datorarkitekturer och datorsystem.
• Programmeringsmodeller och konstruktionsprinciper för parallella program för att uppnå hög prestanda, t ex uppdelning av arbetet för att passa underliggande arkitekturer, kommunikation och synkronisering.
• Bibliotek för parallell programmering, såsom t ex pthreads och CUDA.
• Exempelalgoritmer för ett antal intressanta applikationsområden.
• Praktisk övning i utveckling av parallella program.
Följande lärandemål examineras i kursen:
Efter genomförd kurs ska studenten kunna:
Efter genomförd kurs ska studenten kunna:
Efter genomförd kurs ska studenten kunna:
Undervisningen är en kombination av föreläsningar och laborationer. Föreläsningarna presenterar och förklarar de teoretiska grunderna. Studenten förväntas dessutom att självständigt tillgodogöra sig teoretiska kunskaper med hjälp av självstudier av relevant litteratur. Laborationerna fokuserar på övningar som utvecklar studentens kunskap inom området.
De obligatoriska laborationsuppgifterna genomförs enskilt eller i grupp inom givna tidsramar. Om laborationer kan genomföras i grupp anges det vid kursstart och i kurs-PM. Laborationsuppgifterna skall genomföras huvudsakligen i programmeringsspråken C / C++. Studenten förväntas ha tillräcklig förståelse för språken för att självständigt klara av att omvandla teori till praktik för lösa laborationsuppgifterna.
Examinationsmoment för kursen
Kod | Benämning | Omf. | Betyg |
2020 | Laboration 1 | 1,5 hp | GU |
2030 | Laboration 2 | 1,5 hp | GU |
2110 | Salstentamen[1] | 3 hp | AF |
[1] Bestämmer kursens slutbetyg vilket utfärdas först när samtliga moment godkänts.
Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredställande, E Tillräckligt, FX Underkänd, något mer arbete krävs, F Underkänd.
I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.
Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.
Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.
Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.
Huvudlitteratur
• Wen-mei W. Hwu, David B. Kirk, and Izzat El Hajj, Programming Massively Parallel Processors: A Hands-on Approach, 4th Edition, 2022, ISBN-9780323912310 (paper back) ISBN-9780323984638 (ebook).
• T. Rauber and G. Rünger, Parallel Programming for Multicore and Cluster Systems, 2nd ed., Springer, 2013, ISBN 978-3-642-37800-3.
• Material från institutionen.