Klastry komputerów PC Obliczenia równoległe w zagadnieniach inżynierskich Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Szybki wzrost mocy obliczeniowej komputerów PC, dostępność oprogramowania typu Open Source jak również wysokowydajnych sieci komputerowych spowodował, że klastry komputerów PC stanowia obecnie dominujacy typ systemów równoległych, Bardzo istotnym czynnikiem wpływajacym na rozpowszechnienie się klastrów komputerów PC jest dużo niższy koszt w porównaniu do tradycyjnych systemów równoległych Różnorodne architektury procesorów - Intel, AMD (architektury 32- i 64-bitowe) Metaklastry Wykład 5 p. 1/?? Założenia projektu CLUSTERIX Wykład 5 p. 2/? Dynamiczny postęp w dziedzinie rozległych sieci komputerowych (WAN), umożliwił stworzenie zintegrowanych hierarchicznych architektur typu metaklaster, sa one złożone z wielu klastrów rozmieszczonych zazwyczaj w geograficznie odległych miejscach, tego typu architektury sa postrzegane przez użytkowników jako całość (jeden wirtualny metaklaster), umożliwiajac wykorzystanie jego zasobów w jednolity sposób, powyższy efekt jest realizowany przez oprogramowanie warstwy pośredniej (middleware) dostarczajac zunifikowanych mechanizmów zarzadzania zasobami, monitorowania, przesyłania danych, dostępu do zasobów, autoryzacji. Głównym celem realizacji projektu jest opracowanie narzędzi oraz mechanizmów umożliwiajacych wdrożenie produkcyjnego środowiska gridowego, W konfiguracji bazowej udostępni ono infrastrukturę lokalnych klastrów PC-Linux o architekturze 64-bitowej, połaczonych szybka siecia szkieletowa zapewniana przez sieci PIONIER Do infrastruktury bazowej podłaczone zostana zarówno istniejace, jak i nowe klastry, o zróżnicowanej architekturze 32- i 64-bitowej (możliwe jest dynamiczne przyłaczanie i odłaczanie klastrów lokalnych). Wykład 5 p. 3/?? Wykład 5 p. 4/?
CLUSTERIX - Instalacja pilotaz owa Architektura sieci systemu CLUSTERIX Szkielet systemu stanowi 12 klastrów lokalnych. Bezpieczny dostep do sieci zapewniaja routery ze zintegrowana funkcjonalnos cia firewalla Klastry lokalne budowane w oparciu o 64-bitowe procesory Intel Itanium2 1,4 GHz wyposaz one w pamieci podreczne o wielkos ci 3 MB oraz 2 lub 4 GB pamieci operacyjnej na wezeł Uz ycie dwóch VLAN-ów z dedykowana przepustowos cia 1Gbps umoz liwia separacje zasobów obliczeniowych od szkieletu sieci Komunikacja wewnatrz klastrów lokalnych oparta o siec Gigabit Ethernet i InfiniBand Komunikacja pomiedzy klastrami lokalnymi odbywa sie za pomoca dedykowanych kanałów 1 Gb/s udostepnianych przez siec PIONIER Wykład 5 p. 5/?? Oprogramowanie zarzadzaj ace Wykład 5 p. 6/?? CLUSTERIX - Wykonanie zadania Tworzone oprogramowanie bazuje na Globus Toolkit 2.4. Dzieki temu istnieje moz liwos c wykorzystania oprogramowania tworzonego w ramach innych projektów, współdziałanie z innymi systemami gridowymi staje sie łatwiejsze (moz e byc realizowane na poziomie serwisów). Wykorzystywane jest oprogramowanie typu Open Source - w tym LINUX (Debian, jadro 2.6.x) oraz systemy kolejkowe (Torque, SGE) Oprogramowanie Open Source jest bardziej podatne na integracje zarówno z istniejacymi, jak i z nowymi produktami Dostep do kodu z ródłowego projektu ułatwia dokonywania zmian i ich publikacje Wieksza niezawodnos c i bezpieczen stwo Wykład 5 p. 7/?? Wykład 5 p. 8/??
Scenariusz wykonania zadania - portal Scenariusz wykonania zadania - GRMS Użytkownik zleca zadanie do systemu zarzadzania zadaniami za pośrednictwem interfejsu dostępowego w postaci portalu gridowego. Portal został zaprojektowany w taki sposób, aby łatwo można go było dostosowywać do potrzeb użytkowników (aplikacji) oraz aby był bezpieczny i wydajny. Grid Resource Management System (GRMS) jest systemem zarzadzania zadaniami wykorzystywanym w projekcie CLUSTERIX. GRMS wybiera optymalny zasób do uruchomienia zadania zgodnie z opisem zadania. Wszystkie wymagania użytkowników sa specyfikowane przy pomocy specjalnych dokumentów XML, nazwanych opisami zadań GRMS Job Description (GJD). <grmsjob appid="psolidify"> <simplejob> <resource> <localrmname>pbs</localrmname> <hostname>access.pcss.clusterix.pl</hostname> </resource> <executable type="mpi" count="6"> <file name="exec" type="in"> <url>file:////home/users/olas/opt/bin/psolidify</url> </file> <arguments> <value>/home/users/olas/calc/solid/large/40000/40000</value> </arguments> </executable> </simplejob> </grmsjob > Scenariusz wykonania zadania - VUS Wykład 5 p. 9/?? Wykład 5 p. 10/? Scenariusz wykonania zadania - CDMS System Wirtualnych Użytkowników (Virtual Users Accounts System - VUS) odpowiada za mapowanie użytkownika na konta fizyczne w klastrach lokalnych. Na klastrach lokalnych istnieje zbiór ogólnodostępnych kont, które moga być przyporzadkowane kolejnym zadaniom. System ten upraszcza administracje kontami użytkowników oraz udostępnia pełna informacja rozliczeniowa o wykorzystaniu kont. Pliki wykonywalne oraz dane wejściowe niezbędne do uruchomienia zadania pobierane sa z systemu zarzadzania danymi. W ramach projektu CLUSTERIX do zarzadzania danymi został stworzony system CLUSTERIX Data Management System (CDMS). Dane użytkowników przechowywane sa w replikowanych magazynach danych (storage elements). Każdy użytkownik ma logiczny katalog domowy, w którym umieszcza swoje pliki. Wykład 5 p. 11/?? Wykład 5 p. 12/?
Scenariusz wykonania - uruchomienie Scenariusz wykonania zadania - MPICH-G2 Zadanie zostaje wykonane na przydzielonych zasobach (węzłach obliczeniowych lokalnych klastrów). Po zakończeniu zadania wyniki przekazywane sa do systemu CDMS, a wykorzystywane konta fizyczne sa czyszczone przez system VUS. W trakcie działania zadania i po jego zakończeniu istnieje możliwość wyświetlenia wyników. Po zakończeniu działania zadania użytkownik zostaje powiadomiony o tym fakcie poprzez portal internetowy, e-mail badź SMS. W środowisku CLUSTERIX do uruchamiania meta-aplikacji wykorzystywane jest środowisko MPICH-G2 jako gridowa implementacja standardu MPI (w wersji 1.1) Opiera się ona na Globus Toolkit, który służy do autoryzacji, tworzenia procesów i ich kontroli. MPICH-G2 umożliwia połaczenie wielu systemów komputerowych (klastrów), potencjalnie o różnych architekturach w celu uruchomienia aplikacji MPI. W celu zwiększenia wydajności możliwe jest wykorzystanie lokalnych wersji MPI dostosowanych do konkretnych architektur sieciowych (np. MPICH-GM). CLUSTERIX - architektura Wykład 5 p. 13/?? GRMS I Wykład 5 p. 14/? System CLUSTERIX można traktować jako architekturę hierarchiczna opóźnienie przepustowość dostępna liczba procesorów pojedynczy węzeł (MPICH-G2) 5.4 Gb s 2 klaster lokalny (vendor MPI) 104 µs 752 Mb s 6 32 klaster lokalny (MPICH-G2) 124 µs 745 Mb s 6 32 kilka klastrów (MPICH-G2) 10 ms 33 Mb s do 250 GRMS (Grid Resource Management System) jest systemem zarzadzania danych wykorzystywanym w projekcie CLUSTERIX. Został on stworzony w ramach projektu GridLab. Głównym celem systemu GRMS jest zarzadzanie całym procesem zdalnego uruchamiania zadań obliczeniowych do różnych systemów kolejkowych obsługujacych lokalne klastry. GRMS został zaprojektowany jako zbiór niezależnych komponentów zajmujacych się różnymi aspektami procesu zarzadzania zasobami, wykorzystujacych różne serwisy niskiego poziomu. Wykład 5 p. 15/?? Wykład 5 p. 16/?
GRMS II Funkcjonalność systemu GRMS W chwili obecnej GRMS bazuje na serwisach dostępnych w pakiecie Globus (GRAM, GridFTP i MDS). GRMS udostępnia interfejs w formie web-serwisu (GSI-enabled), przez który moga odwoływać się wszyscy klienci (portale, klienci linii komend lub aplikacje). Wszystkie wymagania użytkowników sa specyfikowane przy pomocy specjalnych dokumentów XML, nazwanych opisami zadań GJD (GRMS Job Description), po czym sa wysyłane do GRMS a jako komunikaty SOAP poprzez połaczenia GSI. Z punktu widzenia końcowego użytkownika funkcjonalność systemu GRMS można podzielić na: zlecanie zadań użytkownika i ich kontrolowanie, listowanie zadań użytkownika z uwzględnieniem zadanych kryteriów, zarzadzanie zadaniami, pobieranie informacji o zadaniach, znajdowanie zasobów spełniajacych wymagania użytkownika, zarzadzanie powiadamianiem (notyfikacje), inne funkcje pomocnicze. Zlecanie zadań i ich kontrolowanie Wykład 5 p. 17/?? GRMS Job Description - Przykład Wykład 5 p. 18/? System GRMS udostępnia następujace funkcje do celów zlecania zadań i ich kontroli: submitjob migratejob suspendjob resumejob canceljob <grmsjob appid="psolidify"> <simplejob> <resource> <localrmname>pbs</localrmname> <hostname>access.pcss.clusterix.pl</hostname> </resource> <executable type="mpi" count="6"> <file name="exec" type="in"> <url>file:////home/users/olas/opt/bin/psolidify</url> </file> <arguments> <value>/home/users/olas/calc/solid/large/40000/40000</value> </arguments> </executable> </simplejob> </grmsjob > Wykład 5 p. 19/?? Wykład 5 p. 20/?
System Wirtualnych Użytkowników (VUS) VUS dla Gridu Dotychczas użytkownik musiał posiadać oddzielne konto fizyczne na każdej maszynie Zbiór ogólnodostępnych kont, które moga być przyporzadkowane kolejnym zadaniom Możliwość zgłaszania zadań do innych maszyn i klastrów lokalnych Automatyczny transfer plików Uproszczona administracja kontami użytkowników Pełna informacja rozliczeniowa o wykorzystaniu kont Interfejs dostępowy - portale gridowe Wykład 5 p. 21/?? Portal Wykład 5 p. 22/? Wymagania w stosunku do interfejsu dostępowego: Możliwość łatwego dostosowania do potrzeb użytkowników Wydajność Bezpieczeństwo Opracowano SSH Session Framework z następujacymi właściwościami: Oparcie interfejsu GUI na interfejsie command-line Wykorzystanie portletów GridSphere oraz parserów zdefiniowanych w języku XML architektura rozproszona łatwa adaptacja istniejacych aplikacji do wykonywania w Gridzie niezawodność wsparcie dla VRML, X3D, SVG, formatów graficznych (jpeg, png) Wykład 5 p. 23/?? Wykład 5 p. 24/?
Opóźnienia w sieci CLUSTERIX Aplikacje pilotowe lokalizacja opóźnienie [ms] Białystok 17.2 Częstochowa 9.0 Gdańsk 16.8 Kraków 18.0 Lublin 16.8 Łódź 11.6 Poznań Warszawa 13.6 Wrocław 4.6 Zielona Góra 2.0 System NuscaS Wykład 5 p. 25/?? 23 aplikacje użytkownika końcowego Wśród zaproponowanych aplikacji można wyróżnić następujace typy zadań: Zadania jednoprocesowe Sekwencja zadań jednoprocesowych Zadania równoległe uruchamiane na jednym klastrze lokalnym Sekwencja zadań równoległych uruchamianych na jednym klastrze lokalnym Meta-aplikacje rozproszone uruchamiane na więcej niż jednym klastrze lokalnym Przykładowe aplikacje: Symulacje wielkiej skali przepływów krwi w mikrokapilarach Przewidywanie struktur białek Symulacje przepływów w aeronautyce Nano-Technologie NuscaS Wykład 5 p. 26/? System NuscaS - zrównoleglenie obliczeń Od kilku lat tworzony jest na Politechnice Częstochowskiej system NuscaS do modelowania za pomoca metody elementów skończonych (MES) zjawisk termomechanicznych Wykład 5 p. 27/?? Wykład 5 p. 28/?
NuscaS - scenariusze wykonania Uruchamianie zadań systemu NuscaS w środowisku CLUSTERIX może odbywać się według poniższych scenariuszy: Środowisko Grid jako zbiór zasobów obliczeniowych - broker zadań znajduje zasób (klaster lokalny) spełniajacy wymagania użytkownika, który zostaje wykorzystany do uruchomienia zadania. Równoległe uruchomienie w środowisku Grid (meta-computing application) przy wykorzystaniu środowiska MPICH-G2: Standardowe równoległe zadanie obliczeniowe zostaje uruchomione na geograficznie odległych zasobach (klastrach) Aplikacja dostosowuje się do środowiska Grid, na którym zostaje uruchomiona w celu zwiększenia efektywności obliczeń. Testowe zagadnienie numeryczne Testowe zagadnienie numeryczne obejmowało krzepnięcie odlewu krzepnacego w metalowej formie (tzw. jawne sformułowanie pojemnościowe, oraz równowagowy model narastania fazy stałej) 150 ~75 odlew ~75 utworzono sześć siatek trójkatnych elementów skończonych (40613, 80401, 159613, 249925, 501001 oraz 750313 węzłów). Każda z siatek została podzielona na 2, 3, 4, 5, 6, 7, 8, 10, 12, 14 i 16 domen. 150 forma Wykład 5 p. 29/?? yniki wydajnościowe - pojedynczy klaster Wyniki wydajnościowe - MPICH-G2 Wykład 5 p. 30/? Przyspieszenie i efektywność testowanego zagadnienia numerycznego w środowisku CLUSTERIX dla różnej liczby procesorów i różnego rozmiaru zadania w przypadku uruchamiania na klastrze lokalnym znajdujacym się w Politechnice Częstochowskiej 10 9 8 7 N=80401 N=159613 N=249925 N=501001 N=750313 przyspieszenie 1.1 1.05 1 N=80401 N=159613 N=249925 N=501001 N=750313 efektywność Przyspieszenie i efektywność testowanego zagadnienia numerycznego w środowisku CLUSTERIX dla różnej liczby procesorów i różnego rozmiaru zadania w przypadku uruchamiania na dwóch klastrach lokalnych (Częstochowa i Poznań) 16 14 12 10 8 N=40613 N=80401 N=159613 N=249925 N=501001 N=750313 przyspieszenie 1.1 1 0.9 0.8 0.7 0.6 efektywność 6 5 4 3 2 0.95 0.9 0.85 6 4 2 0 0 2 4 6 8 10 12 14 16 18 0.5 0.4 0.3 0.2 0.1 N=40613 N=80401 N=159613 N=249925 N=501001 N=750313 0 2 4 6 8 10 12 14 16 18 1 1 2 3 4 5 6 7 8 9 10 0.8 1 2 3 4 5 6 7 8 9 10 liczba procesorów liczba procesorów liczba procesorów liczba procesorów Wykład 5 p. 31/?? Wykład 5 p. 32/?
ównoległe rozwiazywanie układu równań Zastosowano metodę sprzężonych gradientów. Algorytm zaproponowany przez Meisela i Meyera z jednym punktem synchronizacji. Zaimplementowano nakładanie się w czasie operacji obliczeniowych i komunikacyjnych. 3.92 s 3.925 s 3.935 s Process 0 Solve Solve Solve Solve Solve Process 1 Solve Solve Solve Solve MPI_Bcast Solve Process 2 Solve Solve Solve 13 Solve 7 Solve Process 3 Solve Solve Solve Solve 7 Solve Process 4 Solve Solve Solve 13Solve 7 Solve Process 5 Solve Solve Solve Solve 7 Solve Process 6 Solve Solve Solve 13 Solve 7 Solve Process 7 Solve Solve Solve Solve 7 Solve 3.93 s 250000.8.8.bpv: Global Timeline (3.914 s - 3.946 s = 32.489 ms) Clusterix - instalacja certyfikatu Centrum autoryzacji podpisuje i odsyła do certyfikat do użytkownika. Otrzymany certyfikat należy zapisać do pliku ~/.globus/usercert.pem. Następnie przesyłamy do administratora lokalnego serwisu VOIS, lub serwisu centralnego (jankowsk@man.poznan.pl) prośbę o dopisanie z tematem naszego certyfikatu. 3.94 s 3.945 s MPI Solve Wykład 5 p. 33/?? Po zalogowaniu się na węzeł dostępowy, na którym posiadamy konto, a przed przystapieniem do uruchamiania jakichkolwiek zadań należy uzyskać certyfikat proxy, który jest krótkookresowym certyfikatem podpisanym przez użytkownika. W tym celu wykonujemy polecenie: $ grid-proxy-init Clusterix - żadanie certyfikatu Do uruchamiania zadań w systemie Clusterix niezbędne jest posiadanie certyfikatu podpisanego przez Centrum Autoryzacji. Pierwszym krokiem jaki należy wykonać w celu uzyskania certyfikatu jest wygenerowanie żadania certyfikatu (certyfikat request). W tym celu logujemy się na węzeł dostępowy, na którym posiadamy konto i generujemy żadanie certyfikatu uruchamiajac polecenie: $ grid_cert_request -cn "<Imie i nazwisko>" Po wykonaniu tego polecenia w podkatalogu.globus katalogu domowego użytkownika powinny pojawić się następujace pliki: userkey.pem - klucz prywatny użytkownika, usercert_request.pem - żadanie certyfikatu wraz z kluczem publicznym użytkownika, usercert.pem - w momencie utworzenia plik jest pusty. Wykład 5 p. 34/? Clusterix - zlecenie zadania do wykonania 1. Tworzymy plik zadania o nazwie task.xml: task.xml <grmsjob appid="task"> <simplejob> <executable type="single" count="1"> <file name="exec-file" type="in"> <url>file:////bin/dnsdomainname</url> </file> </executable> </simplejob> </grmsjob> 2. Zgłaszamy zadanie do systemu zarz dzania danymi z wykorzystaniem klienta tekstowego GRMS'a ( grms-client): grms-client submit task.xml - Your DN: /C=PL/O=GRID/OU=Clusterix/OU=pcss.clusterix.pl/CN=Szkolenie Clusterix student01 - Service URL: httpg://access:8443/axis/services/grms - Job submitted successfully, jobid=1149861042367_test_4714 Identyfikator zadania 3. Informacje na temat zgłoszonego zadania mo emy uzyska poprzez uruchomienie klienta tekstowego z parametrem info, po którym podajemy identyfikator zadania grms-client info 1149861042367_test_4714 - Your DN: /C=PL/O=GRID/OU=Clusterix/OU=pcss.clusterix.pl/CN=Szkolenie Clusterix student01 - Service URL: httpg://access:8443/axis/services/grms - jobinfo[1149947329475_test_4242] is:... - jobstatus=finished - submissiontime=sat Jun 10 15:48:49 CEST 2006 - finishtime=sat Jun 10 15:49:00 CEST 2006 - requeststatus=job_done... Wykład 5 p. 35/?? Wykład 5 p. 36/?