61 Topologie wirtualne

Transkrypt

61 Topologie wirtualne
61
Topologie wirtualne
• pozwalają opisać dystrybucję procesów w przestrzeni z uwzględnieniem struktury komunikowania się procesów aplikacji między sobą,
• umożliwiają łatwą odpowiedź na pytanie: kto jest moim sąsiadem w
danej topologii?,
• pozwalają zoptymalizować efektywność odwzorowania topologii aplikacji na fizyczną topologię sprzętową w komputerach masywnie równoległych,
61.1
Topologia kartezjańska
Funkcja:
int MPI Cart create(MPI Comm oldcomm, int ndims, int *dims, int *periods, int reorder, MPI Comm *comm cart)
• tworzy komunikator topologii kartezjanskiej i zwraca do niego uchwyt
comm cart,
• argument oldcomm okresla kopiowany komunikator,
• liczbe wymiarów okresla argument ndims,
• tablica dims zawiera rozmiary poszczególnych wymiarów,
• jesli reorder = false, to indeksy procesów w nowym komunikatorze sa
takie same, jak w oldcomm, inaczej moga byc inne (dopasowanie do
architektury systemu),
• tablica periods okresla, czy kolejne wymiary sa cykliczne (= true) –
tworza pierscien, czy nie (= false),
• jesli liczba procesów w oldcomm jest wieksza ni wynikajaca z rozmiarów dims, to tworzony komunikator ma mniej procesów, a w nadmiarowych procesach jest wpisywane MPI COMM NULL.
61.2
Topologia grafu (ogólna)
Funkcja:
int MPI Graph create(MPI Comm comm old, int nnodes, int *index, int
*edges, int reorder, MPI Comm *comm graph)
1
• tworzy komunikator topologii grafu i zwraca do niego uchwyt comm graph,
• graf jest określony liczbą wezłów i indeksów sąsiadów,
• liczbę węzłów okresla argument nnodes,
• indeksy sąsiadów kolejnych węzłów sa umieszczane w tablicy edges,
• tablica index zawiera sumy liczb sąsiadów danego węzła i węzłów o
indeksach niższych.
Rysunek 1: Przykład wbudowanej topologii: Kartezjańska
62
Przegląd rozszerzeń MPI-2
Nowe funkcje w MPI2 (najważniejsze)
• równoległe we/wy
• zdalne operacje na pamięci
• dynamiczne zarządzanie procesami
– udziału w tworzeniu nowego procesu MPI
– ustanowienia komunikacji z procesem MPI, który został uruchomiony oddzielnie
Nowe funkcje w MPI2 (dodatkowo)
• rozszerzone operacje kolektywne
• wsparcie dla C++ i Fortran90
• współdziałanie między językami (programowanie w wielu językach jednocześnie)
• zewnętrzne interfejsy
• wątki
2
62.1
Równoległe we/wy
Równoległe we/wy, czasem nazywane MPI-IO, jest inicjatywą IBM, badającą analogię między we/wy a przesyłaniem komunikatów. Zapis oraz odczyt
z pliku jest analogią do nadawania oraz odbierania komunikatów do systemu
plików (czyli dane zamiast umieszczać w pamięci umieszczamy je do pliku
lub z tego pliku odczytujemy je).
Rysunek 2: we/wy MPI do jednego pliku
62.2
Zdalne operacje na pamięci
Powstałe rozwiązanie jest oparte na idei okien zdalnego dostępu do pamięci.
Okno zdalnego dostępu do pamięci to porcja przestrzeni adresowej każdego
procesu, na którym mogą być przeprowadzane zdalne operacje przez inne procesy występujące w komunikatorze MPI, wtedy mogą na tym oknie
być dokonane operacje jednostronne: put, get i accumulate, do zapamiętania do, ładowania z i aktualizacji okna wystawionego dla innych procesów.
Wszystkie zdalne operacje na pamięci są operacjami nieblokującymi, stąd
są konieczne operacje synchronizacji do zapewnienia ich zakoączenia.
Rysunek 3: RMA - zdalny dostęp do pamięci
3
63
Równoległa maszyna wirtualna i elementy środowiska PVM
63.1
Równoległa maszyna wirtualna
PVM - Wirtualna Maszyna Równoległa (ang.Parallel Virtual Machine), to
zestaw narzędzi do tworzenia oprogramowania dla sieci równolegle połączonych komputerów. Został zaprojektowany i stworzony, by umożliwić łączenie komputerów (o różnych konfiguracjach sprzętowych) w jeden równolegle
działający komputer.
63.2
Elementy środowiska PVM
• Program konsoli zarzadzania maszyna wirtualna – pvm
• Program demon, umoliwiajacy współdziałanie procesów (programów)
aplikacji rozproszonej – pvmd3
• Serwer grup, zapewniajacy identyfikacje grup procesów – pvmgs
• Biblioteka funkcji podstawowych – libpvm3.a
• Biblioteka funkcji operujacych na grupach procesów – libgpvm3.a
• Biblioteka interfejsu Fortranu – libfpvm3.a
64
Uruchomienie i działanie maszyny wirtualnej
64.1
Uruchomianie PVM
• Instalacja pakietu PVM na wszystkich wezłach (architekturach) maszyny wirtualnej.
• Zdefiniowanie zmiennych środowiskowych:
– PVM ARCH – okreslajaca architekture sprzetowa danego wezła
np. LINUX,
– PVM ROOT – wskazujaca katalog, gdzie pakiet został zainstalowany.
• W katalogu $PVM ROOT/lib/$PVM ARCH znajdą się biblioteki, a
w $PVM ROOT/bin/$PVM ARCH programy.
4
64.2
Działanie maszyny wirtualnej
• Uruchomienie maszyny wirtualnej (osobnej) dla każdego użytkownika
nastepuje po wystartowaniu procesu demona zarzadzajacego na pierwszym komputerze:
– przydziela on identyfikatory procesów, zarzadza grupami procesów, itp.
• Demon ten za pomoca polecenia rsh startuje demony na pozostałych
komputerach konfiguracji, rozszerzajac maszyne wirtualna.
65
Konsola PVM
Program obsługi konsoli maszyny wirtualnej:
pvm [hostfile]
gdzie hostfile jest opcjonalną nazwą pliku konfiguracyjnego, definiującego
początkowy skład maszyny wirtualnej.
Podstawowe komendy konsoli:
• add hostname [hostname] ... – dodaje węzły
• delete hostname [hostname] ... – usuwa węzły z maszyny, procesy sa
zabijane
• conf – wyswietla bieżacą konfiguracje;
• halt – przerywa wszystkie procesy, zamyka demony PVM (maszynę
wirtualna) i kończy działanie konsoli
• quit – kończy działanie tylko konsoli
• spawn – uruchamia nowy proces użytkownika na wybranym węźle maszyny wirtualnej
• help [command] – wyświetla opis (danej komendy).
5

Podobne dokumenty