Parallelldatorprogrammering för bearbetning av stora datamängder, 7,5 hp
Big Data Parallel Programming, 7.5 credits
Kurskod: DT8034
Akademin för informationsteknologi
Nivå: Avancerad nivå
Välj kursplan
Fastställd av: Forsknings- och utbildningsnämnden, 2024-09-18 och gäller studenter antagna vårterminen 2025.
Huvudområde med fördjupning
Datateknik, Avancerad nivå, har kurs/er på avancerad nivå som förkunskapskrav. (A1F)Behörighetskrav
Kursen Edge Computing och Internet of Things 7,5 hp. Undantag ges för kravet på svenska. Engelska 6.
Kursens inplacering i utbildningssystemet
Kursen ingår i Masterprogrammet i informationsteknologi 120 hp och som valbar kurs i programmet Civilingenjör i datateknik 300 hp. Kursen ges även som fristående kurs.
Mål
Att hantera enorma datamängder är kärnan i datautvinning, djupt lärande och autonomt beslutsfattande i realtid. Alla dessa är i sin tur kärnan i moderna applikationer för artificiell intelligens. Data kan vara mer eller mindre permanent i molnet och nås via distribuerade filsystem och / eller strömma i realtid från flera sensorer i mycket snabb takt.
Tillgång till data såväl som bearbetning sker med användning av mycket välutvecklade ramverk där både lagring och bearbetning distribueras och bearbetning sker parallellt. Syftet med kursen är att presentera denna infrastruktur, inklusive parallell programmering för genomförandet av dessa ramverk. Detta ska göra det möjligt för studenten att bedöma hur man väljer ramverk för applikationer, identifiera fördelar och nackdelar, föreslå förbättringar och till och med genomföra förbättringar.
Efter avslutad kurs ska studenten kunna:
Kunskap och förståelse
- förklara distribuerade filsystem, begrepp om beräkning i distribuerade system samt begrepp om parallell programmering
- beskriva verktyg och programmeringsspråk för lagring och behandling av data i tillämpningar inom maskininlärning och datautvinning
Färdighet och förmåga
- använda specialiserade ramverk och metoder för programmering av tillämpningar inom maskininlärning och datautvinning, t.ex. Hadoop och Spark
- använda specialiserade programmeringsspråk för GPU, så som CUDA och / eller OpenCL för att uppnå höga prestanda
Värderingsförmåga och förhållningssätt
- värdera lämpliga metoder och verktyg för lagring och behandling av data för tillämpningar inom maskin inlärning och datautvinning.
Innehåll
Kursen innehåller moderna tekniker, metoder och verktyg för distribuerat lagringsutrymme för statiska och strömmade stora datamängder, till exempel distribuerade och feltoleranta nyckel/värde tabeller, inklusive replikering- och samordningsmekanismer.
Kursen innehåller också moderna tekniker, metoder och verktyg för distribuerad bearbetning av statiska och strömmade stora datamängder inklusive ramverk som MapReduce och Spark.
Slutligen innehåller kursen begrepp, metoder och verktyg för parallell programmering för data kluster, inklusive GPU.
Undervisningsspråk
Undervisning
Kursen innehåller föreläsningar om distribuerade filsystem, begrepp om distribuerade beräkningar, parallell programmerings paradigmer, specialiserade metoder, ramverk och verktyg. Föreläsningarna introducerar materialet i litteraturen.
Lab-övningar på dataintensiva beräkningar och parallell programmering används för att studenterna ska kunna utveckla färdigheter och förmågor inom området.
Ett projekt om dataintensiva beräkningar gör det möjligt för studenterna att använda sina kunskaper i en realistisk tillämpning.
Betygsskala
Examinationsformer
För att klara kursen måste studenten klara laboratorierna och projektet. I projektet ingår ett program, en rapport, en presentation och projektet ligger till grund för en individuell muntlig tentamen.
1901: Laborationer, 2,5 hp
Tvågradig skala (UG): Underkänd (U), Godkänd (G)
1902: Projekt, 5 hp
Fyrgradig skala, sifferbetyg (TH): Underkänd (U), Godkänd (3), Väl godkänd (4), Mycket väl godkänd (5)
Undantag från angiven examinationsform
Om särskilda skäl finns får examinator göra undantag från angiven examinationsform och medge att en student examineras på annat sätt. Särskilda skäl kan till exempel vara beslut om riktat pedagogiskt stöd.
Kursvärdering
I kursen ingår kursvärdering. Denna är vägledande för utveckling och planering av kursen. Kursvärderingen dokumenteras och redovisas för studenterna.
Kurslitteratur och övriga läromedel
Litteraturlista 2025-01-20 – Tills vidare
Kursen kommer att använda flera källor, i många fall endast delar av dessa. Materialet kommer att utökas med tutorials för de verktyg och ramverk som ska användas i kursen samt med forskningspublikationer.
Zhang, Y, Cao, T, Li, S, Tian, X, Yuan, L, Jia, H, Vasilakos, A. Parallel Processing Systems for Big Data: A Survey
http://ieeexplore.ieee.org/document/7547948/
Leskovec, J, Rajaraman, A, Ullman, J. Mining of Massive Datasets
http://infolab.stanford.edu/~ullman/mmds/book.pdf
Hennessy, J. L., & Patterson, D. A. Computer architecture: a quantitative approach. Elsevier. Chapter on The Warehouse-Scale Computer
Jules S. Damji, Brooke Wenig, Tathagata Das, Denny Lee. Learning Spark: Lightning-Fast Data Analytics, 2nd Edition, O’Reilly, 2020