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)