Wypożyczalnia procesorów

Termin “przetwarzanie rozproszone” (distributed computing) jest znany specjalistom IT mniej więcej od połowy lat 70. Nie jest to więc nic nowego, dlaczego zatem temat ten niezmiennie wzbudza co kilka lat emocje? Być może dlatego, że mrzonki projektantów systemów informatycznych nabierają stopniowo rumieńców. Postęp technologiczny, zwłaszcza w dziedzinie sieci komputerowych, sprzyja bowiem rozwojowi technik współpracy zdalnych maszyn.

Najciekawszy jest fakt, że w obliczeniach prowadzonych na dużą skalę coraz częściej biorą udział zwyczajne pecety. Większość mocy obliczeniowej naszych maszyn przepada bezpowrotnie – dlaczego więc jej nie wykorzystać? Co więcej, wygląda na to, że kiedyś, w przyszłości, te same domowe komputery będą mogły korzystać z mocy obliczeniowej innych maszyn. Zacznijmy jednak od początku.

Na początku były klastry

Przetwarzanie rozproszone w praktyce zaczęło się na dobre od zaimplementowania klastrów, czyli sieci zwykłych, stosunkowo tanich komputerów, “udających” superkomputer. Pierwszy słynny klaster pecetów to Beowulf, który powstał w 1993 roku w laboratoriach NASA (używano go do symulacji zachowania 2 mln cząstek w polu grawitacyjnym). Dał on początek rodzinie klastrów wydajnościowych, w których priorytetem jest osiągnięcie jak najwyższej mocy obliczeniowej, czasem kosztem niezawodności. Inny popularny klaster typu Beowulf to izraelski Mosix (zaprojektowany na Uniwersytecie Jerozolimskim), używany m.in. przez tamtejszą armię. Na drugim biegunie praktycznych zastosowań klastrów znajdują się tzw. klastry niezawodnościowe (failover clusters, high avai-lability clusters), gdzie najważniejsza jest niezawodność sieci współpracujących komputerów. Takie sieci używane są w dziedzinach, gdzie jakikolwiek przestój serwera wiąże się z horrendalnie wysokimi kosztami.

Klastry stosuje się dziś w wielu dziedzinach – na uczelniach, w dużych studiach projektowych, filmowych (klastrów używano np. do produkcji “Shreka” i “Władcy pierścieni”). Szacuje się, że klastry są od trzech do dziesięciu razy tańsze od tradycyjnych superkomputerów. Ich innymi zaletami w stosunku do tych ostatnich są ogromna skalowalność (dołożenie kolejnego węzła jest banalnym zadaniem) i duża niezawodność działania (awaria węzła nie powoduje żadnych konsekwencji oprócz spadku mocy obliczeniowej). Znakomita większość używanych obecnie klastrów działa z wykorzystaniem systemu Linux.

Grid na świecie
Sieci obliczeniowe wystarczająco wydajne do skomplikowanych obliczeń są na razie głównie efektem współpracy uniwersytetów. Oto kilka kolejnych projektów, niewymienionych na ilustracji:
CBR: zorientowana na bioinformatykę sieć, będąca efektem współpracy instytutów badawczych, uniwersytetów i klinik w Kanadzie (#).
CrossGrid: powstała z inicjatywy krakowskiego uniwersytetu eksperymentalna sieć uczelni z jedenastu europejskich krajów (www.crossgrid.org).
FhRG: grid Uniwersytetu Fraunhofera pracuje dla firm potrzebujących dużej mocy obliczeniowej (www.fhrg.fhg.de).
ISCB: ponad 1600 członków projektu użycza swojej mocy obliczeniowej na rzecz badań w dziedzinie bioinformatyki i biologii molekularnej (www.iscb.org).
iGrid: 50 instytutów badawczych w Chicago połączyło swoje maszyny w sieć, która ma służyć badaniom nad wykorzystaniem sieci obliczeniowych w praktyce (www.isoc.org/ine99/proceedings/4a/4a_2.html).

Krok w Internet

Zasadnicza metoda konstruowania klastrów polega na połączeniu szybką siecią lokalną centralnie zarządzanych komputerów. W ten sposób osiągamy jednolite środowisko pracy, w którym sterowane przez jedną maszynę węzły (nodes) wykonują po prostu polecenia centralnego komputera, udostępniającego najczęściej jednocześnie funkcję interfejsu użytkownika. Na każdym węźle przyłączonym do klastra działa odpowiednie oprogramowanie, całkowicie panujące nad sposobem jego pracy.

W latach 90. Internet (przynajmniej w niektórych rejonach świata) “dorósł” wreszcie do wykorzystania na skalę większą niż tylko przesyłanie poczty elektronicznej i serwowanie hipertekstu. Natychmiast pojawiły się projekty przetwarzania rozproszonego, pozwalające na wykorzystanie zwykłych stacji sieciowych do wykonywania skomplikowanych obliczeń. Tutaj zasada pracy jest zupełnie inna niż w przypadku klastrów – centralny serwer (lub serwery) dynamicznie rozdzielają niewielkie fragmenty zadań pomiędzy stacje klienckie, którymi mogą być dowolnego typu hosty internetowe z odpowiednim, działającym w tle oprogramowaniem. Pierwsze słynne (i trwające do dziś) przedsięwzięcie tego typu to SETI@home (zainicjowane przez Berkeley University w USA), mające na celu odnalezienie w Kosmosie obcej cywilizacji. Dość szybko w Sieci zapanowała moda na szukanie zielonych ludzików – zwłaszcza że udział w zabawie wymaga jedynie zainstalowania niewielkiego programiku, który korzysta z mocy naszego komputera w momentach, gdy jej akurat nie potrzebujemy. Rok temu poszczególne elementy SETI@home działały na 127 (!) systemach operacyjnych w 226 krajach. Nic dziwnego, że szukanie “setków” znalazło następców w postaci projektów wynajdywania leków na raka, AIDS, badań genetycznych itp.

Więcej:bezcatnews