Jak wygląda praca na klastrze

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

Weryfikacja oprogramowania, korzystajacego z MPI

51. Metody komunikacji nieblokującej.

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

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

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

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

WST P DO PROGRAMOWANIA RÓWNOLEGŠEGO 1. KLASTER

Operacje kolektywne MPI

Operacje grupowego przesyłania komunikatów

Programowanie współbieżne Wykład 11 Wprowdzenie do MPI. Rafał Skinderowicz

Programowanie współbieżne Wykład 12 MPI c.d. Rafał Skinderowicz

Miary Wydajności. Efektywność programu równoległego (E) jest definiowana jako stosunek przyśpieszenia do liczby procesorów

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

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

Podstawy programowania komputerów

Spis treści. Opis urządzenia. Pierwsze użycie

O superkomputerach. Marek Grabowski

Działanie systemu operacyjnego

61 Topologie wirtualne

Optymalizacja komunikacji w systemach rozproszonych i równoległych

Kopiowanie plików. 1. Z sieci wewnętrznej PK. System Windows

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

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski

Wstęp 5 Rozdział 1. SUSE od ręki 13

Obliczenia rozproszone MPI

Programowanie w standardzie MPI

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

Pracownia Technik Obliczeniowych

Działanie systemu operacyjnego

Wstęp do programowania 2

Proces y i y w i ąt ą ki

Kolejki FIFO (łącza nazwane)

Logowanie z zewnątrz. Np. Program PUTTY, SSH

Działanie systemu operacyjnego

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Wykorzystanie klastra Wydziału Informatyki PB do prowadzenia własnych obliczeń. Wojciech Kwedlo Wydział Informatyki PB

BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi

Działanie systemu operacyjnego

Mechanizmy z grupy IPC

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Model sieci OSI, protokoły sieciowe, adresy IP

Integracja ORPPD z uczelnianymi systemami antyplagiatowymi

Wprowadzenie do MPI. Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski

Architektura komputerów

Interfejs MPI. Maciej Kasperski, Rafał Kozik. 16 kwietnia 2008

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

(BSS) Bezpieczeństwo w sieciach WiFi szyfrowanie WEP.

Proces obsługi deklaracji Intrastat w systemie Celina WebCel

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Instrukcja krok po kroku instalacji Windows Vista w nowym komputerze

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

Paweł Skrobanek. C-3, pok

Programowanie współbieżne i rozproszone

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

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

Praca zdalna z poziomu systemu Linux

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Komunikacja w sterownikach Horner APG w sieci CsCAN

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 4

Działanie komputera i sieci komputerowej.

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Message Passing Interface

Kompilacja i uruchamianie zadań na klastrach Perszeron i Mustang.

Obliczenia rozproszone MPI

Konfiguracja komunikacji w sterownikach Horner APG w sieci CsCAN

Algorytmy i Struktury Danych

Programowanie Współbieżne

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

ZAKŁAD SYSTEMÓW ROZPROSZONYCH. Politechnika Rzeszowska BEZPIECZEŃSTWO I OCHRONA INFORAMCJI

Organizacja typowego mikroprocesora

Obliczenia rozproszone z wykorzystaniem MPI

Materiały dodatkowe. Raspberry Pi

IV - INSTRUKCJE SIECIOWE SPIS TREŚCI: 1. Charakterystyka protokołu komunikacyjnego PPI Charakterystyka interfejsu MPI...5

Dariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51. Loader LX51 INSTRUKCJA OBSŁUGI DK Wszystkie prawa zastrzeżone

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Materiały dodatkowe. Simulink Real-Time

WAŻNE! PRZECZYTAJ KONIECZNIE!

SPIS TREŚCI: 1. Charakterystyka protokołu komunikacyjnego PPI... 2 str. 2. Charakterystyka interfejsu MPI... 4 str.

Instrukcja pobrania i instalacji. certyfikatu niekwalifikowanego na komputerze lub karcie kryptograficznej wersja 1.2

Wprowadzenie do MPI. Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski

Kolejne funkcje MPI 1

1. Instalacja modułu w systemie Windows.

Zarządzanie użytkownikami w

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Systemy zarządzania produkcją - MES

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

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Technologie informacyjne (2) Zdzisław Szyjewski

ZASADY PROGRAMOWANIA KOMPUTERÓW

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

Transkrypt:

Jak wygląda praca na klastrze Upraszczając nieco sprawę można powiedzieć, że klaster to dużo niezależnych komputerów (jednostek) połączonych mniej lub bardziej sprawną siecią. Często poszczególne jednostki połączone są (po kilka, kilkanaście...) w węzły. Komunikacja przez sieć między jednostkami z jednego węzła jest szybsza niż między jednostkami z różnych węzłów. Każda jednostka jest pełnym komputerem posiadającym swoją własną pamięć wewnętrzną i pełne możliwości samodzielnej pracy. Często pamięć dyskowa jest wspólna. Klastry które znam, należą do ICM na UW. Pracowałem na starym HALO, na nowszym HALO2, na NOTO- SIE (Blue Gene) i próbowałem na BOREASZU - trochę innym. 1

