Programowanie równoległe i rozproszone
Transkrypt
Programowanie równoległe i rozproszone
SYLABUS PRZDMIOTU JEDNOSTKA Katedra Informatyki i Metod Komputerowych KIERUNEK INFORMATYKA administracja systemami informatycznymi SPECJALNOŚĆ/ multimedia i technologie internetowe SPECJALIZACJA przedsiębiorczość w sektorze IT informatyka z nauczaniem matematyki informatyka nienauczycielska informatyka z elementami przedsiębiorczości informatyka z językiem angielskim NAZWA Programowanie równoległe i rozproszone NAZWA W J. ANG. Parallel and distributed programming KOD S STUDIA PUNKTACJA ECTS 3 STACJONARNE NIESTACJONARNE III ROK STUDIÓW 5 SEMESTR KOORDYNATOR dr Leszek Głowacki ZESPÓŁ DYDAKTYCZNY dr Leszek Głowacki Zadaniem przedmiotu jest przedstawienie problematyki związanej z pisaniem programów równoległych, ZAŁOŻENIA I CELE oraz wprowadzenie do tworzenia aplikacji działających równolegle w celu efektywniejszego wykorzystania PRZEDMIOTU możliwości obliczeniowych współczesnych komputerów WARUNKI WSTĘPNE WIEDZA Podstawowa znajomość systemu UNIX UMIEJĘTNOŚCI Podstawowa znajomość systemu UNIX KURSY Administracja i integracja system.operac., Programowanie obiektowe EFEKTY KSZTAŁCENIA Podstawowe problemy synchronizacyjne programowania współbieżnego : wzajemne wykluczanie, czytelnicy i pisarze, producenci-konsumenc, problem pieciu filozofów. Wysokopoziomowe mechanizmy WIEDZA synchronizacji: semafor, bariera, monitor. Procesy i wątki. Komunikacja międzyprocesowa (IPC). Elementy programowania z pamięcią wspólną i lokalną. Efektywność zrównoleglenia, sprawność, skalowalność. Narzędzia do tworzenia programów równoległych: OpenMP i MPI. Rozwiązywanie podstawowych problemów synchronizacyjnych w Concurrent Pascal Bena Ari. Tworzenie procesów potomnych (UNIX), komunikacja międzyprocesowa przy pomocy łączy nienazwanych, nazwanych, kolejek. Korzystanie z biblioteki Pthreads w systemie UNIX: tworzenie wątków, UMIEJĘTNOŚCI synchronizacja, proste przykłady programów obliczeniowych. Przykłady użycia dyrektyw zrównoleglających OpenMP w programach obliczeniowych. Wprowadzenie do korzystania z interfejsu LAM MPI w języku C. Realizacja prostych programów rozproszonych na klastrze. METODY NAUCZANIA WYKŁAD: ĆWICZENIA: informacyjny prelekcja dyskusja problemowy praca zespołowa – projekt instruktaż konwersatoryjny praca indywidualna – ćwiczenia praktyczne ćwiczenia produkcyjne inny (jaki) pokaz z objaśnieniem inne (jakie) platforma Moodle Elementy kształcenia zdalnego: inne (jakie) ORGANIZACJA FORMA ZAJĘĆ STUDIA STACJONARNE LICZBA GODZIN WYKŁAD (W) ĆWICZENIA W GRUPACH A K L 20 S P 30 STUDIA NIESTACJONARNE FORMY SPRAWDZANIA EFEKTÓW KSZTAŁCENIA W zaliczenie A K L kolokwia, zadania projektowe S P FORMA ZALICZENIA egzamin zaliczenie z oceną zaliczenie OCENA średnia ważona za kolokwium i zadanie projektowe UWAGI PODSTAWOWA Ben-Ari, "Podstawy programowania współbieżnego i rozproszonego", WNT 1996 Z. Weiss, T. Gruźlewski, "Programowanie współbieżne i rozproszone w przykładach i LITERATURA zadaniach", WNT 1993 "Programowanie równoległe i rozproszone", Praca zbiorowa pod redakcją A. Karbowskiego, E. Niewiadomskiej-Szynkiewicz, Oficyna Wydawnicza Politechniki Warzszawskiej 2009 ZMIANY: UZUPEŁNIAJĄCA A. S. Tanenbaum, M. van Steeen, "Systemy rozproszone", WNT, 2006 "Programowanie zastosowań sieciowych w systemie UNIX", W. Richard Stevens, WNT 1998 Michael K. Johnson, Erik W. Troan, "Oprogramowanie użytkowe w systemie Linux", WNT, 2000