Nazwa przedmiotu: PROGRAMOWANIE WSPÓŁBIEŻNE I ROZPROSZONE I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Uzyskanie przez studentów wiedzy na temat architektur systemów równoległych i rozproszonych, a także modeli, standardów i technik współbieżnego, rozproszonego i równoległego. C. Nabycie przez studentów praktycznych umiejętności w zakresie współbieżnego/rozproszonego/równoległego oraz uruchamiania i analizy aplikacji dla różnych typów architektur rozproszonych. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI 1. Znajomość podstaw architektury komputerów i systemów operacyjnych.. Znajomość podstaw teorii algorytmów i struktur danych. 3. Umiejętność w językach C/C++ oraz Java. 4. Umiejętność korzystania z różnych źródeł informacji, w tym z instrukcji i dokumentacji technicznej. 5. Umiejętności pracy samodzielnej i w grupie. 6. Umiejętności prawidłowej interpretacji i prezentacji własnych działań. EFEKTY KSZTAŁCENIA Concurrent and parallel programming Kierunek: Forma studiów: Informatyka Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: moduł specjalności obowiązkowy: I stopnia Inżynieria o, Programowanie aplikacji internetowych Rodzaj zajęć: Liczba godzin/tydzień: wykład, laboratorium W E, L EK 1 posiada wiedzę na temat elementów współbieżnego, równoległego i rozproszonego. EK posiada wiedzę na temat architektur systemów rozproszonych, zna różne standardy systemów z pamięcią wspólną oraz rozproszoną. EK 3 potrafi tworzyć aplikacje współbieżne, równoległe oraz rozproszone. Kod przedmiotu: D5_0, E5_0 Rok: III Semestr: V Liczba punktów: 5 ECTS EK 4 potrafi wykorzystać narzędzia wspierające tworzenia programów rozproszonych, utworzyć i uruchomić aplikacje dla różnych typów architektur rozproszonych. EK 5 posiada podstawowe umiejętności w zakresie analizy poprawności i wydajności programów równoległych i współbieżnych. EK 6 potrafi zaprojektować i zaimplementować aplikację rozproszoną działającą w oparciu o model
klient-serwer. TREŚCI PROGRAMOWE Forma zajęć WYKŁADY Liczba godzin W 1 Pojęcie przetwarzania równoległego i architektury systemów równoległych, z uwzględnieniem równoległości wewnątrz procesorów W Przetwarzanie rozproszone/równoległe w klastrach, systemach typu Grid i Cloud W 3 Przykłady zastosowań obliczeń równoległych i rozproszonych, ocena jakości obliczeń równoległych/rozproszonych, W 4 Konstruowania algorytmów równoległych/rozproszonych W 5 Dalszy ciąg konstruowania algorytmów równoległych/rozproszonych W 6 Modele równoległego i rozproszonego W 7 Wprowadzenie do języków i środowisk równoległego i rozproszonego W 8 Programowanie równoległe/rozproszone z wymianą komunikatów w standardzie MPI W 9 Dalszy ciąg w standardzie MPI W 10 Podstawowe pojęcia współbieżnego W 11 Reprezentatywne przykłady zagadnień współbieżnego oraz ich rozwiązania W 1 Programowanie wielowątkowe w języku Java W 13 Dalszy ciąg wielowątkowego w języku Java W 14 Wprowadzenie do środowiska RMI W 15 Wykorzystanie środowiska RMI do budowy rozproszonych aplikacji klient-serwer Forma zajęć LABORATORIUM Liczba godzin L 1 Zasady tworzenia i uruchamiania programów równoległych w językach C/C++ dla środowiska MPI, uruchamianie prostych programów L Badanie operacji komunikacyjnych typu punkt do punktu L 3 Tworzenie programów z wykorzystaniem modelu master-worker oraz grupowych operacji komunikacyjnych L 4 Przykłady bardziej zaawansowanych programów równoległych w środowisku MPI L 5 Ocena i optymalizacja wydajności programów równoległych w środowisku MPI L 8 Wykorzystanie systemów typu Cloud na przykładzie usługi obliczeń kampusowych PLATON U3 L 7 Kolokwium L 8 Programowanie równoległe w standardzie OpenMP L 9 Wprowadzenie do wielowątkowego w języku Java L 10 Synchronizacja dostępu wątków do zasobów współdzielonych L 11 Koordynacja współdziałania wątków w zagadnieniach producent-konsument L1 Zakleszczenie wątków L 13 Tworzenie i uruchamianie programów w środowisko RMI L 14 Przykłady wykorzystania środowiska RMI do budowy aplikacji klient-serwer L 15 Kolokwium NARZĘDZIA DYDAKTYCZNE
1. wykład z wykorzystaniem prezentacji multimedialnych. podręczniki, dokumentacja techniczna 3. laboratorium komputerowe z oprogramowaniem narzędziowym 4. ćwiczenia laboratoryjne 5. instrukcje do wykonania ćwiczeń laboratoryjnych SPOSOBY OCENY ( F FORMUJĄCA, P PODSUMOWUJĄCA) F1. ocena przygotowania do ćwiczeń laboratoryjnych F. ocena umiejętności stosowania zdobytej wiedzy podczas wykonywania ćwiczeń F3. ocena sprawozdań z realizacji ćwiczeń objętych programem nauczania F4. ocena aktywności podczas zajęć. ocena umiejętności rozwiązywania postawionych problemów oraz sposobu prezentacji uzyskanych wyników zaliczenie na ocenę* P. ocena opanowania materiału nauczania będącego przedmiotem wykładu egzamin *) warunkiem uzyskania zaliczenia jest otrzymanie pozytywnych ocen ze wszystkich ćwiczeń laboratoryjnych, OBCIĄŻENIE PRACĄ STUDENTA Forma aktywności Godziny kontaktowe z prowadzącym Godziny konsultacji z prowadzącym Egzamin Zapoznanie się ze wskazaną literaturą Przygotowanie do ćwiczeń laboratoryjnych Wykonanie sprawozdań z realizacji ćwiczeń laboratoryjnych (czas poza zajęciami laboratoryjnymi) Przygotowanie do egzaminu Średnia liczba godzin na zrealizowanie aktywności 30W 30L 60 h 5 h 3 h 1 h 15 h 10 h 0 h Suma 15 h SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU Liczba punktów ECTS, którą student uzyskuje na zajęciach wymagających bezpośredniego udziału prowadzącego Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym, w tym zajęć laboratoryjnych i projektowych 5 ECTS.7 ECTS. ECTS LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA 1. Andrews, G.R.: Foundations of Multithreaded, Paralel and Distributed Programming. Addison Wesley, 00.. Ben-Ari, M. Podstawy współbieżnego i rozproszonego. WNT, Warszawa, 1996. 3. Czech, Z.: Wprowadzenie do obliczeń równoległych. PWN, Warszawa, 010. 4. Grama, A., Gupta, A., Kumar, V., Karypis, G.: Introduction to parallel computing (second edition). Addison-Wesley, 003. 5. Gropp, W., Lusk, E., Skjellum, A.: Using MPI : Portable parallel programming with the 3
message-passing interface. MIT Press, Cambridge MA, 1995. 6. Holub, A.: Wątki w Javie. Mikom, Warszawa, 001. 7. Horstman, C.S, Cornell, G.: Core Java: Techniki zaawansowane. Helion, Gliwice, 003. 8. Kitowski, J.: Współczesne systemy komputerowe. CCNS, Kraków, 000. 9. Mathew, N., Stones, R.: Zaawansowane programowanie w systemie Linux. Helion, Gliwice, 00. 10. Tanenbaum, A.S.: Rozproszone systemy operacyjne. PWN, Warszawa, 1997. 11. Weiss, Z., Gruźlewski, T.: Programowanie współbieżne i rozproszone w przykładach i zadaniach. WNT, Warszawa, 1995. 1. Wyrzykowski, R.: Klastry komputerów PC i architektury wielordzeniowe: budowa i wykorzystanie. Akademicka Oficyna Wydawnicza EXIT, Warszawa 009. PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL) prof. dr hab. inż. Roman Wyrzykowski roman@icis.pcz.pl MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA Efekt kształcenia EK1 EK EK3 EK4 Odniesienie danego efektu do efektów zdefiniowanych dla całego programu (PEK) K_W08 K_W13 K_W0 KSK_W04 KIO1_W03 K_W06 K_W08 K_W13 K_W0 KSK_W04 KIO1_W03 K_U1 KSK_U04 K_U04 K_U1 KSK_U04 Cele przedmiotu Treści programowe Narzędzia dydaktyczne C1 W3-15 1, C1 W1-15 1, C C EK5 K_U09 C EK6 K_U1 KSK_U11 C W3-15 L1-15 W3-15 L1-15 W3-5,9-13 L-5,10-1 W3, W13-15 L9,13,14 Sposób oceny F1 P F1 P 4
II. FORMY OCENY - SZCZEGÓŁY Efekty 1, Student opanował wiedzę z zakresu systemów Efekty 3,4,6 Student posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z programowaniem współbieżnym równoległym oraz rozproszonym Efekt 5 efektywnie prezentować i dyskutować wyniki własnych działań Na ocenę Na ocenę 3 Na ocenę 4 Na ocenę 5 Student nie opanował podstawowej wiedzy z systemów Student nie potrafi zbudować programów współbieżnych, równoległych oraz rozproszonych wykorzystujących różne modele i standardy, nawet z pomocą wytyczonych instrukcji oraz prowadzącego Student nie opracował sprawozdania/ Student nie potrafi zaprezentować wyników swoich badań Student częściowo opanował wiedzę z zakresu systemów utworzyć programy współbieżne, równoległe oraz rozproszone wykorzystujące różne modele i standardy, lecz zadania wynikające z realizacji ćwiczeń wykonuje z pomocą prowadzącego ćwiczenia, ale nie potrafi dokonać interpretacji oraz analizy wyników własnych badań Student dobrze opanował wiedzę z zakresu systemów systemów Student poprawnie wykorzystuje wiedzę do budowy programów współbieżnych, równoległych oraz rozproszonych z wykorzystaniem różnych modeli i standardów, samodzielnie rozwiązując problemy wynikające w trakcie realizacji ćwiczeń ćwiczenia, potrafi prezentować wyniki swojej pracy oraz dokonuje ich analizy Student bardzo dobrze opanował wiedzę z zakresu materiału objętego programem nauczania, samodzielnie zdobywa i poszerza wiedzę przy użyciu różnych źródeł w pełni samodzielnie utworzyć zaawansowane programy współbieżne, równoległe oraz rozproszone z wykorzystaniem różnych modeli i standardów; potrafi dokonać oceny oraz uzasadnić trafność przyjętych metod ćwiczenia, potrafi w sposób zrozumiały prezentować, oraz dyskutować osiągnięte wyniki Dopuszcza się wystawienie oceny połówkowej o ile student spełniający wszystkie efekty kształcenia wymagane do oceny pełnej spełnia niektóre efekty kształcenia odpowiadające ocenie wyższej III. INNE PRZYDATNE INFORMACJE O PRZEDMIOCIE 1. Wszelkie informacje dla studentów (prezentacje do zajęć, instrukcje do ćwiczeń laboratoryjnych, przykładowe aplikacje) dostępne są na stronie internetowej http://icis.pcz.pl/~roman, w zakładce Dydaktyka.. Informacja na temat konsultacji przekazywana jest studentom podczas pierwszych zajęć danego z przedmiotu. 5