Obliczenia Rownolegle 2

Transkrypt

Obliczenia Rownolegle 2
Załącznik
Data:
01.10.2009r.
Wydanie: I
Symbol:
Z-5.4-1-1
Strona:
Status:
obowiązujący
1/1
KARTA PRZEDMIOTU
KARTA PRZEDMIOTU
Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010
Nazwa przedmiotu:
OBLICZENIA
RÓWNOLEGŁE 2
Kierunek:
INFORMATYKA
Specjalność:
OPROGRAMOWANIE SYSTEMOWE
Tryb studiów:
STACJONARNE DRUGIEGO STOPNIA (SSM)
Rodzaj przedmiotu:
TECHNICZNY
Instytut/ Katedra:
Semestr:
Prowadzący przedmiot:
Prowadzący zajęcia:
INFORMATYKI
VIII (wykład + ćwiczenia), IX (laboratorium)
prof. dr hab. inŜ. Zbigniew J. Czech
Liczba godzin
Wykład:
Wykład:
prof. dr hab. inŜ. Zbigniew J. Czech Ćwiczenia:
Ćwiczenia:
dr inŜ. Jacek Widuch
Laboratorium:
dr inŜ. Mateusz Nowak
dr inŜ. Jacek Widuch
Projekt:
Seminarium:
Kod/nr
OR2/SP
Liczba pkt ECTS:
3 (semestr 8), 2 (semestr 9)
15 (semestr 8)
15 (semestr 8)
Laboratorium: 30 (semestr 9)
Projekt:
Seminarium:
Załącznik
Data:
01.10.2009r.
Wydanie: I
Symbol:
Z-5.4-1-1
Strona:
Status:
obowiązujący
2/1
KARTA PRZEDMIOTU
Powiązanie ze standardami i cel kształcenia
Celem jest wprowadzenie słuchacza w zaawansowane zagadnienia obliczeń równoległych. W
ramach wykładów prezentowane są podstawowe informacje dotyczące programowania
przy uŜyciu biblioteki MPI oraz OpenMP. W ramach ćwiczeń omawiane są zasady
programowania z uŜyciem biblioteki Pthread, komunikacja i synchronizacja procesów w
systemie Unix, a takŜe zastosowanie architektury CUDA w obliczeniach równoległych.
Celem laboratorium jest zapoznanie słuchacza z zaawansowanymi zagadnieniami obliczeń
równoległych oraz ich praktyczną implementacją na przykładzie wersji V IPC systemu
Unix, biblioteki Pthread i biblioteki MPI. Słuchacze poznają komunikację i synchronizację
procesów przy uŜyciu semaforów, kolejek komunikatów i pamięci wspólnej w wersji V
IPC systemu Unix, a takŜe mechanizm zdalnego wywołania procedury. Komunikacja
pomiędzy procesami z zastosowaniem komunikatów jest takŜe zaprezentowana na
przykładzie biblioteki MPI. Słuchacze są zapoznawani takŜe z elementami i konstrukcjami
biblioteki Pthread takimi, jak tworzenie wątków, muteksy i zmienne warunkowe. Student
nabywa umiejętności projektowania, oceny i analizy algorytmów w modelu obliczeń
równoległych z pamięcią wspólną i rozproszoną, a takŜe uŜycia bibliotek
programistycznych stosowanych do tego celu.
Przedmioty wprowadzające oraz wymagania wstępne
Przedmiotami wprowadzającymi do niniejszego przedmiotu są:
1. Analiza Matematyczna i Algebra Liniowa
2. Programowanie Komputerów
3. Algorytmy i Struktury Danych
4. Architektura Komputerów
5. Obliczenia Równoległe
Treść wykładów:
W ramach wykładu prezentowane są następujące zagadnienia:
1. Projektowanie algorytmów równoległych, w szczególności dekompozycja
funkcyjna i dekompozycja danych
2. Omówienie zasad korzystania z biblioteki MPI (komunikacja pomiędzy procesami,
komunikacja kolektywna, funkcje redukcji, typy pochodne, komunikatory).
3. Omówienie podstaw programowania z uŜyciem standardu OpenMP (równoległość
instrukcji iteracyjnych, równoległe regiony, synchronizacja, efektywność)
Załącznik
Data:
01.10.2009r.
Wydanie: I
Status:
obowiązujący
Symbol:
Z-5.4-1-1
Strona:
3/1
KARTA PRZEDMIOTU
Treść/Tematy ćwiczeń:
Tematy ćwiczeń:
1. Elementy biblioteki Pthread: zarządzanie wątkami (tworzenie wątku, inicjacja
wątku, zakończenie wątku, pobieranie identyfikatora wątku, atrybuty wątku,
funkcje czyszczące, dane własne wątku), muteksy (inicjacja i niszczenie muteksu,
atrybuty muteksu, operacje na muteksie), zmienne warunkowe (inicjacja i
niszczenie zmiennej warunkowej, atrybuty zmiennej warunkowej, operacje na
zmiennej warunkowej), semafory nienazwane (inicjacja i niszczenie semafora,
operacje na semaforze).
2. Komunikacja i synchronizacja procesów w systemie Unix: współbieŜne
uruchamianie procesów, semafory (inicjacja i niszczenie semafora, operacje na
semaforze), pamięć wspólna (inicjacja i niszczenie segmentu pamięci wspólnej,
przyłączanie i odłączanie segmentu pamięci wspólnej), kolejka komunikatów
(inicjacja i niszczenie kolejki komunikatów, wysyłanie i odbieranie komunikatów),
RPC (rejestracja procedur, wywoływanie procedur, kodowanie danych).
3. Zastosowanie architektury CUDA w obliczeniach równoległych: architektura
sprzętowa, model programistyczny, tworzenie i synchronizacja wątków,
grupowanie wątków, zarządzanie pamięcią.
Tematy ćwiczeń laboratoryjnych:
1. Bilbioteka MPI.
2. Komunikacja i synchronizacja procesów w systemie Unix.
3. Biblioteka Pthread.
Metody dydaktyczne
Wykład uzupełniony materiałami dydaktycznymi.
Forma egzaminu/zaliczenia przedmiotu
1. Wykład — Wypracowanie domowe
2. Ćwiczenia — Kolokwium zaliczeniowe w formie pisemnej. Przewidziane są dwa
kolokwia poprawkowe dla studentów, którzy nie uzyskali zaliczenia na podstawie
kolokwium zaliczeniowego.
3. Laboratorium — Wykonanie zadań z poszczególnych ćwiczeń oraz sporządzenie
sprawozdania.
Minimalne wymagania do egzaminu /zaliczenia
Warunkiem zdobycia zaliczenia przedmiotu w semestrze 8 jest uzyskanie oceny co
najmniej 3.0 z kolokwium zaliczeniowego oraz co najmniej oceny 3.0 z wypracowania
domowego. W przypadku uzyskania oceny mniejszej z kolokwium naleŜy uzyskać ocenę
co najmniej 3.0 z jednego z kolokwiów poprawkowych. Ocena końcowa jest średnią ocen
z kolokwium i wypracowania domowego.
Warunkiem zdobycia zaliczenia przedmiotu w semestrze 9 jest uzyskanie oceny co
najmniej 3.0 z kaŜdego ćwiczenia laboratoryjnego. Ocena końcowa jest średnią ocen z
wszystkich ćwiczeń.
Data:
01.10.2009r.
Wydanie: I
Załącznik
Symbol:
Z-5.4-1-1
Strona:
Status:
obowiązujący
4/1
KARTA PRZEDMIOTU
Literatura
1. Ben-Ari, Podstawy programowania współbieŜnego, WNT, Warszawa 1996.
2. Chandra, R., et la. Parallel programming In OpenMp, Morgan Kaufamnn, 2001.
3. G. Coulouris, Dollimore, J., T. Kindberg, Systemy rozproszone, podstawy I projektowanie,
WNT, Warszawa 1998.
4. Z. Huzar i in., Ada95, Helion, 1999.
5. Pacheco, P.S., Parallel programming with MPI, Morgan Kaufman, 1997.
6. Praca zbiorowa pod red. Z. Czecha, Systemy operacyjne i języki obliczeń równoległych,
skrypt Pol. Śl. Nr 2121, Gliwice, 1998.
7. Praca zbiorowa pod red. Z. Czecha, Programowanie współbieŜne. Wybrane zagadnienia,
skrypt Pol. Sl. nr 2191, Gliwice 1999, wyd. IV.
8. Z. Weiss, T. Gruźlewski, Programowanie współbieŜne i rozproszone w przykładach i
zadaniach, WNT, Warszawa 1993.
9. M.J. Rochkind: Programowanie w systemie Unix dla zaawansowanych, WNT,
Warszawa 1997.
Zatwierdzono:
…………………………….
…………………………………………………
(data i podpis prowadzącego)
(data i podpis Dyrektora Instytutu/Kierownika Katedry)