Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie równoległe
Tok studiów:
2016/2017
Kod:
MIS-1-504-s
Wydział:
Inżynierii Metali i Informatyki Przemysłowej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
5
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
prof. nadzw. dr hab. inż. Banaś Krzysztof (banas@metal.agh.edu.pl)
Osoby prowadzące:
prof. nadzw. dr hab. inż. Banaś Krzysztof (banas@metal.agh.edu.pl)
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Student zna funkcjonowanie podstawowych środowisk tworzenia programów równoległych IS1A_W04, IS1A_W11 Egzamin
M_W002 Student zna podstawowe idee i pojęcia związane z przetwarzaniem współbieżnym i równoległym IS1A_W04, IS1A_W11 Egzamin
M_W003 Student potrafi wskazać podstawowe czynniki wpływające na wydajność programów równoległych oraz zna podstawowe miary wydajności IS1A_W11 Egzamin
M_W004 Student potrafi identyfikować podstawowe przyczyny niepoprawności wykonania programów równoległych IS1A_W04, IS1A_W11 Egzamin
Umiejętności
M_U001 Student potrafi modyfikować, uruchamiać i śledzić wykonanie prostych programów równoległych IS1A_U17, IS1A_U11 Wykonanie ćwiczeń laboratoryjnych
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Student zna funkcjonowanie podstawowych środowisk tworzenia programów równoległych + - - - - - - - - - -
M_W002 Student zna podstawowe idee i pojęcia związane z przetwarzaniem współbieżnym i równoległym + - - - - - - - - - -
M_W003 Student potrafi wskazać podstawowe czynniki wpływające na wydajność programów równoległych oraz zna podstawowe miary wydajności + - - - - - - - - - -
M_W004 Student potrafi identyfikować podstawowe przyczyny niepoprawności wykonania programów równoległych + - - - - - - - - - -
Umiejętności
M_U001 Student potrafi modyfikować, uruchamiać i śledzić wykonanie prostych programów równoległych - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

1. Przetwarzanie współbieżne i równoległe – wprowadzenie
2. Procesy i watki – wsparcie przetwarzania równoległego ze strony systemów operacyjnych
3. Problemy przetwarzania współbieżnego – zapewnianie bezpieczeństwa i żywotności programów
4. Przetwarzanie współbieżne i równoległe w językach obiektowych
5. Tworzenie programów równoległych
6. Środowisko OpenMP programowania maszyn z pamięcią wspólna, w tym procesorów wielordzeniowych
7. Równoważenie obciążenia przy zrównoleglaniu pętli w środowisku OpenMP
8. Automatyczne zrównoleglanie kodu – analiza zależności
9. Środowisko MPI programowania systemów z pamięcią rozproszoną
10. Architektury komputerów z pamięcią rozproszona i komunikacja grupowa MPI
11. Analiza wydajności programów równoległych
12. Systemy równoległe wykorzystujące akceleratory, programowanie procesorów kart graficznych

Ćwiczenia laboratoryjne:

1. Zapoznanie ze środowiskiem programowania w systemie Linux (edytory, kompilatory, śledzenie wykonania)
2. Modyfikacja, uruchomienie i śledzenie wykonania prostych programów współbieżnych wykorzystujących bibliotekę wątków Pthreads
3. Modyfikacja, uruchomienie i śledzenie wykonania prostych programów wykorzystujących mechanizmy współbieżności w języku Java
4. Modyfikacja, uruchomienie i śledzenie wykonania prostych programów równoległych wykorzystujących środowisko programowania systemów z pamięcią wspólna OpenMP
5. Modyfikacja, uruchomienie i śledzenie wykonania prostych programów równoległych wykorzystujących środowisko programowania systemów z pamięcią rozproszoną MPI

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 128 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 28 godz
Udział w ćwiczeniach laboratoryjnych 28 godz
Samodzielne studiowanie tematyki zajęć 40 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 20 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Dodatkowe godziny kontaktowe z nauczycielem 10 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Średnia ważona ocen z egzaminu i laboratorium – po uzyskaniu co najmniej 3.0 z każdej z nich

Wymagania wstępne i dodatkowe:

Programowanie w językach C i Java

Zalecana literatura i pomoce naukowe:

Andrzej Karbowski, Ewa Niewiadomska-Szynkiewicz [red.], „Obliczenia Równoległe i Rozproszone”, Politechnika Warszawska 2001

M. Herlihy, N. Shavit „The Art of Multiprocessor Programming” Elsevier, 2008 (wydanie polskie „Sztuka programowania wieloprocesorowego”, PWN 2010)

Michael J. Quinn, “Parallel Programming in C with MPI and OpenMP”, McGraw–Hill 2004

William Gropp, Ewing Lusk, Anthony Skjellum, “Using MPI: Portable Parallel Programming with the Message–Passing Interface”, MIT Press 1999

Ian Foster, “Designing and Building Parallel Programs”, Addison–Wesley 1995
[ http://www–unix.mcs.anl.gov/dbpp/ ]

Marc Snir, Steve Otto, Steven Huss–Lederman, David Walker, Jack Dongarra, MPI:” The Complete Reference”, MIT Press 1998

Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar, “Introduction to Parallel Computing”, Addison–Wesley / Pearson Education 2003

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Numerical integration on GPUs for higher order finite elements / Krzysztof BANAŚ, Przemysław PŁASZEWSKI, Paweł Macioł // Computers and Mathematics with Applications ; ISSN 0898-1221. — 2014 vol. 67 iss. 6, s. 1319–1344.

Vectorized OpenCL implementation of numerical integration for higher order finite elements / Filip Krużel, Krzysztof BANAŚ // Computers and Mathematics with Applications ; ISSN 0898-1221. — 2013 vol. 66 iss. 10 spec. iss., s. 2030–2044.

Modular FEM framework “ModFEM” for generic scientific parallel simulations / Kazimierz MICHALIK, Krzysztof BANAŚ, Przemysław PŁASZEWSKI, Paweł CYBUŁKA // Computer Science ; ISSN 1508-2806. — 2013 vol. 14 no. 3, s. 513–528.

Informacje dodatkowe:

Brak