Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Podobne dokumenty
Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak

5. Model komunikujących się procesów, komunikaty

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1

Programowanie współbieżne... (4) Andrzej Baran 2010/11

Operacje grupowego przesyłania komunikatów. Krzysztof Banaś Obliczenia równoległe 1

Programowanie współbieżne i rozproszone

Jak wygląda praca na klastrze

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

61 Topologie wirtualne

IPC: Kolejki komunikatów

Operacje grupowego przesyłania komunikatów

Programowanie w standardzie MPI

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Klient-Serwer Komunikacja przy pomocy gniazd

Weryfikacja oprogramowania, korzystajacego z MPI

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Obliczenia rozproszone MPI

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej

Obliczenia rozproszone MPI

Działanie systemu operacyjnego

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Programowanie współbieżne i rozproszone

Algorytmy i Struktury Danych

Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania

51. Metody komunikacji nieblokującej.

Działanie systemu operacyjnego

Rozszerzenia MPI-2 1

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

1. Kolejki komunikatów POSIX

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

IG1: INSTALACJA KOMUNIKATORA GADU-GADU

Mechanizmy z grupy IPC

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Działanie systemu operacyjnego

Kolejne funkcje MPI 1

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

Message Passing Interface

ARP Address Resolution Protocol (RFC 826)

Platforma mdrive jest kompleksowym rozwiązaniem do komunikacji oraz zdalnego zarządzania telefonami w firmie.

asix4 Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika

4. Procesy pojęcia podstawowe

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Zadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011

Kolejkowanie wiadomości Standard MQ (JMS)

Nowoczesne technologie przetwarzania informacji

Sieci komputerowe Warstwa transportowa

Architektura i administracja systemów operacyjnych

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

4. Procesy pojęcia podstawowe

Architektura komputerów

Laboratorium Komputerowe Systemy Pomiarowe

Aplikacja Sieciowa wątki po stronie klienta

Mechanizmy pracy równoległej. Jarosław Kuchta

Działanie systemu operacyjnego

Architektura sieci połączeń między procesorami, sterowanie komunikacjami, biblioteki komunikacyjne

Remote Quotation Protocol - opis

Detekcja zakończenia i obraz stanu globalnego

Informatyka. informatyka i nauki komputerowe (computer science)

Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1. Komunikacja. Model procesów komunikujących się poprzez pamięć dzieloną

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Wywoływanie procedur zdalnych

Przesyłania danych przez protokół TCP/IP

TCP/IP formaty ramek, datagramów, pakietów...

Systemy operacyjne III

4. Procesy pojęcia podstawowe

Kolejki FIFO (łącza nazwane)

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

DOKUMENTACJA TECHNICZNA KurJerzyAPI wersja 1.0

PVM Parallel Virtual Machine

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Inżynieria oprogramowania

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Kolejki komunikatów POSIX

Wyjście do drukarki Centronix

Dodawanie operacji dodatkowych w WAPRO Mag.

Kurs walut. Specyfikacja projektu. Marek Zając

Język UML w modelowaniu systemów informatycznych

Model OSI. mgr inż. Krzysztof Szałajko

Protokoły sieciowe - TCP/IP

Instalowanie dodatku Message Broadcasting

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

5. Algorytm genetyczny przykład zastosowania

Konfiguracja konta pocztowego w Thunderbird

Transkrypt:

Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065

Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów równoległych działających na jednym lub więcej komputerach. Standardy: Wersja MPI 1.0 Wersja MPI 2.0 Rys.: Maszyna wirtualna MPI. Zadanie P1 z węzła 1 komunikuje się z zadaniem P5 z węzła 2

Własności MPI Standard obejmuje: 1. Używane typy danych 2. Komunikację punkt punkt 3. Operacje grupowe 4. Zarządzanie otoczeniem 5. Tworzenie procesów i zarządzanie nimi 6. Równoległe wejście / wyjście 7. Łączenie z językami C, C++, Fortran 8. Interfejs do profilowania aplikacji

Grupy Grupa jest zbiorem procesów. Każdy proces w grupie jest identyfikowany przez indeks. Gdy w grupie jest N procesów to ich indeksy są kolejnymi liczbami z przedziału 0 do N-1. Grupa jest identyfikowana przez uchwyt MPI_Group. Istnieje predefiniowana grupa pusta identyfikowana przez uchwyt MPI_GROUP_EMPTY

