• Nie Znaleziono Wyników

Przetwarzanie współbieżne. Programowanie równoległe i rozproszone Laboratorium 7 (zadanie dodatkowe). Cel:

N/A
N/A
Protected

Academic year: 2021

Share "Przetwarzanie współbieżne. Programowanie równoległe i rozproszone Laboratorium 7 (zadanie dodatkowe). Cel:"

Copied!
1
0
0

Pełen tekst

(1)

Przetwarzanie współbieżne. Programowanie równoległe i rozproszone Laboratorium 7 (zadanie dodatkowe).

Cel: 

doskonalenie umiejętności programowania z wykorzystaniem biblioteki wątków „pthread” oraz  wielowątkowości w Javie

zaimplementowanie funkcji realizującej konstrukcję „bariery”, przydatnej w synchronizacji  procesów równoległych

Kroki:

 1. Utworzenie katalogu roboczego (np. lab_7a_pthreads).

 2. Na podstawie materiałów z wykładu utworzenie i zaimplementowanie algorytmu realizującego  funkcję bariery: dowolny wątek może zakończyć realizację funkcji „bariera”, dopiero po  wywołaniu tej funkcji przez pozostałe wątki. Możliwy sposób rozwiązania:

 a) utworzenie zmiennej globalnej zliczającej liczbę wątków, które wywołały funkcję „bariera”

 b) związanie z tą zmienną zmiennej warunku i odpowiedniego muteksa

 c) opracowanie mechanizmu funkcjonowania bariery z wykorzystaniem powyższych zmiennych  3. Wpisanie funkcji „bariera” do osobnego pliku źródłowego

 4. Uzupełnienie programu z laboratorium („całka”) o wykorzystanie funkcji bariera: każdy wątek  wypisuje poprawną wartość obliczonej całki. 

 5. Opracowanie pliku Makefile do kompilacji  6. Kompilacja, testowanie

 7. Uzupełnienie programu z laboratorium („pub”) o wykorzystanie funkcji bariera: wątki nie  wychodzą z baru pojedynczo, ale czekają na siebie:

 a) wątki wychodzą w jednej grupie

 b) wątki wychodzą w grupach o określonej liczbie wątków  8. Utworzenie katalogu roboczego (np. lab_7a_Java).

 9. Zaimplementowanie klasy Bariera realizującej powyższe funkcje w Javie.

 a) wykorzystanie uproszczonego interfejsu: synchronised, wait, notify  b) wykorzystanie zamków i zmiennych warunku

Problemy dodatkowe: W jaki sposób zagwarantować możliwość wielokrotnego używania bariery i jak  próbować umożliwić istnienie wielu barier w jednym programie? 

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

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ć

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

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