16 Questions
Jakie są zalety modelu programowania SPMD?
umożliwia realizację na różnych platformach, w tym w MPI i OpenMP
Co to jest zależność RAW?
zależność pomiędzy dwoma instrukcjami, gdzie jedna z nich ustawia wartość zmiennej, a druga tę wartość odczytuje
Co oznacza MPI_Allgather?
operacja kolekcji danych z wszystkich procesów do jednego procesu
Jakiego typu jest zależność pomiędzy instrukcjami y += 4 * sin (i * 3.14); A [i] = 3 * x + z * y;?
RAW (Read After Write)
Co to jest model programowania MPMD?
każdy proces uruchamia inny program
Co to jest MPI_Comm_Work?
komunikator, który grupuje procesy wśród komunikacji
Jakie jest znaczenie MPI_Allreduce?
operacja redukcji danych z wszystkich procesów do jednego wyniku
Co to jest zmienne pomocnicze w modelu programowania SPMD?
zmienne, które są przypisane do każdego procesu
Co stanie się z wartościami w zmiennej b po wykonaniu operacji MPI_REDUCE?
Wartości zmienią się tylko w procesie o randze 1
Programy standardowe w stosunku do programu rozważanego w analizie Amdahla mają najczęściej:
mniejszy udział części nie dającej się zrównoleglić
Co oznacza sposób podziału iteracji równoległej pętli for pomiędzy wątki przy zastosowaniu klauzuli schedule (dynamic)?
przydział będzie dokonywany w trakcie działania programu
Co oznacza klauzula firstprivate?
zmienna będzie zmienną prywatną wątków, inicjalizowaną wartością sprzed rozpoczęcia wykonywania dyrektywy
W analizie Gustafsona rozważa się zadania, których czas rozwiązania programem równoległym przy rosnącej liczbie procesorów jest:
stały
Co stanie się z wartościami w zmiennej a po wykonaniu operacji MPI_REDUCE?
Wartości pozostaną niezmienione
Co oznacza, że program ma większy udział części nie dającej się zrównoleglić?
Program jest mniej efektywny
Co się stanie, gdy liczba procesorów wzrośnie w programie równoległym?
Czas rozwiązania programu zmniejszy się
Study Notes
Model programowania SPMD
- Może być realizowany w MPI i OpenMP
- Ogólniejszy niż MPMD w standardowych środowiskach programowania
- Wymaga, aby każda linijka kodu była wykonywana przez wszystkie procesy (wątki), tyle że pracujące na różnych danych
Zależności w kodzie
- RAW (Read After Write) - zależność, gdzie jedna instrukcja czyta wartość zmiennej, która została zmieniona przez poprzednią instrukcję
- WAR (Write After Read) - zależność, gdzie jedna instrukcja pisze wartość zmiennej, która została wcześniej odczytana przez inną instrukcję
- WAW (Write After Write) - zależność, gdzie dwie instrukcje piszą wartość zmiennej
Operacja komunikacji grupowej
- MPI_Gather - operacja, która zbiera dane z wszystkich procesów i umieszcza je w jednym procesie
- MPI_Allgather - operacja, która zbiera dane z wszystkich procesów i umieszcza je w każdym procesie
- MPI_Scatter - operacja, która dystrybuuje dane z jednego procesu do wszystkich procesów
- MPI_Alltoall - operacja, która dystrybuuje dane z każdego procesu do każdego procesu
- MPI_Reduce - operacja, która redukuje dane z wszystkich procesów do jednego wyniku
- MPI_Allreduce - operacja, która redukuje dane z wszystkich procesów do jednego wyniku i umieszcza go w każdym procesie
Podział iteracji pętli for
- Klauzula schedule (dynamic) - sposób podziału iteracji pomiędzy wątki, gdzie przydział będzie dokonywany w trakcie działania programu
- Liczba iteracji przydzielanych poszczególnym wątkom może być różna
- Rozmiar porcji będzie zmienny (określany dynamicznie)
Klauzula firstprivate
- Oznacza, że objęta nią zmienna będzie zmienną prywatną wątków, inicjalizowaną wartością sprzed rozpoczęcia wykonywania dyrektywy
Analiza Gustafsona
- Rozważa się zadania, których czas rozwiązania programem równoległym przy rosnącej liczbie procesorów jest stały
Quiz o programowaniu SPMD (single program multiple data) - różnice i zależności między tym a innymi modelami programowania.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free