Kursplan för Parallell funktionell programmering

Kursplan fastställd 2021-02-26 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnParallel functional programming
  • KurskodDAT280
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPALG
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 02133
  • Blockschema
  • Sökbar för utbytesstudenterJa

Poängfördelning

0112 Tentamen 6 hp
Betygsskala: TH
6 hp
    0212 Laboration 1,5 hp
    Betygsskala: UG
    1,5 hp

      I program

      Examinator

      Gå till kurshemsidan (Öppnas i ny flik)

      Behörighet

      Grundläggande behörighet för avancerad nivå
      Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

      Särskild behörighet

      Engelska 6
      Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

      Kursspecifika förkunskaper

      Studenter skall ha fullföljt två års studier inom datavetenskap, datateknik eller jämförbar utbildning. Kursdeltagare skall ha genomgått en introduktionskurs i funktionell programmering, företrädesvis användande Haskell eller Erlang. (Kursexempel på Chalmers är TDA452 och TDA555.)

      Syfte

      Syftet med kursen är att introducera principer och praktiska tekniker för parallell programmering i ett funktionellt programmeringsspråk. Med parallell programmering menas användning av flera hårdvaruenheter (kärnor eller processorer) för att öka beräkningskapaciteten. Kursen belyser metoder för parallell funktionell programmering i både Haskell och Erlang. Akutell forskning inom ämnet presenteras, och kursen använder vetenskapliga artiklar som kursmaterial.

      Lärandemål (efter fullgjord kurs ska studenten kunna)

      Kunskap och förståelse
      1. Förstå betydelsen av skillnad mellan samtidighet (concurrency) och parallellism
      2. Kunna beskriva metoder för parallellism inom funktionella programspråk i den vetenskapliga litteraturen.

      Färdigheter
      1. Skriva, modifiera och testa parallella funktionella program, avsedda för olika datorsystemarkitekturer inklusive multiprocessorer med delat minne, 
      nätverk av servrar, och grafikprocessorer (GPU).
      2. Tolka exekveringsprofiler av parallella program och åtgärda flaskhalsar.

      Värderingsförmåga och förhållningssätt
      1. Identifiera under vilka omständigheter ett funktionellt språk är lämpligt för att läsa ett parallellt programmeringsproblem.
      2. Välja den form av parallell funktionell programmering som passar för ett givet problem, och förklara valet.

      Innehåll

      Kursen behandlar principer och praktiska tekniker för parallell programmering i Haskell och Erlang.

      Fördelar med parallell funktionell programmering: oföränderlighet (immutability), avsaknad av synkroniseringsfel, (determinism).

      Att profilera parallella funktionella program: kornighet, flaskhalsar, lokalitet, databeroenden 

      Parallella funktionella algoritmer: "söndra-och-härska".

      Metoder för att uttrycka parallellism i Haskell: "Eval-monaden", "Par-monaden", parallella strategier, skelett och dataparallellism.

      Funktionell GPU programmering.

      Parallellisering och distribuering i Erlang. Skalbarhet. Felhantering i ett massivt parallellt system.

      Fallstudier av applikationer för parallell funktionell programmering inom industrin, så som "map-reduce" och skalbara "no-SQL" databaser.

      Organisation

      Kursen ges i form av föreläsningar och obligatoriska laborationer. Gästföreläsningar hålls av externa experter och ledande forskare.

      Litteratur

      Utvalda vetenskapliga artiklar, se kurshemsidan.

      Examination inklusive obligatoriska moment

      För att bli godkänd på kursen krävs godkänd skriftlig tentamen samt godkända laborationer. Baserat på tentamensresultatet ges betygen U, 3, 4 eller 5.

      Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.