• Nie Znaleziono Wyników

Przetwarzanie współbieżne. Programowanie równoległe i rozproszone Laboratorium 10 Cel:

N/A
N/A
Protected

Academic year: 2021

Share "Przetwarzanie współbieżne. Programowanie równoległe i rozproszone Laboratorium 10 Cel:"

Copied!
1
0
0

Pełen tekst

(1)

Przetwarzanie współbieżne. Programowanie równoległe i rozproszone Laboratorium 10

Cel:

pogłębienie umiejętności pisania programów równoległych w środowisku OpenMP Zajęcia:

1. Utworzenie katalogu roboczego (np. lab_10/zmienne).

2. Skopiowanie paczki openmp_watki_zmienne.tgz, rozpakowanie w katalogu roboczym, uruchomienie programu

3. Poprawienie czytelności wydruku (każdy wątek drukuje bez ingerencji innych); wydruki zorganizować tak, żeby wydruki zmiennych wspólnych w każdym wątku były takie same jak wydruki po wyjściu z obszaru równoległego

4. Uruchomienie programu z domyślną liczbą wątków – sprawdzenie poprawności nadawania wartości zmiennym

5. Uruchomienie programu przy użyciu dużej liczby wątków (np. 33) korzystając ze zmiennej środowiskowej

6. Sprawdzenie poprawności działania – wartości zmiennych muszą w każdym przebiegu być identyczne (33 wątki powinny prowadzić do błędów, dla małej liczby wątków błędy mogą pojawiać się bardzo rzadko)

7. Analiza działania programu – wykrycie zależności pomiędzy instrukcjami

a) wypisanie linii kodu z zależnościami (opis zależności powinien znaleźć się w sprawozdaniu)

b) opracowanie sposobów usunięcia zależności (ocena) 8. Poprawienie błędów w działaniu kodu

9. Uruchomienie programu za pomocą 5 wątków korzystając z funkcji bibliotecznej, sprawdzenie poprawności działania kodu

10. Uruchomienie programu za pomocą 7 wątków korzystając z odpowiedniej klauzuli, sprawdzenie poprawności działania kodu (ocena)

11. Napisanie drugiego obszaru równoległego. Przetestowanie dyrektywy threadprivate – zmienne objęte tą dyrektywą mają zachować swoje prywatne wartości (np. nadanie w pierwszym obszarze przykładowej zmiennej f_threadprivate wartości identyfikatora wątku i wydrukowanie jej w drugim obszarze) (ocena)

12. Utworzenie katalogu roboczego (np. lab_10/pde) .

13. Skopiowanie pliku openmp_zaleznosci.c, rozpakowanie w katalogu roboczym, uruchomienie programu.

14. Analiza zależności przenoszonych w pętli (opis powinien znaleźć się w sprawozdaniu) 15. Poprawne zrównoleglenie pętli – sprawdzenie wyniku. (ocena)

16. Pomiar czasu działania (dla rozmiaru tablicy 100000 i 1000000) w zależności od liczby wątków

a) analiza narzutu obliczeniowego w stosunku do wariantu idealnego (ocena) Dalsze kroki dla podniesienia oceny:

1. Napisanie zadań z Laboratorium 6 wykorzystując język C i dyrektywy OpenMP Warunki zaliczenia:

1. Obecność na zajęciach i wykonanie co najmniej kroków 1-15

2. Oddanie jednostronicowego sprawozdania z krótkim odręcznym opisem zadania (cel, zrealizowane kroki, wnioski), kodem źródłowym procedur w C.

Cytaty

Powiązane dokumenty

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ć

Uzupełnienie programu o definicje zadań (tasks) – dla wersji równoległej openmp wyszukiwania binarnego (można wzorować się na procedurze sortowania przez scalanie merge_sort_openmp

Każdy proces ustala jednego poprzednika (od którego otrzymuke komunikaty, oraz jednego następcę, któremu przekazuje komunikaty (można w tym celu wykorzystać rangi procesów -

Ustalenie wydruku, tak żeby na ekranie kolejno pojawiały się wyniki kolejnych procesów (np. za pomocą sztafety) (ocena).. Na podstawie slajdów z wykładu opracowanie

procesów (maksymalna liczba procesów nie powinna przekraczać liczby rdzeni/wątków sprzętowych, patrz wyjaśnienie powyżej) oraz rozmiaru zadania (ilości