Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Sztuka programowania wieloprocesorowego
Tok studiów:
2019/2020
Kod:
ZSDA-3-0090-s
Wydział:
Szkoła Doktorska AGH
Poziom studiów:
Studia III stopnia
Specjalność:
-
Kierunek:
Szkoła Doktorska AGH
Semestr:
0
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Angielski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
Kułakowski Konrad (kkulak@agh.edu.pl)
Dyscypliny:
informatyka, informatyka techniczna i telekomunikacja
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

The aim of the lecture is to deepen and consolidate knowledge about concurrent programming in Java programming language.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 The student understands the basics of multiprocessor programming SDA3A_W01 Aktywność na zajęciach
Umiejętności: potrafi
M_U001 the student is able to create parallel and concurrent software solutions SDA3A_U01 Aktywność na zajęciach
Kompetencje społeczne: jest gotów do
M_K001 student is able to critically evaluate scientific achievements in the field of operating systems SDA3A_K01 Aktywność na zajęciach
M_K002 student is able to critically evaluate scientific achievements in the field of parallel programming SDA3A_K01 Aktywność na zajęciach
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
30 14 0 0 0 0 16 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 The student understands the basics of multiprocessor programming + - - - - + - - - - -
Umiejętności
M_U001 the student is able to create parallel and concurrent software solutions + - - - - + - - - - -
Kompetencje społeczne
M_K001 student is able to critically evaluate scientific achievements in the field of operating systems + - - - - + - - - - -
M_K002 student is able to critically evaluate scientific achievements in the field of parallel programming + - - - - + - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 90 godz
Punkty ECTS za moduł 3 ECTS
Udział w zajęciach dydaktycznych/praktyka 30 godz
Przygotowanie do zajęć 15 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 30 godz
Samodzielne studiowanie tematyki zajęć 15 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (14h):

1) Introduction – shared objects, synchronization – basic synchronization models in Java
2) Mutual exclusion
3) Principles of concurrent objects I
3) Principles of concurrent objects II
4) Foundation of shared memory
5) The Relative Power of Primitive Synchronization Operations
6) Universality of consensus

Zajęcia seminaryjne (16h):

Sample topics covered by the seminary

1) Spin Locks and Contention
2) Monitors and Blocking Synchronization
3) Linked Lists: The Role of Locking
4) Concurrent Queues and the ABA Problem
5) Concurrent Stacks and Elimination
6) Counting, Sorting, and Distributed
Coordination
7) Concurrent Hashing and Natural
Parallelism
8) Skiplists and Balanced Search
9) Priority Queues
10) Futures, Scheduling, and Work
Distribution
11) Concurrent Barriers
12) Transactional Memory

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: lecture, presentation
  • Zajęcia seminaryjne: seminary, presentation
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

presence at the lectures and seminaries, presentation at the seminary

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: compulsory attendance at the announced number of lectures
  • Zajęcia seminaryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: compulsory attendance at the announced number of seminaries (usually all but one).
Sposób obliczania oceny końcowej:

based on presence and presentation at the seminary

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

colloquium based on the given materials, books, articles + presentation

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

good knowledge of the basics of Java programming language

Zalecana literatura i pomoce naukowe:

Herlihy, Shavit, The Art of Multiprocessor Programming, Elsevier, 2012

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:
  • K. Kułakowski (2014) A concurrent van Emde Boas array as a fast and simple concurrent dynamic set alternative. Concurrency and Computation: Practice and Experience 26 (2) pp. 360–379.
  • K. Kułakowski (2012) Concurrent systems modeling with CCL. Automatyka
  • K. Kułakowski, J. Wąs (2010) Two Concurrent Algorithms of Discrete Potential Field Construction. In Parallel Processing and Applied Mathematics. pp. 529-538. Springer.
Informacje dodatkowe:

Brak