130 likes | 278 Views
Zadanie z dekompozycji. Algorytmy Równoległe Bartosz Baliś. Informacje ogólne. Zadania z dekompozycji domenowej Tematy dzielą się na trudniejsze (z modelem fizycznym) i łatwiejsze Realizacja w grupach 2-osobowych Oddawanie w etapach. Zagadnienia. Algorytm równoległy dla wybranego problemu
E N D
Zadanie z dekompozycji Algorytmy RównoległeBartosz Baliś
Informacje ogólne • Zadania z dekompozycji domenowej • Tematy dzielą się na trudniejsze (z modelem fizycznym) i łatwiejsze • Realizacja w grupach 2-osobowych • Oddawanie w etapach
Zagadnienia • Algorytm równoległy dla wybranego problemu • metodologia PCAM • ew. zamiana ciągłego modelu fizycznego na dyskretny • Symulacja • warunki brzegowe i początkowe • zapisywanie danych z kolejnych kroków symulacji • warunek stopu • Wizualizacja • on-line lub off-line • zbieranie danych z symulacji • Pomiar wydajności • w zależności od stopnia aglomeracji • Sprawozdanie
Zadania – informacje ogólne • Symulacja zmiany jakiejś wielkości w czasie w dziedzinie dwuwymiarowej • W niektórych zadaniach zadany model fizyczny – równania różniczkowe cząstkowe 2 stopnia • w trudniejszych modelach czas występuje explicite jako składowa równania
Zasada konstrukcji algorytmu • Podział dziedziny na siatkę 2-D (o stałym skoku) • w implementacji nie występują wymiary fizyczne, jedynie liczba punktów siatki • Wymóg: dekompozycja dwuwymiarowa (każde zadanie dostaje wycinek domeny – „podmacierz”) • Szukamy formuły iteracyjnej typu: hi,jt+1 = f(ht)gdzie:hij – szukana wielkość w punkcie (i,j) siatki t – dany krok symulacji • Implementacja w MPI
Przykład dyskretyzacji modelu fizycznego • W równaniu opisującym problem, np.:d2h/dx2 + d2h/dy2 = 0 • Zmieniamy pochodne cząstkowe na ilorazy różnicowe:dh/dx = (hi+1,j–hi-1,j) / ∆x d2h/dx2 = (hi+1,j–2hi,j+hi–1,j) / ∆x2 • W przypadku pochodnej po czasie: dh/dt = (hijt–hijt-1) / ∆thijt-1 to wartość obliczanej wielkość w danym punkcie siatki w poprzednim kroku symulacji • Następnie wyliczamy hij
Symulacja • Obliczanie w kolejnych iteracjach szukanej wielkości we wszystkich punktach siatki • W danym kroku do obliczenia konieczne są zwykle wartości sąsiadów • Jeśli wartości sąsiedniego punktu są w innym procesie, konieczna jest komunikacja
Warunki brzegowe i początkowe • Warunki brzegowe – parametry układu na jego brzegu (poza obszarem badanym) • Np. temperatura płytki na brzegu • Warunki początkowe – stan układu w iteracji „zerowej” • Np. temperatura początkowa płytki, początkowe wychylenie membrany
Zapisywanie kolejnych kroków symulacji • Konieczne gdy wizualizacja jest off-line • Dwie możliwości: • w każdym kroku zbieramy dane z wszystkich zadań i zapisujemy je w globalnym pliku • każde zadanie zapisuje lokalnie częściowy przebieg symulacji, zaś na końcu wszystkie pliki są zbierane i scalane
Warunek stopu symulacji • Czasem go nie ma ... • Z góry zadajemy liczbę kroków • Czasem symulacja ma się zakończyć po osiągnięciu pewnego stanu • Np. problem kolorowania obszarów • W każdym kroku konieczna dodatkowa komunikacja (globalna?), żeby sprawdzić czy osiągnięto warunek stopu
Wizualizacja • On-line – wizualizacja w trakcie trwania symulacji • Konieczne połączenie programu wizualizującego z aplikacją MPI ... • Lub MPI w każdym kroku generuje plik i wysyła sygnał do programu wizualizacyjnego • Off-line – wizualizacja po zakończeniu symulacji, na podstawie pliku śladu • Konieczne zapisanie całego przebiegu symulacji w pliku • Można samemu napisać aplikację lub użyć zestawu funkcji MPE_xxxx – rozszerzenie MPI!
Pomiar wydajności • Badanie czasu wykonania symulacji w zależności od stopnia aglomeracji ... • Minimalny – wszystkie dane w jednym procesie • Maksymalny – jeden punkt siatki w jednym procesie • W praktyce byłoby za dużo procesów – trzeba ograniczyć, np. do podziału pomiędzy 16 procesów • ... a także od rozmiaru problemu (całkowitej liczbie punktów siatki)
Sprawozdanie • Opis algorytmu, opis implementacji, wyniki pomiarów wydajności • Opis zastosowania schematu PCAM – zwłaszcza checklist dla kolejnych etapów • Partitioning, communication, agglomeration, mapping