Kursplan för Programmering av parallelldatorer

Programming of Parallel Computers

Kursplan

  • 10 högskolepoäng
  • Kurskod: 1TD480
  • Utbildningsnivå: Avancerad nivå
  • Huvudområde(n) och successiv fördjupning: Datavetenskap A1N, Teknik A1N, Tillämpad beräkningsvetenskap A1N

    Förklaring av koder

    Koden visar kursens utbildningsnivå och fördjupning i förhållande till andra kurser inom huvudområdet och examensfordringarna för generella examina:

    Grundnivå
    G1N: har endast gymnasiala förkunskapskrav
    G1F: har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
    G1E: innehåller särskilt utformat examensarbete för högskoleexamen
    G2F: har minst 60 hp kurs/er på grundnivå som förkunskapskrav
    G2E: har minst 60 hp kurs/er på grundnivå som förkunskapskrav, innehåller examensarbete för kandidatexamen
    GXX: kursens fördjupning kan inte klassificeras.

    Avancerad nivå
    A1N: har endast kurs/er på grundnivå som förkunskapskrav
    A1F: har kurs/er på avancerad nivå som förkunskapskrav
    A1E: innehåller examensarbete för magisterexamen
    A2E: innehåller examensarbete för masterexamen
    AXX: kursens fördjupning kan inte klassificeras.

  • Betygsskala: Underkänd (U), godkänd (3), icke utan beröm godkänd (4), med beröm godkänd (5)
  • Inrättad: 2009-03-16
  • Inrättad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Reviderad: 2018-08-30
  • Reviderad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Gäller från: vecka 24, 2019
  • Behörighet: 120 hp inklusive matematik 30 hp, Programmeringsteknik II och Beräkningsvetenskap I eller motsvarande.
    Engelska 6. (Med en svensk kandidatexamen uppfylls kravet på engelska.)
  • Ansvarig institution: Institutionen för informationsteknologi

Mål

Efter godkänd kurs ska studenten kunna:

  • redogöra för olika typer av parallelldatorer;
  • programmera olika typer av parallelldatorer, från bärbara datorer med flerkärniga processorer till storskaliga PC-kluster, dvs. kunna hantera olika programmeringsmodeller;
  • konstruera parallella algoritmer, dels kunna identifiera parallellism i en given algoritm, dels kunna implementera denna parallellism;
  • identifiera de faktorer som begränsar parallellismen i ett program eller algoritm;
  • välja lämplig parallell programmeringsmodell utifrån givna förutsättningar som t.ex. datorarkitektur, tillämpning och effektivitet.

Innehåll

Kursen behandlar olika typer av parallelldatorer, från bärbara datorer med flerkärniga processorer till storskaliga PC-kluster. Klassificering av parallelldatorer: olika typer av minnesorganisation, processorer, nätverk och programkontroll. Olika former av parallellism.
Programmeringsmodeller: programmering i lokal namnrymd med MPI och i global namnrymd med OpenMP och Pthreads (Posix-threads). Orientering om andra programmeringsmodeller och implememtationer, t.ex. UPC (Unified parallel C) och MATLAB Parallel Toolbox. Programmering av grafikkort. Prestandamått: Speedup, effektivitet, flops.
Parallellisering av grundläggande algoritmer i numerisk linjär algebra och inom sortering: matris-vektor-multiplikation och matris-matris multiplikation, Quicksort. Parallellisering av algoritmer inom något av områdena lösning av linjära ekvationssystem, partiella differentialekvationer, molekyldynamik (N-kroppssimulering) eller grafalgoritmer.

Undervisning

Föreläsningar, laborationer och obligatoriska inlämningsuppgifter. Projektarbete. Gästföreläsning.

Examination

Skriftligt prov (6 hp) samt inlämningsuppgifter och projekt (4 hp). 

Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en enskild student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare för studenter med funktionsnedsättning.

Litteratur

Litteraturlista

Gäller från: vecka 24, 2019

  • Introduction to Parallel Computing, 2/E Grama, A.; Karypis, G.; Kumar, V.; Gupta, A.

    2nd. ed.: Addison-Wesley, 2003

    Se bibliotekets söktjänst

    Obligatorisk