Równoległe przetwarzanie danych 1102-232
Na zajęciach omawiane są systemy, w których zachodzi równoległe przetwarzanie danych. Dzielimy je na trzy kategorie: systemy silnie równoległe (np. sieci porównujące, systemy kombinacyjne, sieci neuronowe), komputery wieloprocesorowe oraz klastry obliczeniowe i opisujemy ich budowę oraz zasady działania. Ponadto przedstawiane są możliwe zastosowania tych systemów oraz matematyczne podstawy obliczeń równoległych, w tym prawo Amdahla, twierdzenie Brenta oraz model obliczeń asynchronicznych Bertsekasa-Tsitsiklisa.
Program:
1. Sieci porównujące i sortujące
2. Równoległe systemy kombinacyjne
3. Komputery wieloprocesorowe
4. Sprawność systemu wieloprocesorowego i prawo Amdahla
5. Twierdzenie Brenta
6. Podział czasu i systemy operacyjne
7. Podział czasu w systemie Linux 2.6
8. Sytuacje hazardowe i metody wzajemnego wykluczania
9. POSIX threads i System V IPC
10. Klastry obliczeniowe
11. Obliczenia asynchroniczne
12. Wsparcie dla programowania równoległego, PVM i MPI
Do uczestnictwa w zajęciach i zaliczenia przedmiotu potrzebna jest znajomość programowania komputerów, przynajmniej na podstawowym poziomie. Zalecana jest umiejętność programowania w języku C oraz dobre rozumienie tekstów w języku angielskim. Oceny są wystawiane na podstawie wyników dwóch testów, frekwencji oraz (opcjonalnie) szczególnych indywidualnych osiągnięć.
Strona internetowa: http://www.fuw.edu.pl/~rwys/pc/
Opis sporządził Rafał J. Wysocki, kwiecień 2007
Rodzaj przedmiotu
Literatura
1. T. H. Cormen, C. E. Leiserson, R. L. Rivest, Wprowadzenie do algorytmów (Wydawnictwo Naukowo-Techniczne, Warszawa, 2001).
2. Praca zbiorowa, red. A. Karbowski, E. Niewiadmoska-Szynkiewicz, Obliczenia równoległe i rozproszone (O?cyna Wydawnicza Politechniki Warszawskiej, Warszawa 2001).
3. R. Love, Linux kernel - Przewodnik programisty (Wydawnictwo HELION, Gliwice, 2004).
4. J. Corbet, A. Rubini, G. Kroah-Hartman, Linux Device Drivers, Third Edition (O'Reilly, Beijing-Cambridge-Farnham-K¨ln-Paris-Sebastopol-Taipei-Tokyo, 2005).
5. Advanced Micro Devices, AMD64 Architecture Programmer's Manual Volume 2: System Programming (http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24593.pdf)
6. P. E. McKenney, J. D. Slingwine, Read-Copy-Update: Using execution history to solve concurrency problems (http://www.rdrop.com/users/paulmck/rclock/intro/rclock_intro.html)
7. R. G. Brown, Engineering a Beowulf-style Compute Cluster (http://www.phy.duke.edu/resources/computing/brahma/beowulf_book)
8. H. W. Lang, F. H. Flensburg, Sequential and parallel sorting algorithms (http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/algoen.htm)
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: