Programowanie współbieżne i rozproszone

Transkrypt

Programowanie współbieżne i rozproszone
Nazwa przedmiotu:
PROGRAMOWANIE WSPÓŁBIEŻNE I ROZPROSZONE
Concurrent and parallel programming
Kierunek:
Forma studiów:
Kod przedmiotu:
Informatyka
Stacjonarne
Rodzaj przedmiotu:
Poziom kwalifikacji:
moduł specjalności obowiązkowy:
Inżynieria oprogramowania,
Programowanie aplikacji
internetowych
I stopnia
D5_02, E5_02
Rok: III
Semestr: V
Rodzaj zajęć:
Liczba godzin/tydzień:
Liczba punktów:
wykład, laboratorium
2WE, 2L
5 ECTS
PRZEWODNIK PO PRZEDMIOCIE
I KARTA PRZEDMIOTU
CEL PRZEDMIOTU
C1. Uzyskanie przez studentów wiedzy na temat architektur systemów równoległych i
rozproszonych, a także modeli, standardów i technik programowania współbieżnego,
rozproszonego i równoległego.
C2. Nabycie przez studentów praktycznych umiejętności w zakresie programowania
współbieżnego/rozproszonego/równoległego oraz uruchamiania i analizy aplikacji dla
różnych typów architektur współbieżnych i rozproszonych.
WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI
1.
2.
3.
4.
Znajomość podstaw architektury komputerów i systemów operacyjnych.
Znajomość podstaw teorii algorytmów i struktur danych.
Umiejętność programowania w językach C/C++ oraz Java.
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 programowania współbieżnego, równoległego i
rozproszonego.
EK 2 – posiada wiedzę na temat architektur systemów współbieżnych i rozproszonych, zna różne
standardy programowania systemów z pamięcią wspólną oraz rozproszoną.
EK 3 – potrafi tworzyć aplikacje współbieżne, równoległe oraz rozproszone.
EK 4 – potrafi wykorzystać narzędzia wspierające tworzenia programów współbieżnych i
rozproszonych, utworzyć i uruchomić aplikacje dla różnych typów architektur współbieżnych i
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
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 2 – 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 programowania równoległego i rozproszonego
W 7 – Wprowadzenie do języków i środowisk programowania równoległego i
rozproszonego
W 8 – Programowanie równoległe/rozproszone z wymianą komunikatów w standardzie
MPI
W 9 – Dalszy ciąg programowania w standardzie MPI
W 10 – Podstawowe pojęcia programowania współbieżnego
W 11 – Reprezentatywne przykłady zagadnień programowania współbieżnego oraz ich
rozwiązania
W 12 – Programowanie wielowątkowe w języku Java
W 13 – Dalszy ciąg programowania 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
L 1 – Zasady tworzenia i uruchamiania programów równoległych w językach C/C++ dla
środowiska MPI, uruchamianie prostych programów
L 2 – 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 programowania 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
L12 – 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
Liczba
godzin
2
2
2
2
2
2
2
2
2
2
2
2
2
2
Liczba
godzin
2
2
2
2
2
2
2
2
2
2
2
2
2
2
NARZĘDZIA DYDAKTYCZNE
2
1. – wykład z wykorzystaniem prezentacji multimedialnych
2. – 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
F2. – 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ęć
P1. – ocena umiejętności rozwiązywania postawionych problemów oraz sposobu prezentacji
uzyskanych wyników – zaliczenie na ocenę*
P2. – 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
Średnia liczba godzin na
zrealizowanie aktywności
30W 30L  60 h
Godziny konsultacji z prowadzącym
5h
Egzamin
3h
Zapoznanie się ze wskazaną literaturą
12 h
Przygotowanie do ćwiczeń laboratoryjnych
15 h
Wykonanie sprawozdań z realizacji ćwiczeń laboratoryjnych (czas
poza zajęciami laboratoryjnymi)
10 h
Przygotowanie do egzaminu
20 h
Suma
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

