Rozmawiasz z przyjaciółmi na Gadu-Gadu, piszesz e-mail, przeglądasz strony WWW – a jednocześnie twój domowy komputer uczestniczy w najwyższej klasy skomplikowanych obliczeniach pomagających rozwiązać zagadki mikroświata cząstek elementarnych, problemy trapiące ludzi chorych czy też podstawowe problemy czystej matematyki. Z artykułu dowiesz się jak w kilku krokach dołączyć do setek tysięcy komputerów robiących coś pożytecznego, gdy nie potrzeba wykorzystywać w pełni ich mocy.
Współczesne przetwarzanie rozproszone jest realizacja idei Davida Gedye –
absolwenta Berkeley University – która zaczęła się formować w 1995 roku. Pomysł
był bardzo prosty i aż dziw, że nikt wcześniej na niego nie wpadł. Na świecie
działają miliony komputerów. Większość ich mocy obliczeniowej jest tracona
bezpowrotnie, a przecież można by ja wykorzystać w rozsądnym celu. Wprowadzenie
idei w życie zajęło Davidowi niemal cztery lata. W końcu w połowie 1999 r.
pierwszy globalny projekt ujrzał światło dzienne. Chodzi oczywiście o kultowy
już dziś program SETI@Home. Do dziś w projekcie wzięło udział ponad 5 mln
użytkowników, a łączny czas przetwarzania osiągnął 2 miliony lat!
Olbrzymi sukces projektu SETI@Home spowodował wielkie zainteresowanie przetwarzaniem
rozproszonym w środowisko naukowym. Jak grzyby po deszczu zaczęły powstawać
kolejne projekty, wykorzystywane w przypadkach, gdy niezbędna była wielka moc
obliczeniowa. Fizycy, chemicy, astronomowie, a przede wszystkim biochemicy i
biologowie molekularni zaczęli wprowadzać w życie swoje projekty obliczeniowe,
korzystając z otwartej infrastruktury komputerów podłączonych do internetu.
BOINC
Każdy, kto zajmuje się obliczeniami rozproszonymi zetknął się z tym
właśnie akronimem – pochodzącym od nazwy Berkeley Open Infrastructure for
Network Computing – Otwarta Infrastruktura Przetwarzania Sieciowego Uniwersytetu
Berkeley. Projekt BOINC wyrósł niejako na bazie wspomnianego tu już SETI@Home,
przy czym z założenia obliczenia wykonywane w ramach tego projektu są teraz
bardziej związane z konkretnymi programami naukowymi.
Finansowaniem BOINC
zajmuje się amerykańska Narodowa Fundacja Nauki (National Science Foundation).
Komputery działające w ramach BOINC maja w tej chwili moc obliczeniowa szacowana
na 432 TFLOPS (czyli 432 000 000 000 000 operacji zmiennoprzecinkowych na
sekundę), a wiec o ponad 50% więcej niż Blue Gene – najszybszy istniejący
obecnie superkomputer.
Udział w innych projektach
Istnieje możliwość obsługi innych projektów za pomocą zainstalowanego klienta
BOINC – na tym polega jego uniwersalność. Procedura w tym przypadku jest bardzo
prosta. Jeśli znamy adres URL projektu, do którego chcemy się przyłączyć, w menu
Tools znajdujemy opcje Przyłącz się do projektu. Otwiera się okienko, w którym wpisujemy adres URL nowego projektu i już
za chwile nasz komputer zaczyna pobierać dane do nowych obliczeń. Dokładnie tak
samo postępujemy, gdy chcemy dołączyć kolejna aplikacje działająca na naszym
kliencie BOINC.
Możemy mieć wpływ na to, jak dzielony jest czas procesora
pomiędzy poszczególne aplikacje. W tym celu wykorzystujemy omawiana już
wcześniej stronę naszego konta w odpowiednim projekcie. Tam jedna z opcji sa
Preferencje, które możemy stosownie modyfikować (nr 2 na rys.).
Inne projekty realizujące przetwarzanie rozproszone
Jednym z szerzej znanych projektów realizowanych w systemie przetwarzania
rozproszonego jest Folding@Home (http://folding.stanford.edu). W ramach tego
projektu dokonuje się obliczeń symulujących zwijanie się łańcuchów białek.
Problem ten z naukowego punktu widzenia jest bardzo istotny, ponieważ błędy w
zwijaniu się białek skutkują wieloma poważnymi chorobami, takimi jak choroba
Alzheimera, BSE (choroba szalonych krów), choroba Huntingtona czy też
Parkinsona. Program symuluje tutaj sposób w jaki zwija się zadana cząsteczka
białka. W rzeczywistości takie zwijanie trwa zwykle nie dłużej niż jedna
milionowa część sekundy. Obliczenia symulujące takie zwijanie na pojedynczym
komputerze trwałyby około 30 lat. Widać wiec jaka jest skala problemu.
Projekt Folding@Home jest w gruncie rzeczy bardzo zbliżony do tych, które są
realizowane w ramach BOINC. Co ważne, program jego klienta może działać
równolegle z klientem BOINC. Jeśli się dobrze rozejrzymy po sieci, zobaczymy, że
istnieje wiele mniej znanych projektów wykorzystujących obliczenia rozproszone –
może warto się im przyjrzeć?
Uwagi końcowe
Wielu ludzi spotykając się po raz pierwszy z obliczeniami rozproszonymi ma
ochotę natychmiast przyłączyć się do wielu projektów, rozdysponowując swój
nieużywany czas procesora. Pamiętajmy jednak, żeby zachować zdrowy rozsadek. Nie
rzucajmy się na wszystkie możliwe projekty. Warto poświecić trochę czasu i
zastanowić się, które z projektów budzą nasze największe zainteresowanie. Po
analizie wybierzmy kilka (maksymalnie cztery). Będzie to decyzja z pożytkiem
zarówno dla nas samych, jak też dla projektów, w których zamierzamy
uczestniczyć.
Niektórzy zastanawiają się na ile uczestnictwo w takich
obliczeniach może wpłynąć na zużycie komputera lub wzrost zużycia energii
elektrycznej. Na pewno procesor wykonujący takie obliczenia zużywa więcej prądu.
Znam jednak wiele maszyn, które pracują w ramach projektu SETI@Home od wielu
miesięcy lub lat i nikt z użytkowników nie zauważył, aby procesor uległ jakiemuś
gwałtownemu zużyciu – zanim coś takiego nastąpi i tak nasza maszyna stanie się
przestarzała i zmienimy ja na nową.
Instalacja programu klienta BOINC
Jeśli chcemy uczestniczyć w jakimkolwiek projekcie realizowanym na platformie
BOINC, musimy się najpierw zaopatrzyć w program klienta – taki program jest
wspólny dla wszystkich projektów realizowanych w systemie (do obliczeń każdego
projektu są tylko różne aplikacje, które nasz klient pobierze automatycznie).
http://boinc.berkeley.edu
Strona główna projektu BOINC.
Tutaj rozpoczynamy nasza przygodę
z obliczeniami rozproszonymi
{tlo_1}
Krok 1. Wybór wersji do pobrania
Najlepiej oczywiście ściągnąć go z sekcji Download ze strony głównej BOINC –
http://boinc.berkeley. edu/download.php. Mamy tam wersje dla kilku systemów
operacyjnych – Windows, MacOS, Linux/x86, Solaris/SPARC. Program instalacyjny
(wersja 5.4.9, która opisuje, jest z 5 maja 2006 r.) ma objętość 9,27 MB.
{/tlo}
{tlo_0}
Krok 2. Wybieramy rodzaj instalacji
Do wyboru mamy trzy opcje – pojedynczego użytkownika, instalacje współdzielona
oraz serwisowa. Zaleca się uruchomienie instalacji pojedynczego użytkownika –
zaznaczona na rys. Następnie jesteśmy pytani o to, czy chcemy, aby BOINC stał
się naszym domyślnym wygaszaczem ekranu i był uruchamiany automatycznie przy
każdym starcie systemu. Dalsza instalacja przebiega automatycznie i jest szybka.
{/tlo}
{tlo_1}
Krok 3. Menedżer BOINC – wybieramy projekt
Uruchomienie programu rozpoczyna prace menedżera BOINC, który prowadzi nas za
rękę przy wyborze projektów. Warto już wcześniej zastanowić się nad wyborem
odpowiednich projektów, ponieważ za chwile zostaniemy poproszeni o podanie
adresu URL pierwszego z nich. Ja wybrałem Einstein@Home.
Po podaniu
prawidłowego adresu projektu menedżer prosi o nasz adres e-mail oraz hasło,
które pozwoli nam na dostęp do własnych danych w projekcie oraz ich modyfikacje.
W tym momencie program łączy się z serwerem obsługującym dany projekt i dokonuje
rejestracji. Jeśli wszystko przebiegnie prawidłowo, zostaniemy o tym
powiadomieni i za chwile system przekieruje nas na stronę danego projektu, gdzie
wprowadzamy swój identyfikator oraz podajemy (dla celów statystycznych) kraj,
który reprezentujemy.
{/tlo}
Na tym kończy się nasza praca startowa, reszty dokona już sam program klienta
BOINC. Po pierwsze zbada nasz komputer, ponieważ dane (typ procesora, wielkość
pamięci oraz wyniki uproszczonych benchmarków) są mu niezbędne do ustalenia
liczby jednostek pracy (work units) do pobrania z serwera projektu. Następnie
skontaktuje się z serwerem projektu, poda mu nasze dane oraz oczywiście pobierze
jedna lub więcej jednostek pracy. Po skończonej komunikacji z serwerem projektu
będzie już gotowy do bieżącej pracy.
Ustawiamy opcje pracy programu
{tlo_1}
Krok 4. Modyfikujemy konto projektu
Program klienta BOINC jest zoptymalizowany do współpracy z naszym komputerem,
ale oczywiście mamy możliwość ingerencji w jego ustawienia. Najprostszym
sposobem sprawdzenia oraz modyfikacji ostawień jest wejście na nasze konto z
poziomu BOINC Managera. Najpierw klikając myszą zaznaczamy, o który projekt
chodzi (nr 1 na rys.), a następnie z zestawu przycisków po lewej wybieramy Twoje
konto (nr 2 na rys.).
{/tlo}{tlo_0}
Krok 5. Konto w projekcie
Zostaniemy przeniesieni na odpowiednia stronę WWW projektu, bezpośrednio na
nasze konto w tymże projekcie. Możemy tam znaleźć istotne informacje o naszych
danych, oczywiście z poziomu strony można też zmienić hasło, adres e-mail itp.
Możemy też stworzyć własny profil (Create profile – nr 1 na rys.), gdzie
przedstawiamy się społeczności, z która wspólnie działamy w ramach danego
projektu.
{/tlo}
{tlo_1}
Krok 6. Tworzymy profil
W ramach profilu możemy napisać o tym skąd jesteśmy i co robimy, a także o tym
dlaczego zdecydowaliśmy się na obliczenia w danym projekcie. Można też dodać
własne zdjęcie (nr 2 na rys.), nie większe niż 50 kB, format JPG lub PNG. Jeśli
tekst napisaliśmy w języku innym niż angielski, zaznaczmy to także (nr 1 na
rys.). Nie zapomnijmy wysłać naszego profilu do serwera – klikając odpowiedni
przycisk (nr 3 na rys.).
{/tlo}
Interpretacja otrzymanych wyników
Nie zamierzam nikogo zmuszać do analizy konformacyjnej białek czy też
interpretacji zderzeń ciężkich cząstek elementarnych. Te prace pozostawmy
fachowcom od mikroświata. Mówiąc o interpretacji mam na myśli nasze wyniki,
czyli punkty otrzymywane za podarowany czas i zaangażowanie domowej maszyny w
projekty programu BOINC.
Sprawdzamy i analizujemy własne wyniki
Znajdziemy je na naszych kontach każdego z projektów. Aby tam trafic, wchodzimy
albo przez BOINC Managera, albo ze strony głównej odpowiedniego projektu,
klikając Your account w podgrupie Returning Participants.
Sprawdzamy historie naszych wyników
Po otwarciu \”naszego\” okna w projekcie
klikamy Results, aby sprawdzić wyniki. Okno to zawiera spora dawkę informacji o
przeliczonych przez nas jednostkach. Znajdziemy tu odpowiednie numery
identyfikacyjne wyników, jednostek pracy itd. Najważniejsze są dwie ostatnie
kolumny- Claimed credit (nr 1 na rys.) oznacza ilość umownych punktów, o które
nasz komputer się ubiega w zamian za wysłany wynik, natomiast Granted credit (nr
2 na rys.) oznacza liczbę punktów przyznanych.
Jeśli w kolumnie Time reported or
deadline mamy dane zapisane kolorem zielonym (nr 3 na rys.), oznacza to, że ta
konkretna jednostka jest jeszcze przetwarzana (a w każdym razie nie odesłana do
serwera), a wiec na wyniki oraz punkty musimy poczekać. Pamiętajmy jednak, że
nie chodzi tutaj ani o punkty, ani też o nasze miejsca w statystykach
– istotne jest to, że nasz komputer odwala kawał solidnej i naprawdę potrzebnej
roboty, i już sam nasz udział w tych pracach jest bardzo cenny.
Zmiana podziału czasu miedzy aplikacje
Standardowo dla każdego projektu \”współczynnik udziału\” (Resource share) wynosi
100. Jeśli zmienimy te wartość, uzyskamy inny sposób dzielenia czasu procesora
pomiędzy wybrane projekty. Jeśli, przykładowo, dla jednego z projektów
pozostawimy wartość 100, a drugiemu przypiszemy 300, to pierwszy z nich będzie
wykorzystywał 25% całkowitego czasu procesora (100/(100+300)).
Oczywiście musimy
pamiętać o tym, że w danym momencie nasz komputer pracuje tylko nad jednym
projektem. Standardowe przełączanie się miedzy aplikacjami następuje co godzinę.
Po zmianie współczynnika udziału nie zapomnijmy potwierdzić zmian klikając
Update preferences. Jesli nie będziemy tutaj nic zmieniać, wszystkie projekty
będą realizowane z tym samym współczynnikiem udziału
Warto odwiedzić
http://boinc.berkeley.edu Strona główna projektu BOINC, skąd pobieramy program klienta i dowiemy się o nowościach
http://www.boincatpoland.org Strona polskiego zespołu BOINC
http://www.distributedcomputing.info Sporo informacji o innych niż BOINC projektach obliczeń rozproszonych