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) 5,0 ECTS (formy) 5,0
Forma zaliczenia zaliczenie Język angielski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW1 30 2,00,50zaliczenie
laboratoriaL1 30 3,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Compilers 1 You 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 programs2
T-W-3Basic loop transformations2
T-W-4API 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-5Parallel 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-6Parallel algorithm design2
T-W-7Performance models2
30

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

KODForma aktywnościGodziny
laboratoria
A-L-1participation in laboratories30
A-L-2Participation in consultations2
A-L-3preparation for laboratories43
75
wykłady
A-W-1Lectures30
A-W-2Preparing to examination16
A-W-3Examination2
A-W-4Consultations2
50

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

Zamierzone efekty uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
WM-WI_1-_??_W01
The student has basic knowledge in the OpenMP standard.
C-1T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7M-3S-1

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
WM-WI_1-_??_U01
The student is able to write parallel programs in the OpenMP standard.
C-1T-L-1, T-L-3, T-L-4, T-L-6, T-L-7, T-L-8, T-L-2, T-L-5M-2S-1

Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
WM-WI_1-_??_K01
The student is able to work with colleagues in a group.
C-1T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-1, T-L-3, T-L-4, T-L-6, T-L-7, T-L-8, T-L-2, T-L-5M-2, M-3, M-1S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
WM-WI_1-_??_W01
The student has basic knowledge in the OpenMP standard.
2,0
3,0The student knows basic pragmas, functions and enviroment variables to write a parallel program in OpenMP C/C++
3,5
4,0
4,5
5,0

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
WM-WI_1-_??_U01
The student is able to write parallel programs in the OpenMP standard.
2,0
3,0The student is able to write a simple parallel program in OpenMP C/C++
3,5
4,0
4,5
5,0

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt uczenia sięOcenaKryterium oceny
WM-WI_1-_??_K01
The student is able to work with colleagues in a group.
2,0
3,0Proven ability to apply knowledge, skills and personal abilities to write a paralel program in OpenMP C/C++
3,5
4,0
4,5
5,0

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 programs2
T-W-3Basic loop transformations2
T-W-4API 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-5Parallel 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-6Parallel algorithm design2
T-W-7Performance models2
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1participation in laboratories30
A-L-2Participation in consultations2
A-L-3preparation for laboratories43
75
(*) 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 examination16
A-W-3Examination2
A-W-4Consultations2
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięWM-WI_1-_??_W01The student has basic knowledge in the OpenMP standard.
Cel przedmiotuC-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 programoweT-W-1Introduction: From serial to parallel thinking. A history of parallel computers and lessons learned from them.
T-W-2Dependences in programs
T-W-3Basic loop transformations
T-W-4API 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 restrictions
T-W-5Parallel 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 LAW
T-W-6Parallel algorithm design
T-W-7Performance models
Metody nauczaniaM-3the Final exam by checking the learning outcomes: presenting questions and assessing the answers
Sposób ocenyS-1Ocena formująca: Assessment of the degree of practical tasks at the end of each laboratory
Kryteria ocenyOcenaKryterium oceny
2,0
3,0The student knows basic pragmas, functions and enviroment variables to write a parallel program in OpenMP C/C++
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięWM-WI_1-_??_U01The student is able to write parallel programs in the OpenMP standard.
Cel przedmiotuC-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 programoweT-L-1Pragma parallel
T-L-3Pragma Sections
T-L-4Pragma Single
T-L-6Coding an algorithm in OpenMP
T-L-7Evaluating speed-up of an OpenMP program
T-L-8Applying Amhdal's and Gustafson's laws
T-L-2Pragma For
T-L-5Pragma Critical
Metody nauczaniaM-2Laboratory exercises
Sposób ocenyS-1Ocena formująca: Assessment of the degree of practical tasks at the end of each laboratory
Kryteria ocenyOcenaKryterium oceny
2,0
3,0The student is able to write a simple parallel program in OpenMP C/C++
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięWM-WI_1-_??_K01The student is able to work with colleagues in a group.
Cel przedmiotuC-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 programoweT-W-1Introduction: From serial to parallel thinking. A history of parallel computers and lessons learned from them.
T-W-2Dependences in programs
T-W-3Basic loop transformations
T-W-4API 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 restrictions
T-W-5Parallel 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 LAW
T-W-6Parallel algorithm design
T-W-7Performance models
T-L-1Pragma parallel
T-L-3Pragma Sections
T-L-4Pragma Single
T-L-6Coding an algorithm in OpenMP
T-L-7Evaluating speed-up of an OpenMP program
T-L-8Applying Amhdal's and Gustafson's laws
T-L-2Pragma For
T-L-5Pragma Critical
Metody nauczaniaM-2Laboratory exercises
M-3the Final exam by checking the learning outcomes: presenting questions and assessing the answers
M-1Informative / conversational lectures
Sposób ocenyS-1Ocena formująca: Assessment of the degree of practical tasks at the end of each laboratory
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Proven ability to apply knowledge, skills and personal abilities to write a paralel program in OpenMP C/C++
3,5
4,0
4,5
5,0