Kursen fokuserar på tre områden:
- Parallelldatorarkitektur och parallell mjukvara. Presentation av beräknings- och minnessystem av parallella datorer. Dessutom beskrivs olika slags parallellitet (på instruktionsnivån, på nivån av beräkningsuppgifter samt dataparallellitet) såväl som prestandamodeller för parallella system.
- Programmering av flerkärniga system med OpenMP. Presentation av grundläggande såväl som mer avancerade koncept inom OpenMP.
- Programmering av klustersystem med MPI. Presentation av MPI och metoder för parallellisering av datorprogram.
Hårdvara och mjukvara av olika plattformar på CSC och PDC kommer att introduceras vid första laborationen.
Det övergripande syftet med kursen är att ge grundläggande kunskap om teori samt hårdvaru- och mjukvarumetoder för parallella beräkningar, speciellt frågeställningar inom hårdvara och mjukvara samt interaktionen mellan dem. Speciellt fokus kommer att läggas på programmering av flerkärniga processorer och klusterarkitekturer. Även forskningsfrågor inom detta område kommer att tas upp.
Efter godkänd kurs ska studenten kunna:
- redogöra för egenskaper hos olika parallella arkitekturer,
- resonera om effektiviteten hos flerkärniga datorer och kluster-system,
- bedöma potentialen för och begränsningar av parallella beräkningar samt förbättra skalbarhet och effektivitet av parallella beräkningar,
- välja mellan olika parallelliseringstekniker beroende på tillämpning och det aktuella parallella systemet,
- skriva parallella program för flerkärniga processorer och klustersystem med OpenMP och MPI.