ZAWWW-2st1.2-w09.tresc-1.0-Slajd7

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Cele budowy środowisk Grid Computing

Cele budowy środowisk Grid Computing


W wielu przedsiębiorstwach występują ogromne ilości niewykorzystanych zasobów obliczeniowych. Większość stacji roboczych jest obciążana zaledwie w 5%. W niektórych przypadkach niedociążone są również serwery – dzieje się tak bądź za sprawą nadmiaru mocy w stosunku do rzeczywistego obciążenia, bądź ze względu na czasowe fluktuacje aktywności użytkowników. Budowa środowiska Grid Computing umożliwia wykorzystanie niedociążonych zasobów jako wsparcia dla tych zasobów komputerowych, które są chwilowo bądź permanentnie przeciążone. Reguły alokacji aplikacji lub zadań na węzłach środowiska Grid Computing są definiowane przez administratora systemu i mogą być przez niego dynamicznie zmieniane. Często dopuszcza się możliwość przenoszenia pomiędzy węzłami nawet tych zadań, które znajdują się w trakcie realizacji. Dzięki temu możliwe jest dynamiczne równoważenie obciążenia pomiędzy wszystkimi węzłami.

Uzyskanie ogromnej równoległej mocy przetwarzania jest jednym z najważniejszych atrybutów Grid Computing. Jest to odpowiedź na zapotrzebowanie formułowane nie tylko w ramach projektów naukowych, ale również przez technologie biomedyczne, modelowanie finansowe, technologie wydobycia ropy naftowej, animację komputerową, itd. Należy zwrócić uwagę na specyfikę aplikacji, które potrafią wykorzystać potencjał dużej liczby równoległych komputerów. Są to aplikacje wysoce aktywne obliczeniowo, ale podzielne na mniejsze fragmenty-podzadania, które mogą być niezależnie wykonywane na oddzielnych komputerach i nie muszą realizować intensywnej komunikacji z innymi podzadaniami. Potocznie o takich aplikacjach mówi się, że są "skalowalne", co w optymalnym przypadku oznacza, że np. dziesięciokrotne zwiększenie liczby procesorów spowoduje dziesięciokrotne skrócenie czasu pracy aplikacji. W praktyce tak dobra skalowalność nie występuje, głównie w związku z niemożliwością podziału algorytmów na dowolnie dużą liczbę podzadań lub w związku z koniecznością synchronizacji dostępu do współdzielonych zasobów. Oczywiście nie każdy rodzaj aplikacji może zostać efektywnie dostosowany do pracy w środowisku Grid Computing (grid-enabled applications). Przekształcenie istniejącej aplikacji w aplikację zdolną wykorzystywać własności środowiska Grid Computing musi zostać wykonane manualnie przez jej projektantów i programistów. Pomoc w realizacji tego procesu mogą stanowić ogólnodostępne biblioteki i środowiska programowania, np. Globus Toolkit.

Środowiska Grid Computing oferują także możliwości podnoszenia niezawodności aplikacji. Jeżeli awarii ulega węzeł realizujący jedno z podzadań aplikacji, wówczas podzadanie to może zostać ponownie uruchomione na innym, sprawnym węźle. Realizacja zadań może wręcz z założenia przebiegać z pewną redundancją tak, aby ewentualne awarie pojedynczych węzłów nie powodowały wzrostu czasu odpowiedzi krytycznych aplikacji czasu rzeczywistego. Jeżeli do awarii nie dojdzie, wtedy nadmiarowe wyniki zostaną „zniweczone”.

Agregacji mogą podlegać nie tylko zasoby obliczeniowe, ale również zasoby dyskowe. Często serwery lub stacje robocze dysponują bardzo dużymi, w znacznym stopniu niewykorzystanymi, zasobami pamięci masowej. Połączenie tych zasobów w jeden duży wirtualny zbiornik danych, nazywany Data Grid, umożliwia zwykle uzyskanie nie tylko zwiększonej pojemności, ale również pozwala na poprawę wydajności (striping) i niezawodności (mirroring i replikacja). Jeżeli zadanie obliczeniowe uruchamiane na jednym z węzłów środowiska Grid Computing wymaga intensywnego dostępu do danych, to dane te mogą zostać uprzednio skopiowane do pamięci masowej lokalnej w stosunku do komputera, któremu zostanie powierzone to zadanie (automatyczna replikacja). Zabieg taki spowoduje nie tylko poprawę wydajności aplikacji, ale także częściowo zabezpieczy dane na wypadek awarii (zniszczenia lub niedostępności) danych źródłowych.

Praktyczne środowiska Grid Computing są zwykle konstruowane z trzech głównych typów komponentów:

  • Stacje robocze (scavenging grids): zakłada się, że użytkownicy komputerów osobistych nie wykorzystują permanentnie ich pełnej mocy obliczeniowej, w związku z czym może ona zostać "zagospodarowana" na potrzeby rozproszonego przetwarzania danych; zadania obliczeniowe są najczęściej realizowane w formie wygaszaczy ekranu, aktywowanych przez system operacyjny w czasie nieaktywności użytkownika; aplikacje uruchamiane w środowisku zbudowanym z dużej liczby stacji roboczych cechują się bardzo wysokim stopniem równoległości.
  • Serwery (computational grids): dedykowane środowiska połączonych komputerów o dużej mocy obliczeniowej umożliwiają efektywną realizację bardzo złożonych zadań przetwarzania danych; zadania obliczeniowe pochodzące ze środowiska Grid Computing nie muszą rywalizować o dostęp do procesora z zadaniami "lokalnymi"; istnieją możliwości udostępniania specjalizowanych urządzeń na potrzeby wybranych zadań obliczeniowych.
  • Dane (data grids): współdzielenie danych jest koniecznym warunkiem realizacji przetwarzania Grid Computing; aplikacje korzystają z wirtualnej bazy danych lub wirtualnego systemu plików, których lokalizacje są przezroczyste dla aplikacji; stosowane są mechanizmy automatycznej replikacji lub transferu danych w celu podniesienia wydajności operacji wejścia-wyjścia


<< Poprzedni slajd | Spis treści | Następny slajd >>