DV2544 Multiprocessorsystem

Programkurs, 7,5 Högskolepoäng, Avancerad nivå, vårterminen 2020

Denna kurs är del av program och går inte att söka till.

Parallellism har under många år varit ett sätt att uppnå hög prestanda i datorsystem. Att skriva parallella program är svårt och tidskrävande, och har därför tidigare oftast bara använts i storskaliga
serversystem. Bilden har dock ändrats med introduktionen av sk multicoreprocessorer. Idag är i princip varje dator försedd med en liten multiprocessor. För att kunna utnyttja denna till fullo, behöver man skriva parallella program. Mao, multiprocessorsystem och parallell programmering är fundamentala grundstenar för dagens och framtidens datorer.

För att kunna utveckla bra parallella program för framtidens datorer är det väsentligt att studenten utvecklar en god förståelse för olika konstruktionsprinciper för multiprocessorsystem, samt en god förståelse för olika metoder och tekniker för att utveckla parallella program.

Fakta

  • Undervisningsform: Campus, dagtid, deltid 50%
  • Period: 2020 vecka 14 till 2020 vecka 23
  • Nivå: A1N
  • Anmälan: Denna kurs är del av program och går inte att söka till.
  • Språk: Undervisningen ges på engelska.
  • Ort: Karlskrona
  • Huvudområde: Datavetenskap
  • Kursplan: Ladda ner
  • Välkomstbrev: Denna kurs är en del av ett program och saknar välkomstbrev.
  • Förkunskapskrav: För tillträde till kursen krävs att den studerande har minst 90 högskolepoäng inom Datavetenskap eller Programvaruteknik, inklusive godkända kurser i: programmering, 15 hp, algoritmer och datastrukturer, 6 hp, datorteknik, 6 hp och Realtids- och operativsystem, 6 hp.

Innehåll

Kursen omfattar följande moment:
  • introduktion till multiprocessorer och parallell programmering
  • konstruktionsprinciper för multiprocessorer och parallella datorsystem
  • konstruktionsprinciper för parallella program
  • programmeringsmodeller för parallella program
  • exempelalgoritmer för att antal viktiga applikationsområden praktisk övning i utveckling av parallella program

Lärandemål

Kunskap och förståelse
Efter genomförd kurs skall studenten:
  • utförligt kunna redogöra för uppbyggnad och funktion hos olika typer av multiprocessorer och parallella datorsystem
  • utförligt kunna redogöra för olika typer av programmeringsmodeller för parallelldatorer
  • översiktligt kunna redogöra för de möjligheter och problem som finns vid utveckling av parallella program
  • utförligt kunna redogöra för olika principer att designa parallella program för att få bra prestanda
  • översiktligt kunna analysera prestanda i parallella program och parallella datorsystem


Färdighet och förmåga
Efter genomförd kurs skall studenten:
  • kunna tillämpa olika principer och tekniker för att utveckla parallella program
  • kunna utveckla program för olika programmeringsmodeller, dvs för både delat minnet och distribuerat icke-delat minne
  • kunna utföra enklare prestandamätningar och prestandaanalys av parallella program
  • kunna genomföra lämpliga optimeringar för att förbättra prestandan i ett parallellt program


Värderingsförmåga och förhållningssätt
Efter genomförd kurs skall studenten:
  • både skriftligt och muntligt kunna redogöra för och motivera sina lösningar på projektuppgifter
  • självständigt och kritiskt kunna utvärdera och analysera sina lösningar

Kurslitteratur och övriga läromedel

Huvudlitteratur

[1] T. Rauber and G. Rünger, Parallel Programming for Multicore and Cluster
Systems, 2nd ed., Springer, 2013, ISBN
978-3-642-37800-3.

[2] Relevanta tutorials och artiklar. Bestäms inför varje kursomgång.

[3] Material från institutionen.

Referenslitteratur

[1] G. Almasi and A. Gottlieb, Highly Parallel Computing, 2nd ed., Addison Wesley Longman, 1993, ISBN 0-8053-0443-6.

[2] G. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison Wesley, 2000, ISBN 0-201-35752-6.

[3] J. Dongarra, I. Foster, G. Fox, W. Gropp, K. Kennedy, L. Torczon, and A. White, Sourcebook of Parallel Computing, Morgan Kaufmann Publishers, 2003, ISBN 1-55860-871-0.

[4] A. Grama, A. Gupta, G. Karypis, and V. Kumar, Introduction to Parallel Computing, 2nd edition, Addison-Wesley, 2003, ISBN 0201648652.

[5] J.L. Hennessy and D.A. Patterson, Computer Architecture ? A Quantitative Approach, 4th edition, Morgan Kaufmann Publishers, 2007, ISBN 0-12-370-490-1.

[6] M. Herlihy and N. Shavit, The Art of Multiprocessor Programming, Revised Reprint, Morgan Kaufmann Publishers, 2012, ISBN 0123973376.

