använda effektiva metoder och språk för programmering av parallella datorarkitekturer, programmera parallelldatorer med distribuerat minne (MPI) och delat minne (OpenMP).
Kursinnehåll
Arkitekturen hos parallelldatorsystem: Minneshierarkier, delat minne samt distribuerade minnesarkitekturer. Vektoroperationer. Parallella exekveringsmodeller och språk. Prestandamätning och uppsnabbning. Meddelandesändningsbaserad programmering, multithreading respektive dataparallell programmering. Design och analys av grundläggande parallella algoritmer. Tidskomplexitet. Skalbarhet. Schemaläggning av parallellprogram. Verktyg för parallellprogrammering. MPI (Message Passing Interface) och OpenMP. Grundläggande parallella numeriska algoritmer och BLAS (Basic Linear Algebra Subprograms). Tillämpningsområden för parallellprogrammering. Parallell lösning av ekvationssystem. Laborationskursen ger praktisk kunskap om programmering av parallella datorsystem, olika programmeringsparadigmer används.
Förutsättningar
Grundkurser i programmering. Det rekommenderas en kurs i processprogrammering eller liknande, eftersom förståelse för processbegreppet förutsätts. Programmeringsövningar erfordrar programmeringskunskaper i C/C++.