Komunikatory Komunikator tworzy grupa procesów oraz kontekst ich wykonania. Jest to grupa procesów, które mogą się ze sobą komunikować. Tworzenie nowego komunikatora -Poprzez podział -Poprzez grupę procesów Charakterystyka komunikatora Uchwyt Rozmiar (size) Charakterystyka procesu Rank

Komunikatory Komunikator Podział komunikatora na dwie części

Komunikacja punkt - punkt MPI_Send - Synchroniczne wysłanie komunikatu MPI_Recv - Synchroniczny odbiór komunikatu Proces wysyłający pozostaje zablokowany do chwili odebrania komunikatu MPI_Recv powoduje zablokowanie procesu bieżącego o ile brak procesu wysyłającego komunikat.

Synchronizacja w komunikacji punkt - punkt Ze względu na współdziałanie strony nadającej i odbierającej: Komunikacja synchroniczna nadawca czeka aż odbiorca przystąpi do odbioru Komunikacja asynchroniczna gdy odbiorca nie jest gotowy to nadawca umieszcza komunikat w buforze. Ze względu na blokowanie: Komunikacja blokująca powrót z funkcji wysyłania / odbioru następuje po zakończeniu działań funkcji Komunikacja nie blokująca powrót z funkcji wysyłania / odbioru następuje natychmiast

Buforowanie W komunikacji asynchronicznej musza być użyte bufory. Do przydziału i zwalniania buforów służą funkcje: Przydział bufora MPI_Buffer_attach Funkcja tworzy bufor. Jego wielkość powinna być nie mniejsza niż rozmiar pojedynczego komunikatu. Zwolnienie bufora MPI_Buffer_dettach Funkcja zwalnia utworzony wcześniej bufor.

Tryby komunikacji W zależności od kombinacji opcji współdziałania i buforowania występuje wiele rodzajów funkcji. Tryby komunikacji Synchroniczny Buforowany Przygotowany

Tryb Synchroniczny MPI_Ssend - Proces wysyłający blokowany do czasu gdy proces odbierający zakończy odbiór. Rys.: Tryb Synchroniczny

Tryb buforowany Proces wysyłający przesyła dane do bufora skąd pobiera je proces odbierający. MPI_Ibsend - Nieblokujące buforowane wysłanie komunikatu Rys.: Tryb buforowany

Tryb przygotowany komunikat może być wysłany tylko wtedy, gdy wcześnie została już wywołana funkcja odbierająca. Jeśli ten warunek nie jest spełniony, funkcja zwraca błąd. Rys.: Tryb przygotowany

Komunikacja nieblokująca Funkcja zwraca sterowanie od razu nie czekając na wykonanie operacji. Odbieranie nieblokujące - MPI_Irecv Testowanie zakończenie operacji odbioru MPI_Wait - blokujące testowanie zakończenia operacji MPI_Test - nieblokujące testowanie zakończenia operacji

Jednoczesne wysyłanie i odbieranie W MPI istnieje funkcja MPI_Sendrecv która umożliwia wysłanie komunikatu i oczekiwanie na odpowiedź.

Komunikacja Grupowa Bariera Jeden do wielu Jeden do wielu w Grupie Odbiór od wielu w grupie

Bariera

Jeden do wielu MPI_Bcast Funkcja powoduje przesłanie komunikatu umieszczonego w buforze buffer od procesu root do wszystkich procesów komunikatora. Proces root może być dowolnym procesem z komunikatora.

Jeden do wielu w grupie MPI_Scatter - rozsyłanie wektora danych do grupy procesów Proces o numerze root dzieli wektor na n elementów i rozsyła te fragmenty do wszystkich procesów komunikatora comm łącznie z sobą samym. Podwektory te są umieszczane w buforach. Wszystkie podwektory mają tę samą długość.

Odbiór od wielu w grupie MPI_Gather - odbieranie wektora danych do grupy procesów Każdy z procesów grupy wysyła podwektor danych o długości x umieszczony w buforze. Proces o numerze root zbiera te dane i umieszcza w buforze własnym. Dane umieszczane są w kolejności zgodnej z numerami nadawców.

Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065