• Nie Znaleziono Wyników

Przetwarzanie współbieżne – programowanie równoległe Laboratorium 14. Cel: Doskonalenie podstaw programowania z przesyłaniem komunikatów MPI. Kroki: 1. Utworzenie katalogu roboczego (np.

N/A
N/A
Protected

Academic year: 2021

Share "Przetwarzanie współbieżne – programowanie równoległe Laboratorium 14. Cel: Doskonalenie podstaw programowania z przesyłaniem komunikatów MPI. Kroki: 1. Utworzenie katalogu roboczego (np."

Copied!
1
0
0

Pełen tekst

(1)

Przetwarzanie współbieżne – programowanie równoległe Laboratorium 14.

Cel: Doskonalenie podstaw programowania z przesyłaniem komunikatów MPI.

Kroki:

1. Utworzenie katalogu roboczego (np. lab14) 2. Utworzenie podkatalogu (np. heat_PDE)

3. Pobranie ze strony przedmiotu paczki zawierającej kod źródłowy i plik Makefile dla programu przeprowadzającego równoległą symulację zagadnienia rozchodzenia się ciepła zgodnie ze wzorem różnicowym:

ht+1[i] = h[i] + Δt * ( k* (h[i-1]-2*h[i]+h[i+1])/(Δx)2 + f(x) )

4. Zanalizowanie implementacji algorytmu, zidentyfikowanie fragmentów odpowiedzialnych za nadanie warunku początkowego i warunków brzegowych.

5. Uzupełnienie kodu o brakujące fragmenty

6. Kompilacja (make heat) i uruchomienie (make run) kodu – sprawdzenie poprawności wyniku przez porównanie z zawartością pliku heat_out.txt

7. Ustalenie wydruku, tak żeby na ekranie kolejno pojawiały się wyniki kolejnych procesów (np. za pomocą sztafety) (ocena)

8. Na podstawie slajdów z wykładu opracowanie rozwiązania zadania przepływu ciepła za pomocą komunikacji nieblokującej. (ocena)

9. Utworzenie podkatalogu (np. transpose_on_the_fly)

10. Na podstawie slajdów z wykładu napisanie programu, w którym:

1. Jest jeden proces macierzysty

2. Proces macierzysty tworzy (za pomocą MPI_Spawn) jeden proces potomny

3. Proces macierzysty tworzy tablicę dwuwymiarową i wypisuje jej zawartość na ekranie 4. Proces macierzysty wysyła do procesu potomnego (korzystając z interkomunikatora) tablicę

dwuwymiarową dokonując „w locie” (za pomocą manipulacji typami MPI) transpozycji tablicy 5. Proces potomny wypisuje wartości z tablicy na ekranie (ocena)

Dalsze kroki:

1. Utworzenie podkatalogu (np. heat_PDE_spawn)

2. Modyfikacja programu symulacji rozkładu temperatury, tak aby wykorzystać dynamiczne tworzenie procesów, według schematu:

1. program główny pobiera parametry symulacji od użytkownika, tworzy nowe procesy-dzieci i wysyła im niezbędne dane

3. procesy potomne wykonują obliczenia i przesyłają wyniki do procesu macierzystego proces macierzysty wyświetla wyniki (ocena)

4. Opracowanie wizualizacji wyników symulacji rozchodzenia się ciepła w pręcie w procesie macierzystym (np. dla odpowiednio wysokiego okna terminala wybrać zestaw punktów w obszarze obliczeniowym i przyporządkować każdy punkt odpowiedniej linijce w terminalu, po każdej chwili czasu czyścić okno terminala i dla każdego punktu (wiersza) zaznaczać wartość rozwiązania poprzez postawienie znaczka w odpowiedniej kolumnie (numer kolumny musi zostać uzyskany przez odpowiednie przeskalowanie wyniku).

Warunki zaliczenia:

1.Obecność na zajęciach i wykonanie kroków 1-10.

2.Oddanie sprawozdania z opisem zadania, kodem źródłowym programów, wynikami i wnioskami.

Cytaty

Powiązane dokumenty

Przetestowanie poprawnego działania programu (w tym poprawnego przesyłania indywidualnych identyfikatorów) dla różnej liczby tworzonych i współbieżnie

c) W celu zapewnienia poprawności działania pubu, kiedy liczba klientów jest większa niż liczba kufli, należy wprowadzić mechanizm sprawdzania dostępności kufli – klient pobiera

Funkcja calka_zrownoleglenie_petli ma utworzyć zadaną przez użytkownika liczbę wątków (liczba wątków ma być zadana w funkcji main - należy

c) każdy wątek pracuje wywołując odpowiednie funkcje z klasy Obraz do obliczania odpowiedniego fragmentu histogramu i odrębną funkcję do drukowania fragmentu histogramu

Testowanie, zgodnie z wzorcem w pliku czyt_pis.c, ma polegać na stworzeniu kilku wątków realizujących funkcje czytelnika i pisarza, które w nieskończonej (lub odpowiednio

Na podstawie materiałów z wykładu utworzenie i zaimplementowanie algorytmu realizującego 

b)liczba wątków i liczba zadań są niazależnymi parametrami - zazwyczaj liczba zadań jest większa od liczby wątków (aby umożliwić równoważenie obciążenia - liczba wątków

Można zastosować wzór z pliku openmp_petle.c (każdorazowo należy pozostawić indeksowanie tablicy a[i][j] i ewentualną zmianę kolejności przechodzenia tablicy realizować