DM818: Parallel Computing (10 ECTS)

STADS: 15014001

Niveau
Kandidatkursus

Undervisningsperiode
Kurset er placeret i efterårssemesteret.
Udbydes efter behov.

Ansvarlige undervisere
Email: daniel@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Torsdag 15-17 U23 47 DM818
H1 TE Mandag 14-16 IMADA semi 36,38-40,43-44,46-51
H1 TE Tirsdag 15-17 U30 36
H1 TE Tirsdag 15-17 IMADA semi 38,40,43-44,46-49
H1 TE Onsdag 10-12 IMADA semi 48
H1 TE Torsdag 16-18 IMADA semi 36,38-40,43-44,46
H1 TE Torsdag 15-17 IMADA semi 47-51
H1 TE Fredag 10-12 IMADA semi 36,38,40-41,44,46-47,49-50
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal.

Indgangskrav:
Bestået bachelorgrad i datalogi, fysik, matematik, anvendt matematik, matematik-økonomi eller tilsvarende. 
Kurset kan ikke følges hvis DM853 er bestået.
 


Faglige forudsætninger:
Stoffet fra DM507 Algoritmer og datastrukturer forudsættes kendt.

Studerende, der følger kurset, forventes at:
• kunne designe og implementere programmer, ved hjælp af standard algoritmiske tilgange og datastrukturer
• kunne vurdere kompleksitet af algoritmer, såvel med hensyn til køretid som med hensyn til pladsforbrug.
 


Formål
Målet med kurset er at introducere deltagerne til beregning på parallelle computere, herunder til maskinarkitekturer, programmeringsparadigmer, algoritmer og programmeringsstandarder. Både algoritmer for klassiske datalogiske problemer (såsom sortering, søgning og dynamisk programmering) og algoritmer for scientific computing (såsom matrixmultiplikation) vil blive gennemgået. Deltagerne vil lære at bruge de mest udbredte programmeringsstandarder for parallel programmering (MPI, Pthreads, OpenMP), og vil lære at analysere effektiviteten af parallelle programmer ved hjælp af metrikker for skalerbarhed.

Kurset bygger oven på den viden, der er erhvervet i kurset DM507 Algoritmer og datastrukturer. Kurset giver et videnskabeligt grundlag for at skrive et speciale, der sigter på at anvende Parallel Computing til problemer i datalogi eller andre discipliner, herunder kemi, fysik eller biologi.
I forhold til uddannelsens kompetenceprofil har kurset eksplicit fokus på at:
 
• Give viden om et udvalg af specialiserede modeller og metoder udviklet inden for datalogi baseret på højeste internationale forskning, herunder emner fra fagets forskningsfront.
• Give viden om datalogiske modeller og metoder beregnet til anvendelser i andre faglige områder.
• Beskrive, analysere og løse avancerede datalogiske problemstillinger ved hjælp af de lærte modeller.
• Belyse fremsatte hypoteser på kvalificeret teoretisk baggrund og forholde sig kritisk til egne og andres forskningsresultater og videnskabelige modeller.
• Udvikle nye varianter af de lærte metoder, hvor det konkrete problem kræver det.
• Formidle forskningsbaseret viden og diskutere professionelle og videnskabelige problemstillinger med både fagfæller og ikke-specialister. 
• Planlægge og udføre videnskabelige projekter på højt fagligt niveau herunder styre arbejds- og udviklingssituationer, der er komplekse, uforudsigelige og forudsætter nye løsningsmodeller.
• Kunne tage ansvar for egen faglig udvikling og specialisering.
Kunne igangsætte og gennemføre fagligt og tværfagligt samarbejde og påtage sig professionelt ansvar.
 


Målbeskrivelse
Ved kursets afslutning forventes den studerende at kunne:
  • i klart og præcist sprog beskrive de teknikker og algoritmer som er gennemgået i kurset
  • analysere de parallelle algoritmer og arkitekturer som er gennemgået i kurset med hensyn til både effektivitet og skalerbarhed
  • anvende parallelle programmeringsteknikker og algoritmer som er gennemgået i kurset til implementation af eksempelprogrammer
  • foretage empiriske målinger af parallelle programmer og uddrage relevante konklusioner heraf
Indhold
Kurset indeholder følgende faglige hovedområder:
Platforme for parallel programmering, principper for design af parallelle algoritmer, fundamentale kommunikationsoperationer, modellering og analyse af parallelle programmer, programmering ved hjælp af message passing paradigmetet, programmering af arkitekturer med shared address space, dense matrix algoritmer, sortering, grafalgoritmer, søgealgoritmer for diskrete optimeringsproblemer, dynamisk programmering, fast fourier transformation.

Litteratur
    Meddeles ved kursets start.


Kursets hjemmeside
Dette kursus benytter e-learn (blackboard).

Forudsætningsprøver
  1. Programmeringsopgaver. Opgaverne skal være bestået for at man kan deltage i den mundtlige eksamen a). (15014012).
Eksamen- og censurform:
  1. Mundtlig eksamen, 30 min. uden forberedelsestid. Ekstern censur. Karakter efter 7-trinsskalaen. Ingen hjælpemidler tilladt. Nærmere beskrivelse af eksamensreglerne vil blive offentliggjort under 'Course Information' på kursets side i Blackboard. (10 ECTS). (15014002).
Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Introfase: 42 timer
Træningsfase: 42 timer, heraf:
 - Eksaminatorie: 42 timer
 - Andet: Projektarbejde timer

Aktiviteter i studiefasen
• Anvendelse af det tilegnede viden I projekter
• Sammenfatning af videnskabelige artikler/bogkapitler.
Undervisningsform
I studiefasen får de studerende faglige, personlige og sociale erfaringer, der sætter dem i stand til at befæste og videreudvikle deres videnskabelige kompetencer. Der er fokus på fordybelse, forståelse og udvikling af samarbejdskompetencer.   

Sprog
Dette kursus undervises på dansk eller engelsk, afhængigt af underviseren. Dog altid på Engelsk ved deltagelse af internationale studerende.

Kursustilmelding
Se tilmeldingsfrister.

Pris for åben uddannelse
Se priser for enkeltkurser.

Dette er den nyeste version af en kursusbeskrivelse, som trådte i kraft den 1. sep 2013.