125 h
5 ECTS
2.7 ECTS
2.2 ECTS
LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA
1. Andrews, G.R.: „Foundations of Multithreaded, Paralel and Distributed Programming”.
Addison Wesley, 2002.
2. Ben-Ari, M. „Podstawy programowania współbieżnego i rozproszonego”. WNT,
Warszawa, 1996.
3. Czech, Z.: „Wprowadzenie do obliczeń równoległych”. PWN, Warszawa, 2010.
4. Grama, A., Gupta, A., Kumar, V., Karypis, G.: „Introduction to parallel computing (second
edition)”. Addison-Wesley, 2003.
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, 2001.
7. Horstman, C.S, Cornell, G.: „Core Java2: Techniki zaawansowane”. Helion, Gliwice,
2003.
8. Kitowski, J.: „Współczesne systemy komputerowe”. CCNS, Kraków, 2000.
9. Mathew, N., Stones, R.: „Zaawansowane programowanie w systemie Linux”. Helion,
Gliwice, 2002.
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.
12. Wyrzykowski, R.: „Klastry komputerów PC i architektury wielordzeniowe: budowa i
wykorzystanie”. Akademicka Oficyna Wydawnicza EXIT, Warszawa 2009.
PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL)
prof. dr hab. inż. Roman Wyrzykowski [email protected]
MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA
Efekt
kształcenia
EK1
EK2
EK3
EK4
Odniesienie
danego efektu do
efektów
zdefiniowanych
dla całego
programu (PEK)
K_W08
K_W13
K_W20
KSK_W04
KIO1_W03
K_W06
K_W08
K_W13
K_W20
KSK_W04
KIO1_W03
K_U12
K_U16
KSK_U04
KIO1_U03
K_U04
K_U12
K_U16
KSK_U04
KIO1_U03
Cele
przedmiotu
Treści
programowe
Narzędzia
dydaktyczne
Sposób
oceny
C1
W3-15
1,2
F1
P2
C1
W1-15
1,2
C2
W3-15
L1-15
1-5
C2
W3-15
L1-15
1-5
F1
P2
F1-4
P1
F1-4
P1
EK5
K_U09
C2
W3-5,9-13
L2-5,10-12
1-5
F1-4
P1
EK6
K_U12
K_U16
KSK_U11
KIO1_U03
C2
W3, W13-15
L9,13,14
1-5
F1-4
P1
4
II. FORMY OCENY - SZCZEGÓŁY
Na ocenę 2
Efekty 1,2
Student opanował
wiedzę z zakresu
systemów
współbieżnych i
rozproszonych oraz
sposobów ich
programowania
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
Student potrafi
efektywnie
prezentować
i dyskutować wyniki
własnych działań
Na ocenę 3
Na ocenę 4
Na ocenę 5
Student nie
opanował
podstawowej wiedzy
z systemów
współbieżnych i
rozproszonych oraz
sposobów ich
programowania
Student częściowo
opanował wiedzę z
zakresu systemów
współbieżnych i
rozproszonych oraz
sposobów ich
programowania
Student dobrze
opanował wiedzę z
zakresu systemów
współbieżnych i
rozproszonych oraz
sposobów ich
programowania
systemów
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 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 potrafi
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
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ń
Student potrafi
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
Student nie
opracował
sprawozdania/
Student nie potrafi
zaprezentować
wyników swoich
badań
Student wykonał
sprawozdanie
z wykonanego
ćwiczenia, ale nie
potrafi dokonać
interpretacji oraz
analizy wyników
własnych badań
Student wykonał
sprawozdanie
z wykonanego
ćwiczenia, potrafi
prezentować wyniki
swojej pracy oraz
dokonuje ich analizy
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.
2. Informacja na temat konsultacji przekazywana jest studentom podczas pierwszych zajęć danego z
przedmiotu.
5