SF2568 Parallella beräkningar för storskaliga problem 7,5 hp

Parallel Computations for Large- Scale Problems

Avancerad kurs som förmedlar grundläggande förståelse av hur man utvecklar numeriska algoritmer och hur man implementerar dessa på datorer med fördelat minne genom att använda "message-passing" metoder.

  • Utbildningsnivå

    Avancerad nivå
  • Huvudområde

    Matematik
    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

VT19 för programstuderande

VT19 SAP för Study Abroad Programme (SAP)

  • Perioder

    VT19 P3 (3,0 hp), P4 (4,5 hp)

  • Anmälningskod

    20057

  • Kursen startar

    2019-01-15

  • Kursen slutar

    2019-06-04

  • Undervisningsspråk

    Engelska

  • Studielokalisering

    KTH Campus

  • Undervisningstid

    Dagtid

  • Undervisningsform

    Normal

  • Antal platser

    Ingen begränsning

  • Schema

    Schema (nytt fönster)

  • Kursansvarig

    Michael Hanke <hanke@kth.se>

  • Lärare

    Michael Hanke <hanke@kth.se>

  • Målgrupp

    Study Abroad Programme

VT19 Doktorand för fristående studerande

  • Perioder

    VT19 P3 (3,0 hp), P4 (4,5 hp)

  • Anmälningskod

    20098

  • Kursen startar

    2019-01-15

  • Kursen slutar

    2019-06-04

  • Undervisningsspråk

    Engelska

  • Studielokalisering

    KTH Campus

  • Undervisningstid

    Dagtid

  • Undervisningsform

    Normal

  • Antal platser *

    Max. 1

    *) Vid fler sökande än platser kommer urval att ske.

  • Kursansvarig

    Michael Hanke <hanke@kth.se>

  • Lärare

    Michael Hanke <hanke@kth.se>

  • Målgrupp

    För doktorander på KTH.

VT20 för programstuderande

Lärandemål

Kursens mål är att ge en grundläggande förståelse av hur algoritmer för parallella beräkningar utvecklas och hur dessa kan implementeras på datorer med fördelat minne genom att använda standardiserade metoder.

Förståelse betyder att man efter att ha avslutat kursen kan

  • förklara strategier för parallellisering;
  • hitta egenskaper hos ett givet problem som med fördel kan utnyttjas för en eventuell parallellisering;
  • välja ut och/eller utveckla algoritmer för att lösa ett givet problem som har potentialen för en effektiv parallellisering;
  • välja ut och/eller utveckla datastrukturer för att implementera en parallell algoritm;
  • teoretiskt analysera en given parallell algoritm med hänsyn till effektivitet;
  • implementera en given algoritm på en dator med fördelat minne med hjälp av biblioteket MPI;
  • förstå flödet av meddelanden och undvika oönskade situationer (t ex deadlock, fördröjningar på grund av synkronisering);
  • modifiera och anpassa grundläggande rutiner till speciella situationer;
  • experimentellt utvärdera prestanda av ett parallellt program;
  • förklara skilnader mellan den teoretiskt förväntade prestandan och den praktiskt obserberade prestandan;
  • självständigt lösa ett lite mer komplext problem och presentera dina resultat i en rapport;
  • köra program på högprestandadatorer;
  • förstå utmaningar av Green Computing.

Kursens huvudsakliga innehåll

  • Grundläggande idéer om hårdvaruarkitektur, minneshierarkier, kommunikation, parallelliseringsstrategier, effektivitetsmått;
  • högprestandaberäkningar och Green Computing;
  • introduktion till MPI ”Message Passing Interface”;
  • enkla numeriska algoritmer för matrisoperationer och Gausseliminering;
  • algoritmer på grafer, t ex grafpartitioneringsproblemet;
  • parallel sortering;
  • mer avancerade parallella algoritmer;
  • standarbibliotek.

Behörighet

För fristående kursstuderande krävs 90 högskolepoäng varav 45 högskolepoäng inom matematik eller informationsteknik. Dessutom krävs engelska B eller motsvarande.

Rekommenderade förkunskaper

Grundkurs i numerisk analys, datalogi (helst DD1320, DD1321 eller motsvarande). Grundläggande programmeringskunskaper, helst i C, C++, Fortran. För studenter som kan Java eller Python ges en kort introduktion till C.

Litteratur

Barry Wilkinson, Michael Allen: Parallel Programming, 2nd ed., Pearson Education
International 2005, ISBN 0-13-191865-6.
Peter S. Pacheco: A Users Guide to MPI, downloadable from internet.
Michael Hanke: Lecture Notes.

Examination

  • HEMA - Hemuppgift, 4,5, betygsskala: A, B, C, D, E, FX, F
  • PROA - Projekt, 3,0, betygsskala: A, B, C, D, E, FX, F

Krav för slutbetyg

  • Hemuppgifter och en lappskrivning (HEMA; 4,5 hp)
  • Projektrapport inkl muntlig presenation (PROA; 3,0 hp)

Ges av

SCI/Matematik

Kontaktperson

Michael Hanke, hanke@kth.se

Examinator

Michael Hanke <hanke@kth.se>

Påbyggnad

Please discuss with the course leader.

Versionsinformation

Kursplan gäller från och med VT2018.
Examinationsinformation gäller från och med HT2014.