A.
Architektura komputera wielordzeniowego
Pamięć podręczna prywatna i dzielona
Pojęcie wątku
Wielozadaniowość, wieloprocesowość, wielowątkowość
Biblioteki pozwalające na tworzenie i zarządzanie wielowątkowością
Poziomy równoległości
Modele obliczeń wielowątkowych
Rodzaje zależności danych, przykłady
Zależności między instrukcjami w ciele pętli i zależności między iteracjami pętli, przykłady
Transformacja FAN, przykłady
Transformacja PAR, przykłady
Transformacja PIPE, przykłady
Architektura komputera, architektury komputerów równoległych
Taksonomia Flynn’a
Lokalność, Granulacja, Determinizm
Przyspieszenie i efektywność,
Prawa Amdahl’a i Gustaffson’a
Izoefektywność
Model PRAM
Procesy ciężki i lekki
Projektowanie algorytmów równoległych, Podział.
Projektowanie algorytmów równoległych, Komunikacja.
Projektowanie algorytmów równoległych, Aglomeracja
Projektowanie algorytmów równoległych, Mapowanie
Co to jest program SPMD?
Dekompozycja danych
Dekompozycja funkcjonalna
Lista kontrolna w projektowaniu podziału
Lista kontrolna w projektowaniu komunikacji
Lista kontrolna w projektowaniu aglomeracji
Planowanie statyczne i dynamiczne
Planowanie dokładne i heurystyczne
Planowane scentralizowane i rozproszone
Definicja i sposoby modelowania wydajności
Czas wykonania programu rozproszonego
Czas obliczeń
Czas komunikacji
Czas oczekiwania
B
Zalety OpenMP
Komunikacja i synchronizacja w OpenMP
Model wykonywania programu w OpenMP
Pragma „omp parallel”, jej klauzule, przykłady zastosowania
Klauzula redukcji w pragmie „omp parallel”, przykłady zastosowania
Pragma „omp for”, jej klauzule, ograniczenia nakładane na pętle, przykłady zastosowania
Pragma „omp for” a pętle zagnieżdżone, przykłady zastosowania
Klauzule „firstprivate” ,”lastprivate”, przykłady zastosowania
Klauzula „default”, przykłady zastosowania
Domyślne zakresy zmiennych w OpenMP, przykłady zastosowania
Klauzula redukcji w pragmie „omp for”, przykłady zastosowania
Inicjalizacja zmiennych prywatnych i dzielonych w OpenMP
Usuwanie zależności odwrotnych w OpenMP, przykład
Usuwanie zależności po wyjściu w Open MP, przykład
Usuwanie zależności prostych w Open MP, przykład
Postępowanie z zależnościami nieusuwalnymi w OpenMP, przykłady
Szeregowanie iteracji w OpenMP(statyczne, dynamiczne, GSS)
Ograniczenia na konstrukcje w regionie równoległym w OpenMP, przykłady
Zmienne ”threadprivate”, klauzula „copyin”, przykłady zastosowania
Pragma „omp threadprivate”, jej klauzule, przykłady zastosowania
Podział pracy w regionie rownoleglym oparty na identyfikatorze wątku, przykłady zastosowania
Podział pracy w regionie równoległym oparty na kolejce zadań, przykłady zastosowania
Konstrukcje podziału pracy w OpenMP, przykłady zastosowania
Praga „omp sections”, jej klauzule, ograniczenia, przykłady zastosowania
Pragma „omp single”, ”, jej klauzule ,przykłady zastosowania
Zagnieżdżenie konstrukcji podziału pracy, przykłady
Konstrukcje osierocone w OpenMP, przykłady
Zakres zmiennych konstrukcji osieroconych, przykłady
Scalone pragmy „omp parallel” i podziału pracy, przykłady zastosowania
Zarządzanie liczbą wątków w OpenMP, przykłady
C
Watki dynamiczne w OpenMP, przykłady zastosowania
Zmienne środowiskowe w OpenMP, przykłady zastosowania
Biblioteka funkcji OpenMP, przykłady zastosowania
Wyścig danych w OpenMP, przykłady
Wyścig danych dopuszczalny i niedopuszczalny w OpenMP, przykłady
Jak można sobie poradzić z wyścigiem danych w OpenM, przykłady
Mechanizm wzajemnego wyłączania w OpenMP, przykłady
Pragma „omp critical”, jej klauzule, przykłady zastosowania
Zagnieżdżone sekcje krytyczne w OpenMP, przykłady
Pragma „omp atomic”, jej klauzule, ograniczenia, przykłady zastosowania
Funkcje zarządzania zamkami w OpenMP, przykłady
Pragma „omp barrier”, jej klauzule, przykłady zastosowania
Pragma „omp ordered”, jej klauzule, przykłady zastosowania
Pragma „omp master”, jej klauzule, czym się rozni od „omp single”, przyklady zastosowania
Pragma „flush”, jej klauzule, przyklady zastosowania
Cząstka obliczeń równoległych, jej wpływ na wydajność aplikacji w OpenMP , przykłady zastosowania
Bilansowanie obliczeń w OpenMP, jego wpływ na wydajność aplikacji w OpenMP , przykłady
Lokalność, jej wpływ na wydajność aplikacji w OpenMP , przykłady
Organizacja pamięci podręcznej w komputerze jednoprocesorowym
Organizacja pamięci podręcznej w komputerze wieloprocesorowym
Pamięć podręczna a lokalność, przykłady
Lokalność a sposoby szeregowania iteracji pętli w OpenMP, przykłady
„Zła równoległość”, przykłady
Wpływ synchronizacji barierowej na wydajność, przykłady
Wpływ wzajemnego wyłączania na wydajność, przykłady
Watki dynamiczne a wydajność aplikacji w OpenMP, przykłady
Klauzula „nowait”, jej wpływ na wydajność aplikacji w OpenMP, przykłady zastosowania
Pragma „omp ordered”, jej klauzule, przykłady zastosowania
Konstrukcje zagnieżdżone w OpenMP, przykłady zastosowania
D
Motywacja mechanizmu „tasking”
Przechodzenie drzewa: preorder, inorder, postorder
Na czy polega mechanizm tasking
Terminologia mechanizmu tasking: task, data environment, task region, explicit task, implicit task, initial task, caurrent task, child task, descendant task, task completion, task scheduling point, task switching, tied task, untied task, undeferred task, included task, merged task, final task,
Dyrectywa task, jej klauzule
Dyrectywa taskwait
Dyrektywa taskyield
Zasady wykonywania zadań(task execution)
Zadania a wzajemne wyłączanie
Domyślne zasady nadawania zakresów zmiennych (shared, private)