Wykład 5 p. 1/?? 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
Wykład 5 p. 2/?? Klastry komputerów PC 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)
Wykład 5 p. 3/?? Metaklastry 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.
Wykład 5 p. 4/?? Założenia projektu CLUSTERIX 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. 5/?? CLUSTERIX - Instalacja pilotażowa Szkielet systemu stanowi 12 klastrów lokalnych. Klastry lokalne budowane w oparciu o 64-bitowe procesory Intel Itanium2 1,4 GHz wyposażone w pamięci podręczne o wielkości 3 MB oraz 2 lub 4 GB pamięci operacyjnej na węzeł Komunikacja wewnatrz klastrów lokalnych oparta o sieć Gigabit Ethernet i InfiniBand Komunikacja pomiędzy klastrami lokalnymi odbywa się za pomoca dedykowanych kanałów 1 Gb/s udostępnianych przez sieć PIONIER
Architektura sieci systemu CLUSTERIX Bezpieczny dostep do sieci zapewniaja routery ze zintegrowana funkcjonalnos cia firewalla Uz ycie dwóch VLAN-ów z dedykowana przepustowos cia 1Gbps umoz liwia separacje zasobów obliczeniowych od szkieletu sieci Wykład 5 p. 6/??
Wykład 5 p. 7/?? Oprogramowanie zarzadzaj ace Tworzone oprogramowanie bazuje na Globus Toolkit 2.4. Dzięki temu istnieje możliwość wykorzystania oprogramowania tworzonego w ramach innych projektów, współdziałanie z innymi systemami gridowymi staje się łatwiejsze (może być 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 integrację zarówno z istniejacymi, jak i z nowymi produktami Dostęp do kodu źródłowego projektu ułatwia dokonywania zmian i ich publikację Większa niezawodność i bezpieczeństwo
CLUSTERIX - Wykonanie zadania Wykład 5 p. 8/??
Wykład 5 p. 9/?? Scenariusz wykonania zadania - portal 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.
Wykład 5 p. 10/?? Scenariusz wykonania zadania - GRMS 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 >
Wykład 5 p. 11/?? Scenariusz wykonania zadania - VUS 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.
Wykład 5 p. 12/?? Scenariusz wykonania zadania - CDMS 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. 13/?? Scenariusz wykonania - uruchomienie 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.
Wykład 5 p. 14/?? cenariusz wykonania zadania - MPICH-G2 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).
Wykład 5 p. 15/?? CLUSTERIX - architektura 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
Wykład 5 p. 16/?? GRMS I 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. 17/?? GRMS II 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.
Wykład 5 p. 18/?? Funkcjonalność systemu GRMS 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.
Wykład 5 p. 19/?? Zlecanie zadań i ich kontrolowanie System GRMS udostępnia następujace funkcje do celów zlecania zadań i ich kontroli: submitjob migratejob suspendjob resumejob canceljob
Wykład 5 p. 20/?? GRMS Job Description - Przykład <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. 21/?? System Wirtualnych Użytkowników (VUS) Dotychczas użytkownik musiał posiadać oddzielne konto fizyczne na każdej maszynie
Wykład 5 p. 22/?? VUS dla Gridu 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
Wykład 5 p. 23/?? Interfejs dostępowy - portale gridowe 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)
Portal Wykład 5 p. 24/??
Wykład 5 p. 25/?? Opóźnienia w sieci CLUSTERIX 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
Aplikacje pilotowe 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/??
Wykład 5 p. 27/?? System NuscaS Od kilku lat tworzony jest na Politechnice Częstochowskiej system NuscaS do modelowania za pomoca metody elementów skończonych (MES) zjawisk termomechanicznych
System NuscaS - zrównoleglenie obliczeń Wykład 5 p. 28/??
Wykład 5 p. 29/?? 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ń.
Wykład 5 p. 30/?? 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) forma ~75 150 odlew ~75 150 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.
Wykład 5 p. 31/?? yniki wydajnościowe - pojedynczy klaster 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 przyspieszenie efektywność 10 9 8 N=80401 N=159613 N=249925 N=501001 N=750313 1.1 1.05 N=80401 N=159613 N=249925 N=501001 N=750313 7 1 6 5 0.95 4 0.9 3 2 0.85 1 1 2 3 4 5 6 7 8 9 10 liczba procesorów 0.8 1 2 3 4 5 6 7 8 9 10 liczba procesorów
Wykład 5 p. 32/?? Wyniki wydajnościowe - MPICH-G2 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ń) przyspieszenie efektywność 16 14 12 10 8 N=40613 N=80401 N=159613 N=249925 N=501001 N=750313 1.1 1 0.9 0.8 0.7 0.6 6 4 2 0 0 2 4 6 8 10 12 14 16 18 liczba procesorów 0.5 0.4 N=40613 0.3 N=80401 N=159613 0.2 N=249925 N=501001 0.1 N=750313 0 2 4 6 8 10 12 14 16 18 liczba procesorów
Wykład 5 p. 33/?? Ró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.93 s 3.935 s 3.94 s Process 0 Solve Solve Solve Solve Solve 3.945 s MPI 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 250000.8.8.bpv: Global Timeline (3.914 s - 3.946 s = 32.489 ms)
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/??
Wykład 5 p. 35/?? 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. 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
Wykład 5 p. 36/?? 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 submit task.xml grms-client): - 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 3. Informacje na temat zgłoszonego zadania mo emy uzyska poprzez uruchomienie klienta tekstowego z parametrem którym podajemy identyfikator zadania grms-client info 1149861042367_test_4714 Identyfikator zadania info, po - 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...