| Lp. | Tematy | Godz. |
|---|---|---|
| 1. | Potrzeba obliczeń wysokowydajnych, dziedziny zastosowań. Idea obliczeń równoległych | 0.5 |
| 2. | Klasyfikacja komputerów wg Flynna, podział komputerów wieloprocesorowych ze względu na pamięć. Programowanie komputerów z pamięcią wspólną vs programowanie komputerów z pamięcią rozproszoną (wady i zalety). | 0.5 |
| 3. | Równoległość wewnątrz procesora: potokowość i wektorowość. Wykorzystanie hierarchii pamięci. Podstawowe podprogramy algebry liniowej (BLAS i ATLAS). Algorytmy blokowe i LAPACK. Nowe struktury danych dla efektywnego wykorzystania pamięci podręcznej. | 1 |
| 4. | Metody konstrukcji efektywnych algorytmów równoległych przy użyciu BLAS-u: metoda Choleskiego (case study), blokowe wersje eliminacji Gaussa. Algorytmy divide-and-conquer rozwiązywania układów równań liniowych o macierzach pasmowych. Obliczenia rekurencyjne. | 2 |
| 5. | Programowanie komputerów z pamięcią rozproszoną przy użyciu MPI. Proste programy typu SPMD - kompilacja i uruchamianie. Tryby komunikacji w MPI. Kolektywna komunikacja. Zaawansowane wykorzystanie komunikatorów i topologii. Przykłady bardziej zaawansowanych programów SPMD. Metody dystrybucji danych dla obliczeń na komputerach z pamięcią rozproszoną. Język programowania Unified Parallel C. | 5 |
| 6. | Modele i metody analizy programów równoległych i ograniczenia równoległości. Prawo Amdahla. Model Gustafsona. Model Hockney'a-Jesshope'a obliczeń wektorowych. Zastosowanie modeli do predykcji czasu wykonania algorytmów oraz poszukiwania algorytmów optymalnych. Uniwersalny model BSP obliczeń równoległych. | 2 |
| 7. | Programowanie komputerów z pamięcią wspólną: standard OpenMP. Konstrukcje specyfikujące równoległość obliczeń. Zrównoleglanie pętli i nieregularnych obszarów kodu. Konstrukcje umożliwiające synchronizację i tworzenie sekcji krytycznych. | 3 |
| 8. | Przykłady efektywnych podejść do rozwiązywania problemów obliczeniowych. Wykorzystanie bibliotek BLACS, PBLAS i ScaLAPACK do szybkiego tworzenia wydajnych aplikacji. Przyszłość: GRID i obliczenia heterogeniczne. | 1 |