• Nie Znaleziono Wyników

Przetwarzanie współbieżne – programowanie równoległe Laboratorium 12. Cel: Opanowanie 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 12. Cel: Opanowanie 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 12.

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

Kroki:

1. Utworzenie katalogu roboczego (np. lab12) i podkatalogu (np. simple)

2. Skopiowanie paczki MPI_simple.tgz, rozpakowanie, modyfikacja pliku Makefile

(podstawienie właściwych ścieżek), kompilacja oraz uruchomienie – stosując różne liczby procesów (liczba musi być większa od 1).

3. Uzupełnienie programu o przesyłanie w tablicy znaków adresu internetowego węzła nadawcy i wypisywanie adresu u odbiorcy (adres można pobrać funkcją gethostname). (ocena)

4. Utworzenie podkatalogu ( np. sztafeta)

5. Opracowanie (np. na podstawie kodu z p.2) programu propagującego komunikaty w konwencji pierścienia (sztafeta). 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 - rangę procesu od którego odbiera komunikaty w ramach sztafety (pierścienia) proces może zapisać w zmiennej prev, a rangę procesu, któremu wysyła komunikaty w zmiennej next). Rozważyć dwa warianty:

1. ostatni proces przesyła dane do procesu pierwszego (zamknięty pierścień) 2. ostatni proces kończy sztafetę

6. Uruchomienie obu wariantów programu. Każdorazowo program powinien wyświetlić podstawowe informacje zgodnie z wzorem:

1. …

2. Proces ... odebrał liczb  ... od procesu ...ę 3. Proces ... wysłał liczb  ... do procesu ... ę 4. …

5. itp. (ocena)

7. Utworzenie podkatalogu roboczego (np. struktura).

8. Zaprojektowanie "bogatej" struktury danych języka C (każdy powinien zaprojektować indywidualna strukturę zawierającą co najmniej 3 typy danych, w tym co najmniej 1 tablicę) 9. Napisanie programu równoległego (np. wykorzystując kod z p. 5), w którym dokonuje się

przesłania zaprojektowanej struktury między procesami wykorzystując spakowany typ danych MPI (MPI_PACKED)

10. Uruchomienie programu w środowisku MPI i przetestowanie poprawności działania (np.

stosując sztafetę i sprawdzając, że w trakcie przesłania struktura nie uległa zmianie) (ocena) Dalsze kroki:

1. Na podstawie slajdów z wykładu opracowanie przesyłania struktury języka C za pomocą nowego typu danych MPI utworzonego specjalnie dla zaprojektowanej struktury przy użyciu funkcji MPI_Type_struct (ocena)

2. Rozpoczęcie pracy nad zadaniem z laboratorium 13 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

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ć

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