Nazwa przedmiotu: PROGRAMOWANIE ROZPROSZONE I RÓWNOLEGŁE Distributed and parallel programming Kierunek: Forma studiów: Informatyka Stacjonarne Rodzaj przedmiotu: moduł specjalności obowiązkowy: Sieci komputerowe Rodzaj zajęć: wykład, laboratorium Poziom kwalifikacji: I stopnia Liczba godzin/tydzień: W E, L Kod przedmiotu: F5_0 Rok: III Semestr: V Liczba punktów: 5 ECTS I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Uzyskanie przez studentów wiedzy na temat architektur, w tym architektur wielordzeniowych, a także modeli, standardów i technik równoległego, rozproszonego i współbieżnego. C. Nabycie przez studentów praktycznych umiejętności w zakresie równoległego/rozproszonego/współbieżnego oraz uruchamiania i analizy aplikacji na systemach z pamięcią wspólną i rozproszoną. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI 1. Znajomość podstaw architektury komputerów i 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 EK 1 posiada wiedzę na temat elementów równoległego, rozproszonego i współbieżnego. EK posiada podstawową wiedzę na temat, zna modele równoległego oraz standardy dla z pamięcią wspólną oraz rozproszoną. EK 3 potrafi tworzyć aplikacje równoległe, rozproszone oraz współbieżne. EK 4 potrafi zaprogramować oraz zaimplementować oprogramowanie realizujące podstawowe algorytmy w postaci równoległej oraz uruchomić aplikacje na systemach z pamięcią wspólną oraz rozproszoną. EK 5 posiada podstawowe umiejętności w zakresie analizy poprawności i wydajności programów równoległych. EK 6 potrafi zaprojektować i zaimplementować aplikację 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 równoległych W Charakterystyka architektur wielordzeniowych W 3 Przetwarzanie rozproszone/równoległe w sieciach stacji roboczych, klastrach, systemach typu Grid i Cloud W 4 Przykłady zastosowań obliczeń, ocena jakości obliczeń równoległych/, W 5 Konstruowania algorytmów równoległych/ W 6 Dalszy ciąg konstruowania algorytmów równoległych/ W 7 Modele równoległego i rozproszonego W 8 Wprowadzenie do języków i środowisk równoległego i rozproszonego W 9 Programowania równoległe/rozproszone z wymianą komunikatów w standardzie MPI W 10 Dalszy ciąg w standardzie MPI W 11 Programowanie wielowątkowe w języku Java W 1 Dalszy ciąg wielowątkowego w języku Java W 13 Wprowadzenie do środowiska RMI W 14 Wykorzystanie środowiska RMI do budowy aplikacji klient-serwer W 15 Zaawansowane przykłady wykorzystania środowiska RMI do budowy aplikacji klient-serwer Forma zajęć LABORATORIUM Liczba godzin L 1 Zarządzanie sieciami stacji roboczych i klastrami z wykorzystaniem systemu Linux, bliższe zapoznanie się ze środowiskiem MPI do równoległego z wymianą komunikatów w sieciach stacji roboczych i klastrach L Zasady tworzenia i uruchamiania programów równoległych w językach C/C++ dla środowiska MPI, uruchamianie prostych programów L 3 Badanie operacji komunikacyjnych typu punkt do punktu L 4 Badanie grupowych operacji komunikacyjnych L 5 Tworzenie programów z wykorzystaniem modelu master-worker L 6 Przykłady bardziej zaawansowanych programów równoległych w środowisku MPI (mnożenie macierzy przez wektor, mnożenie macierzy, sortowanie, itd.) L 7 Analiza wydajności programów równoległych w środowisku MPI L 8 Kolokwium L 9 Wykorzystanie typu Cloud na przykładzie usługi obliczeń kampusowych PLATON U3 L 10 Wprowadzenie do wielowątkowego w języku Java L 11 Synchronizacja dostępu wątków do zasobów współdzielonych L 1 Koordynacja współdziałania wątków w zagadnieniach producentkonsument L 13 Tworzenie i uruchamianie programów w środowisko RMI L 14 Przykłady wykorzystania środowiska RMI do budowy aplikacji klientserwer 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 wszystk ć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 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 K_W06 K_W08 K_W13 K_W0 KSK_W04 K_U1 K_U16 KSK_U04 K_U04 K_U1 K_U16 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 K_U16 KSK_U11 C W4-15 L1-15 W4-10 L1-15 W4-6,10 L3,4,6,7 W3, W13-15 L9,13,14 Sposób oceny F1 P F1 P
II. FORMY OCENY - SZCZEGÓŁY Efekty 1, Student opanował wiedzę z zakresu Efekty 3,4,6 Student posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z programowaniem równoległym, rozproszonym oraz współbieżnym Efekt 5 Student potrafi efektywnie prezentować i dyskutować wyniki własnych działań Na ocenę Na ocenę 3 Na ocenę 4 Na ocenę 5 opanował podstawowej wiedzy z potrafi zbudować programów równoległych, oraz współbieżnych wykorzystujących różne modele i standardy, nawet z pomocą wytyczonych instrukcji oraz prowadzącego opracował sprawozdania/ potrafi zaprezentować wyników swo badań Student częściowo opanował wiedzę z zakresu Student potrafi utworzyć programy równoległe, rozproszone oraz współbieżne wykorzystujące różne modele i standardy, lecz zadania wynikające z realizacji ćwiczeń wykonuje z pomocą prowadzącego Student wykonał sprawozdanie z wykonanego ćwiczenia, ale nie potrafi dokonać interpretacji oraz analizy wyników własnych badań Student dobrze opanował wiedzę z zakresu Student poprawnie wykorzystuje wiedzę do budowy programów równoległych, oraz współbieżnych z wykorzystaniem różnych modeli i standardów, samodzielnie rozwiązując problemy wynikające w trakcie realizacji ćwiczeń Student wykonał sprawozdanie z wykonanego ćwiczenia, potrafi prezentować wyniki swojej pracy oraz dokonuje 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ł Student potrafi w pełni samodzielnie utworzyć zaawansowane programy równoległe, rozproszone oraz współbieżne z wykorzystaniem różnych modeli i standardów; potrafi dokonać oceny oraz uzasadnić trafność przyjętych metod Student wykonał sprawozdanie z wykonanego ć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.