[7] C. Hughes and T. Hughes, Professional Multicore Programming ? Design and Implementation
for C++ Developers, Wiley Publishers, 2008, ISBN 978-0-470-28962-4.

[8] N.M. Josuttis, The C++ Standard Library: A Tutorial and Reference, 2nd ed., Pearson Education, 2012, ISBN 0-321-62321-5.

[9] B. Stroustrup, The C++ Programming Language, 4th ed., Pearson Education, 2013, ISBN 0-321-56384-0.

[10] B. Wilkinson and M. Allen, Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd edition, Prentice Hall, 2004, ISBN 0131405632.

Kurslitteratur och övriga läromedel

Huvudlitteratur

[1] T. Rauber and G. Rünger, Parallel Programming for Multicore and Cluster
Systems, 2nd ed., Springer, 2013, ISBN
978-3-642-37800-3.

[2] Relevanta tutorials och artiklar. Bestäms inför varje kursomgång.

[3] Material från institutionen.

Referenslitteratur

[1] G. Almasi and A. Gottlieb, Highly Parallel Computing, 2nd ed., Addison Wesley Longman, 1993, ISBN 0-8053-0443-6.

[2] G. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison Wesley, 2000, ISBN 0-201-35752-6.

[3] J. Dongarra, I. Foster, G. Fox, W. Gropp, K. Kennedy, L. Torczon, and A. White, Sourcebook of Parallel Computing, Morgan Kaufmann Publishers, 2003, ISBN 1-55860-871-0.

[4] A. Grama, A. Gupta, G. Karypis, and V. Kumar, Introduction to Parallel Computing, 2nd edition, Addison-Wesley, 2003, ISBN 0201648652.

[5] J.L. Hennessy and D.A. Patterson, Computer Architecture ? A Quantitative Approach, 4th edition, Morgan Kaufmann Publishers, 2007, ISBN 0-12-370-490-1.

[6] M. Herlihy and N. Shavit, The Art of Multiprocessor Programming, Revised Reprint, Morgan Kaufmann Publishers, 2012, ISBN 0123973376.

[7] C. Hughes and T. Hughes, Professional Multicore Programming ? Design and Implementation
for C++ Developers, Wiley Publishers, 2008, ISBN 978-0-470-28962-4.

[8] N.M. Josuttis, The C++ Standard Library: A Tutorial and Reference, 2nd ed., Pearson Education, 2012, ISBN 0-321-62321-5.

[9] B. Stroustrup, The C++ Programming Language, 4th ed., Pearson Education, 2013, ISBN 0-321-56384-0.

[10] B. Wilkinson and M. Allen, Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd edition, Prentice Hall, 2004, ISBN 0131405632.

Lärande och undervisning

De teoretiska grunderna i kursen presenteras på föreläsningar och/eller övningar. Studenten förväntas dessutom att självständigt tillgodogöra sig teoretiska kunskaper med hjälp av självstudier av relevant litteratur. De teoretiska kunskaperna tillämpas sedan praktiskt dels i lärarledda laborationer och dels i obligatoriska projektuppgifter som genomförs enskilt eller i grupp inom givna tidsramar.

Arbetslivsanknytning

Laborationer och projekt.

Lärare

Kursansvarig
  1. Håkan Grahn
Lärare
  1. Carina Nilsson

Planerade lärtillfällen

Föreläsningar, laborationer och projektarbete.

Tidsåtgång

I genomsnitt bör en student räkna med att studera 200 timmar för att nå lärandemålen.
I denna tid ingår alla olika förekommande lärandeaktiviteter (föreläsningar, självstudier, examination m. m.).
Tidsuppskattningen baseras på att ett akademiskt år omfattar 60 högskolepoäng (motsvarar 60 ECTS credits),
som svarar mot en total studietid på ca 1 600 timmar. Den faktiska studietiden varierar individuellt.

Bedömning

Examinationsmoment för kursen
Kod Benämning Högskolepoäng Betyg
1405 Tentamen 1 3 A-F
1415 Projekt: Multithreading 1.5 G-U
1425 Projekt: OpenMP 1.5 G-U
1435 Projekt: Message-passing 1.5 G-U
  1. 1Bestämmer kursens slutbetyg vilket utfärdas först när samtliga moment godkänts.

Betyg

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredsställande, E Tillräckligt, FX Otillräckligt, komplettering krävs, F Underkänd.

Kommande tentamenstillfällen

Inga kommande centralt samordnade tentamenstillfällen hittades för denna kurs.

För att få delta vid ett centralt samordnat tentamenstillfälle måste du ha anmält dig i Studentportalen senast 15 dagar innan tentamensdagen.


Lokal och tidpunkt publiceras ca 5 dagar innan tentamensdagen.


Det kan finnas andra planerade examinationstillfällen. Information om de finns i It's Learning eller på annan plats som kursansvarig hänvisar till.

Kursutvärdering

Kursansvarig ansvarar för att studenternas synpunkter på kursen systematiskt och regelbundet inhämtas och att resultaten av utvärderingar i olika former påverkar kursens utformning och utveckling.