Wszystkie te maszyny są wyposażone w LINUX lub inny system operacyjny linuxo-podobny oraz w komplet najważniejszych kompilatorów (Fortran, C,...). Ja piszę programy w moim ulubionym, (lekko podrasowanym) Fortranie 77. Zwykle do wszystkich jednostek ładuje się ten sam program, który sam musi wiedzieć co ma w której jednostce robić. Do wszystkich udostepnionych maszyn użytkownik dostaje się poprzez maszynę DELTA. Wejście na każdy stopień wymaga podania hasła. Najwygodniej pracuje się poprzez ssh i sftp, z dowolnego komputera podłączonego do publicznej sieci. W ten sposób nasz komputer staje się terminalem wybranej maszyny. 2

Gdy mamy już skompilowany nasz program, aby uruchomić go na klastrze, musimy program wstawić do kolejki, gdzie czeka on na moment gdy zostanie wpuszczony do klastra i uruchomiony. Kolejka ma swoje dobre strony: gdy program jest w kolejce możemy, na przykład, pójść na spacer. Warto jednak, co pewien czas sprawdzać co w kolejce się dzieje. Przed wstawieniem programu do kolejki, trzeba przygotować dla niego odpowiedni script, to jest coś w rodzaju metryczki podającej różne niezbędne informacje o naszym programie. Taki script to rodzaj kilkulinijkowego formularza, który trzeba wypełnić i nadać mu nazwę, przy pomocy której nasz program jest identyfikowany. Przydział konkretnych procesorów następuje po odczytaniu przez system naszego scriptu. 3

Do komunikacji między procesorami (jednostkami) służy system podprogramów MPI (Message Passing Interface). Te podprogramy są wywoływalne w sposób standardowy z programów pisanych w Fortranie i C. Podprogramy MPI uruchamiają operacje potrzebne przy komunikacji międzyprocesorowej. Przytoczę tu te najważniejsze, w wersji dla Fortranu, wywoływane komendą call.... 4

Najczęściej korzysta się z buforowanego systemu przesyłania danych między procesorami. Bufor - to zarezerwowane miejsca pamięci służące do chwilowego przechowywania przesyłanych danych. Bufor trzeba zadeklarować na poczatku programu, przewidując dla niego dostatecznie dużą liczbę miejsc. Używając bufora unikamy ewentualnego zablokowania programu, spowodowanego kolizją przy przesyłaniu. Poniżej podaję tylko buforowe komendy MPI dotyczące przesyłania. 5

1. MPI Init(ierr) otwiera środowisko MPI. Zmienna całkowita ierr zawiera informacje, czy operacja się powiodła 2. MPI Comm Size(MPI Common World, size, ierr) zmienna całkowita size podaje liczbę procesorów które chcemy użyć; MPI Common World oznacza, że chcemy wybierać procesory z zasobu wszystkich dostępnych 3. MPI Comm Rank(MPI Common World, rank, ierr); komenda ustala, że zmienna całkowita rank będzie oznaczac numer procesora, liczony od 0 do size 1 4. MPI Finalize(ierr) zamyka środowisko MPI 6

5. MPI Buffer Attach(buffer,size,ierr), MPI Buffer Detach(buffer,size,ierr) dołączanie i odłączanie bufora buffer. 7

6. MPI Bsend(buf, count, datatype, dest, tag, Comm) buf oznacza wysyłany zbiór, count oznacza liczbę wysyłanych słów danych, datatype: MPI REAL, lub MPI REAL8, lub MPI Integer,... dest, to numer procesora dla którego przesyłka jest przeznaczona, zmienna naturalna tag, - to znacznik identyfikujący przesyłkę, Comm, - to użyty tu skrót dla MPI Common World 8

7. MPI Recv(buf, count, datatype, source, tag, Comm, status, ierr) buf oznacza zbiór do którego przyjmuje się przesyłkę, status i ierr - te zamienne całkowite zawierają informacje na temat aktualnego stanu operacji przesyłania i odbierania 9

8. MPI Barrier(Comm, ierr) każdy z wykonywanych procesów, czeka aż pozostałe procesy dotrą do tego miejsca 9. MPI Gather(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, root, Comm, ierr) zbieranie ze wszystkich procesów; sendbuf - zbiór wysyłany, recvbuf - zbiór do którego się zbiera, root numer procesora w którym wszystko się zbiera 10. MPI Allgather(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, Comm, info) to samo, co MPI Gather(), tylko zbieranie we wszystkich procesorach będących w uzyciu 10

11. MPI Reduce(sendbuf, recvbuf, count, datatype, op, root, Comm, ierr) przesyłanie sendbuf ze wszystkich procesów, do recvbuf w procesorze root i wykonywanie operacji op. Operacja op : MPI SUM, MPI PROD, MPI MIN, MPI MAX i wiele różnych operacji logicznych i innych 12. MPI Allreduce(sendbuf, recvbuf, count, datatype, op, Comm, ierr) to samo co MPI Reduce, tylko przesyłanie do wszystkich używanych procesorów 11

Kazda z maszyn ma nieco inny język scriptów, inny język porozumiewania sie w sprawie kolejki, sprawdzania stanu kolejki, wyciągania programów z kolejki itp. Więcej informacji niż wyżej podane na temat MPI - patrz przeglądarka Google. 12