Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Administracja Centralna Uczelni - Wymiana międzynarodowa (S1)

Sylabus przedmiotu Parallel Programming:

Informacje podstawowe

Kierunek studiów Wymiana międzynarodowa
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta
Obszary studiów
Profil
Moduł
Przedmiot Parallel Programming
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl>
Inni nauczyciele
ECTS (planowane) 6,0 ECTS (formy) 6,0
Forma zaliczenia zaliczenie Język angielski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW2 30 3,00,50zaliczenie
laboratoriaL2 30 3,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1You are expected to have some basic programming skills using C or C++.

Cele przedmiotu

KODCel modułu/przedmiotu
C-1To develop an understanding of major parallel programming models To be able to identify promising applications of parallel computing To be able to develop typical parallel algorithms and implement prototype parallel programs using API OpenMP To be able to analyze the performance of parallel programs

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Pragma Parallel4
T-L-2Pragma For4
T-L-3Pragma Sections4
T-L-4Pragma Single2
T-L-5Pragma Critical2
T-L-6Coding an algorithm in OpenMP6
T-L-7Evaluating speed-up of an OpenMP program4
T-L-8Applying Amhdal's and Gustafson's laws4
30
wykłady
T-W-1Introduction: From serial to parallel thinking. A history of parallel computers and lessons learned from them.2
T-W-2Dependences in programs. Basic loop transformations.4
T-W-3API OpenMP, version 2. Processes and threads Fork-Join model What does OpenMP stand for? Limitations of OpenMP OpenMP Directive Responsibility Synchronization in OpenMP Pragma Parallel and its clauses What is a structured block Control of the number of threads in a parallel region Dynamic threads Nested parallel regions Parallel directive restrictions Private, firstprivate, shared, and default clauses Purpose of the DO / for directive and its restrictions Ordered clause Last private clause Schedule clause Reduction clause Nowait clause Default scoping rules in OpenMP Exceptions to the rule that unscoped variables are made shared by default. Removing anti dependences Removing output dependences Removing data flow dependences TREADPRIVATE clause COPYIN clause Pragma SECTIONS and its clauses Restrictions of pragma Sections Pragma single, its clauses and restrictions Combined constructs Restrictions of work-sharing constructs Orphan directives Scopes in an orphan construction Nested parallelism Environment variables Run-Time Library Routines Need for synchronization CRITICAL directive and its restrictions Atomic directive, its restriction Using the lock routines to implement a critical section BARRIER directive, its restrictions ORDERED directive, its restrictions MASTER directive, its restrictions FLUSH directive, its restrictions16
T-W-4Parallel Program Performance metrics. Key factors impacting performance Cashes and Locality Locality and Schedules False sharing Inconsistent parallelization How barriers impact performance How critical sections impact performance Good Practice improving performance Deterministic program Program granularity Program locality How caches work Program speed-up Program efficiency AMDAHL’S LAW GUSTAFSON’S LAW4
T-W-5Parallel algorithm design2
T-W-6Performance models2
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1participation in laboratories30
A-L-2Participation in consultations10
A-L-3preparation for laboratories50
90
wykłady
A-W-1Lectures30
A-W-2Preparing to examination50
A-W-3Examination2
A-W-4Consultations8
90

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Informative / conversational lectures
M-2Laboratory exercises
M-3the Final exam by checking the learning outcomes: presenting questions and assessing the answers

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Assessment of the degree of practical tasks at the end of each laboratory

Literatura podstawowa

  1. Rohit Chandra Ramesh Menon Leo Dagum David Kohr Dror Maydan Jeff McDonald, Parallel Programming in OpenMP, Morgan Kaufmann, 2001
  2. Thomas Rauber, Parallel Programming: for Multicore and Cluster Systems, Springer, 2010

Literatura dodatkowa

  1. OpenMP reference: Specification of OpenMP 2.5 0 API for C/C++

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Pragma Parallel4
T-L-2Pragma For4
T-L-3Pragma Sections4
T-L-4Pragma Single2
T-L-5Pragma Critical2
T-L-6Coding an algorithm in OpenMP6
T-L-7Evaluating speed-up of an OpenMP program4
T-L-8Applying Amhdal's and Gustafson's laws4
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Introduction: From serial to parallel thinking. A history of parallel computers and lessons learned from them.2
T-W-2Dependences in programs. Basic loop transformations.4
T-W-3API OpenMP, version 2. Processes and threads Fork-Join model What does OpenMP stand for? Limitations of OpenMP OpenMP Directive Responsibility Synchronization in OpenMP Pragma Parallel and its clauses What is a structured block Control of the number of threads in a parallel region Dynamic threads Nested parallel regions Parallel directive restrictions Private, firstprivate, shared, and default clauses Purpose of the DO / for directive and its restrictions Ordered clause Last private clause Schedule clause Reduction clause Nowait clause Default scoping rules in OpenMP Exceptions to the rule that unscoped variables are made shared by default. Removing anti dependences Removing output dependences Removing data flow dependences TREADPRIVATE clause COPYIN clause Pragma SECTIONS and its clauses Restrictions of pragma Sections Pragma single, its clauses and restrictions Combined constructs Restrictions of work-sharing constructs Orphan directives Scopes in an orphan construction Nested parallelism Environment variables Run-Time Library Routines Need for synchronization CRITICAL directive and its restrictions Atomic directive, its restriction Using the lock routines to implement a critical section BARRIER directive, its restrictions ORDERED directive, its restrictions MASTER directive, its restrictions FLUSH directive, its restrictions16
T-W-4Parallel Program Performance metrics. Key factors impacting performance Cashes and Locality Locality and Schedules False sharing Inconsistent parallelization How barriers impact performance How critical sections impact performance Good Practice improving performance Deterministic program Program granularity Program locality How caches work Program speed-up Program efficiency AMDAHL’S LAW GUSTAFSON’S LAW4
T-W-5Parallel algorithm design2
T-W-6Performance models2
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1participation in laboratories30
A-L-2Participation in consultations10
A-L-3preparation for laboratories50
90
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Lectures30
A-W-2Preparing to examination50
A-W-3Examination2
A-W-4Consultations8
90
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta