Grid Computing

Grid – Przetwarzanie sieciowe Termin „Grid” powstał w latach dziewięćdziesiątych, gdzie początkowo określany był jako rozproszony system obliczeniowy do świadczenia usług informatycznych na zamówienie. Wraz z eksplozją Internetu i rosnącej potęgi komputerów stacjonarnych w tamtych czasach, rozpoczęto starania stworzenia zaawansowanych systemów obliczeń rozproszonych poprzez łączenie ze sobą komputerów w sieci. Dziś stało się to rzeczywistością, a definicja przetwarzania sieciowego ewoluowała i obecnie na całym świecie, stwierdza, że Grid to system, który:

Grid – Przetwarzanie sieciowe

Termin „Grid” powstał w latach dziewięćdziesiątych, gdzie początkowo określany był jako rozproszony system obliczeniowy do świadczenia usług informatycznych na zamówienie. Wraz z eksplozją Internetu i rosnącej potęgi komputerów stacjonarnych w tamtych czasach, rozpoczęto starania stworzenia zaawansowanych systemów obliczeń rozproszonych poprzez łączenie ze sobą komputerów w sieci. Dziś stało się to rzeczywistością, a definicja przetwarzania sieciowego ewoluowała i obecnie na całym świecie, stwierdza, że Grid to system, który:

koordynuje zasoby, nie podlegające centralnej kontroli,  
przy użyciu standardowych, otwartych, uniwersalnych interfejsów i protokołów, 
dostarcza wyspecjalizowane usługi o określonej jakości (QoS).

Komputery typu desktop to dziś jeden z najmniej wykorzystywanych zasobów w firmach i domach prywatnych. Nadmiar mocy obliczeniowej w komputerach klasy PC nigdy nie jest w pełni używany. Wielokrotnie przeprowadzane badania uświadamiają nam ,że niewykorzystana moc obliczeniowa komputerów domowych a także komputerów serwerowych w wielu firmach może być porównywalna a nawet przewyższać moce obliczeniowe superkomputerów. Szacuje się ,że stacje robocze są obciążane zaledwie w 5%-8%. Istnieją dwa powody takiej sytuacji. Wydajność komputerów jest coraz większa a zadania im zlecane do wykonania nie są odpowiednio zwiększane a także komputery często pracują nie wykonując żadnych znaczących obliczeń. Grid wykorzystuje własność efektywnego zarządzania w celu zwiększenia wydajności obecnych sieci i systemów. System potrafi wykorzystać „wolne” zasoby komputerów co okazuje się być wyjątkowo ekonomicznym sposobem na zwiększenie mocy obliczeniowej dla większości organizacji i firm. Grid w istocie rzeczy polega na połączeniu dużej ilości zróżnicowanych zasobów komputerowych (węzłów) w celu stworzenia iluzji posiadania jednego komputera wirtualnego o bardzo dużej mocy obliczeniowej (superkomputera). Na wykresie widać jak ilość klientów podłączonych do systemu Grid wypada na tle listy 500 superkomputerów: (przykładowo 3000 klientów to superkomputer o mocy obliczeniowej około 2 TFLOPS i miejscu 35 w rankingu).

Najbardziej znanym projektem który wykorzystuje przetwarzanie sieciowe Grid jest SETI@home zarządzany przez Uniwersytet Kalifornijski z Berkeley. Celem programu SETI (Search for Extraterrestrial Intelligence) jest szukanie oznak istnienia pozaziemskich form inteligencji. SETI używa największego na świecie radioteleskopu znajdującego się w Portoryko niedaleko miejscowości Arecibo (czasza radioteleskopu ma 305 metrów średnicy). Projekt polega na nasłuchiwaniu sygnałów z kosmosu w celu odnalezienia pozaziemskiej cywilizacji. Mimo ,iż nasłuchiwana jest tylko część wąskiego pasma sygnałów radiowych to jednak zadanie jest bardzo trudne ponieważ część sygnałów docierających do radioteleskopów przeszukujących sygnały radiowe pochodzi z Ziemi. Mnogość urządzeń elektrycznych, elektronicznych ogólnie urządzeń wykorzystujących do pracy prąd generuje zakłócenia. Szumy dodają się do nasłuchiwanych sygnałów z kosmosu co bardzo utrudnia analizę pod kątem prawidłowości. Otrzymanie sygnału (po oczyszczeniu z szumów generowanych przez ziemskie urządzenia) z kosmosu byłoby dowodem na to ,że istnieje życie pozaziemskie (istnienie technologii pozaziemskiej).

Analiza docierających sygnałów podzielona jest na trzy części:

  sygnał zostaje poddany obróbce w celu otrzymania częstotliwości składowych,
    według algorytmów pozwalających rozpoznać określony wzorzec sygnału, częstotliwości składowe są sprawdzane i dzielone na te o dużym prawdopodobieństwie dopasowanie i na te które mają małe prawdopodobieństwo bycia sygnałami z kosmosu,
    kolejnym krokiem jest eliminacja sygnałów pochodzących z Ziemi także na podstawie złożonych algorytmów.

Dane otrzymane z radioteleskopów analizowane są w formie cyfrowej. Wysokie koszty obróbek sygnału pod kątem prawidłowości a także brak odpowiedniej mocy obliczeniowej potrzebnej do badania kosmosu skłoniły twórców programu SETI do zastosowania systemu przetwarzania rozproszonego GRID. Sposobem na to by dołączyć do projektu jest po prostu wejście na stronę SETI@home i pobranie klienta który umożliwi analizę cyfrową przesłanych sygnałów. Tak więc każdy kto posiada komputer podłączony do sieci może przyczynić się do znalezienia pozaziemskich oznak życia i wzięcia udziału w technologii GRID . Projekt przez kilkanaście lat istnienia zrzeszył już ponad 6 milionów ludzi na całym świecie. Dotychczas nie znaleziono życia pozaziemskiego. Każdy uczestnik otrzymuje do analizy część wydzielonego sygnału następnie po obróbce jest automatycznie wysyłany wynik obliczeń. W praktyce proces analizy odbywa się w czasie, gdy komputer nie jest obciążony, program zostaje uruchomiony podczas włączenia się wygaszacza ekranu (czyli wtedy gdy komputer i moc obliczeniowa nie jest wykorzystywana). Dzięki tak wielkiej ilości komputerów (ponad 6 milionów) projekt SETI zaoszczędza miliardy dolarów ponieważ każdy uczestnik zgłasza się dobrowolnie. Również moce obliczeniowe tak wielkiej ilości komputerów są ogromne. Powstaje obecnie wiele innych projektów wykorzystujących system GRID do badań w wielu różnych dziedzinach nauki. Przykładowo projekty w celu szukania lekarstwa na raka czy nawet prognozowania występowania trzęsień ziemi i huraganów w różnych częściach świata. Wszystkie projekty pracują pod kontrolą wielu systemów komputerowych rozproszonych po całym świecie. Polegają na stworzeniu z dużej ilości komputerów o stosunkowo małych mocach obliczeniowych jednego superkomputera który jest w stanie sprostać nawet najbardziej wymagającym badaniom/obliczeniom.

Głównym problemem z jakim musi się zmierzyć system GRID jest sposób zarządzania przydziałem zadań do wykonania określonym komputerom. Powodem takiej sytuacji jest fakt ,że na zlecone obliczenia potrzeba czasu i nie ma pewności czy wyniki w ogóle nadejdą. W takim przypadku zadanie musi zostać zlecone innemu komputerowi z sieci. System GRID powinien efektywnie zarządzać rozdzieleniem i rozprowadzeniem zadań oraz zdobywaniem wykonanych obliczeń a zarazem sprawdzeniem ich zgodności i prawidłowości. System Grid powinien zapewnić pełną integrację rozproszonych zasobów komputerowych dowolnego typu: jednostek przetwarzających , jednostek pamięci, urządzeń komunikacyjnych i innych. Jednak, ta technologia nie osiągnęła jeszcze pełnej dojrzałości, rzeczywiste implementacje systemu Grid (często nazywan także siatką) są bardziej wyspecjalizowane i zasadniczo koncentrują się na integracji tylko niektórych rodzajów zasobów. W efekcie wyróżniamy kilka rodzajów głównych systemów Grid w zależności od ich zastosowań.

Pierwszym z nich jest „Computational grid „ system opierający się na obliczeniach którego głównym zasobem jest moc obliczeniowa udostępniona wśród jej węzłów (poprzez komputery klasy desktop oraz niekiedy serwery). Jest to najczęstszy rodzaj technologii Grid i jest używany do wydajnej platformy komputerowej w celu rozwiązywania i przetwarzania, wymagających obliczeniowo zadań.

Kolejnym rodzajem jest „Data Grid „ często określany jako „przechowujący dane” Podobnie jak w „Computational grid” jednym z jego zasobów jest moc obliczeniowa dzielona wśród swoich węzłów z tym ,że Data Grid ma możliwość przechowywania danych jako głównego zasobu który zostaje szeroko udostępniony. Taka sieć może być używana jako miejsce przechowywania ogromnej ilości danych zbudowanych z fragmentów o dużej liczbie urządzeń posiadających mniejsze przestrzenie dyskowe. W większości przypadków stacje robocze bądź serwery dysponują dużą przestrzenią dyskową która nie jest w pełni wykorzystywana. Data Grid łączy zasoby dyskowe i umożliwia otrzymanie zwiększonej pojemności jednego „superdysku”. Jednak nie tylko to jest zaletą tego systemu, ponieważ „siatka danych” pozwala również na zwiększenie niezawodności i wydajności poprzez mirroring (lustrzane odbicie dysków). Jeżeli dane potrzebne do obliczeń wymagają intensywnego dostępu do dysku to te dane które mają zostać odczytane mogą zostać przekopiowane na inną przestrzeń dyskową i jednocześnie być odczytywane a co ważniejsze na danych mogą być prowadzone obliczenia. Poprawia to wydajność systemu a także w pewnym stopniu zabezpiecza dane na wypadek nieprzewidzianej awarii.

Istnieje jeszcze trzeci rodzaj systemu Grid „Scavening Grid” często nazywany również jako „Network Grid” . Cechą tego systemu jest możliwość tworzenia sieci w której skład będzie wchodziło wiele komputerów. Użytkownicy mogą udostępniać niewykorzystywane moce obliczeniowe własnych komputerów w taki sposób ,że inni użytkownicy podłączeni do sieci mogą z nich w razie potrzeby skorzystać.

Ważnym elementem przetwarzania sieciowego jest bezpieczeństwo. Przyczyną tego jest przenoszenie aplikacji bądź danych na różnego rodzaju systemy, zachwiana zostaje w tym przypadku integralność danych. W celu rozwiązania problemów stosowane są techniki zabezpieczania danych takie jak szyfrowanie danych, techniki autoryzacji użytkowników oraz uwierzytelniania danych. 

Znaczącą funkcją środowiska Grid jest umiejętne przydzielanie zadań. Najprostsze systemy charakteryzują się tym ,że odpowiedzialność przydzielonego zadania spoczywa na użytkowniku który po prostu uruchamia zadanie a następnie przesyła wyniki obliczeń. Zaawansowane systemy Grid posiadają moduły zarządzania. Automatycznie odnajdują użytkownika który jest najbardziej odpowiedni do realizacji przydzielonego zadania. W praktyce wygląda to tak ,że komputer użytkownika wysyła informacje o gotowości (gdy uruchomi się wygaszacz ekranu), w tym momencie moduł zarządzania wybiera optymalne zadanie do wykonania i przesyła dane na komputer. Wyjątkami bywają sytuacje gdy ten system pracuje nie efektywnie. Jedną z takich sytuacji jest przerwanie „uśpienia systemu” gdy użytkownik przerwie wykonywanie powierzonego zadania poprzez wyłączenie wygaszacza ekranu (np. gdy wróci do komputera). Powoduje to zawieszenie bądź opóźnienie realizacji całej aplikacji. Środowisko Grid powinno również zapewnić wstępną rezerwacje zasobów przez aplikacje (wykonującą obliczenia) w celu gwarancji określonej jakości usługi (QoS- Quality of Service, jakość usługi). W takim przypadku przydział zadań do innych zasobów zarezerwowanych zostaje ograniczony i wykonywany tylko i wyłącznie dla zadań o niższej hierarchii.

Podsumowując, przetwarzanie sieciowe Grid to bez wątpienia technologia przyszłości. Wbrew pozorom obecnie nie ma nowych kulminacyjnych odkryć które istotnie wpływają na rozwój przetwarzania rozproszonego i technologii. Przetwarzanie sieciowe Grid może pretendować do tytułu przełomowych technologii. Aktualnie system Grid nie jest dobrze znany nawet wśród kręgów informatycznych. Koncepcja Gridu powstała kilkanaście lat temu jednak w tamtym czasie nie było możliwości aby ją powołać do życia. Powodem tego była niewystarczająca ilość komputerów i zbyt małe rozprzestrzenienie sieci internetowej aby mogła ona otoczyć cały świat. Jednak poprzez projekt taki jak SETI możemy doświadczyć tego co potrafi przetwarzanie sieciowe. Grid umożliwia efektywne wykorzystanie posiadanych zasobów komputerowych oraz pozwala na konstrukcję systemów o podwyższonej niezawodności. Wysokie zapotrzebowanie na moc obliczeniową najlepiej odzwierciedlają placówki naukowe, zwłaszcza te które prowadzą badania z dziedzin fizyki, geologii, biomedycyny czy elektrotechniki. W Polsce także istnieje tego typu bezpłatne i otwarte środowisko, mianowicie projekt PL-Grid, który wspiera naukowców przy ich badaniach, zapewniając możliwość korzystania z połączonej mocy obliczeniowej komputerów aktualnie ponad 230 TFLOPS (FLOPS-liczba operacji zmiennoprzecinkowych na sekundę), pamięci dyskowej 3.6PB (Petabajt 〖10〗^15, biliard bajtów), pamięci operacyjnej RAM 51,33 TB (Terabajt 〖10〗^12, bilion bajtów). Modele Grid są zwykle poświęcane konkretnym przedsięwzięciom połączonym wspólnym celem publicznym. Powstają Grid’y publiczne, prywatne, lokalne i globalne. Aktualnie najbardziej zaawansowane badania nad modelem Grid prowadzone są w ośrodku badawczym CERN. Firmy takie jak Intel, HP, IBM testują tam swoje najnowsze technologie. Przetwarzanie sieciowe wykorzystuje również firma McLaren przy bardzo skomplikowanych obliczeniach aerodynamiczności elementów samochodów. Modele te zawierają ponad 10 milionów punktów i ich analiza nawet na wyspecjalizowanym sprzęcie mogłaby zająć tydzień. 104 procesory McLaren’a rozbijają analizę na części i pracując bez przerwy potrafią przedstawić wyniki w czasie od kilku do kilkunastu godzin zależnie od rodzaju analizy. Jednak skrócenie czasu to efekt uboczny większą korzyścią jest możliwość wykonania większej ilości powtórzeń badań. Grid uważany jest przez wielu za technologie bez granic. System Grid porównywany jest do sieci elektrycznej która sprawia ,że prąd dostarczany jest do miliardów gniazdek do każdego domu, w przyszłości może będzie tak samo dostępny jak aktualnie sieć elektryczna spowodowałoby to olbrzymią moc obliczeniową dostępną dla każdego, w każdej chwili i niezależnie od miejsca.

Bibliografia: -Grid Computing : A Practical Guide to Technology and Applications Abbas, Ahmar Publisher: Charles River Media