7 czerwca 2008

Twój komputer stoi włączony całymi dniami? To świetnie się składa!

Pomyśl o swoim komputerze. Średnia prędkość procesora wynosi dzisiaj około kilku gigaherców, co oznacza kilka miliardów cykli obliczeniowych na sekundę (jeśli masz dwa rdzenie to pomnóż to jeszcze przez dwa). Jeśli wykorzystujesz komputer do pisania w Wordzie, surfowania w internecie czy słuchania mp3 to oznacza to, że większość z tych cykli obliczeniowych najzwyczajniej w świecie się marnuje. Nawet gdy wciśniesz kilka klawiszy na sekundę, to przetworzenie informacji o ich wciśnięciu zajmie procesorowi w najgorszym wypadku kilkanaście tysięcy cykli. Odtwarzanie mp3 zajmuje ułamkowe części całej mocy procesora (pomyśl, że malutkie odtwarzacze mp3 dokonują tego bez problemu).

Po co o tym piszę? Ponieważ tą marnującą się moc obliczeniową można pożytecznie wykorzystać. Istnieją liczne naukowe programy tak zwanego przetwarzania rozproszonego. Ich idea polega na tym, że tysiące komputerów na całym świecie wspólnie przetwarza olbrzymią porcję danych, których jeden komputer nie byłby w stanie przetworzyć. Komputer w takiej sieci otrzymuje od głównego serwera projektu niewielki fragment większej ilości danych i przetwarza je wykorzystując marnujące się cykle procesora, o których napisałem. Po zakończeniu obliczeń odsyła wyniki serwerowi i pobiera kolejną porcję danych.

Najbardziej znanym z takich programów jest niewątpliwie SETI@home. Ma on na celu poszukiwanie pozaziemskiej cywilizacji (Search for Extra-Terrestrial Intelligence) na podstawie analizy promieniowania docierającego z kosmosu. Osobiście nie uważam, aby szukanie ufoludków było warte poświęcenia mocy mojego komputera. Na szczęście wybór projektów jest duży. Niektóre z możliwości to określanie trójwymiarowej struktury białek (Rosetta@Home, Proteins@home, TANPAKU), przewidywanie zmian klimatu (Climateprediction.net) albo rozwiązywanie problemu komiwojażera (TSP). Lista wszystkich dostępnych projektów jest znacznie dłuższa, szczególnie jeśli uwzględnić te, które są dopiero w fazie testowania. Ja osobiście zdecydowałem się na projekt Einstein@home, czyli poszukiwanie pulsarów.

Co zrobić, żeby się dołączyć? Najpierw należy ściągnąć klienta BOINC - powinien być dostępny na stronie każdego projektu. Nazwa jest skrótem od Berkeley Open Infrastructure for Network Computing (Otwarta Infrastruktura Przetwarzania Rozproszonego Berkeley). Klient umożliwia podłączenie komputera do serwerów przetwarzana rozproszonego. Jest on dostępny pod zdecydowaną większość platform sprzętowych (Windows, Linux, Mac, Solaris). Mając zainstalowanego klienta, należy zarejestrować się na stronie internetowej wybranego projektu. Można to również zrobić z poziomu klienta BOINC, ale strona internetowa daje dostęp do większej liczby ustawień dotyczących konta. Będąc już zarejestrowanym, w kliencie BOINC wystarczy wybrać opcję przyłączenia się do projektu, wskazać projekt oraz podać login i hasło. Można brać udział w kilku projektach jednocześnie.

Jak to wygląda w praktyce? Posiadam procesor Athlon XP 3000 (prędkość 1.8GHz) oraz 2GB pamięci RAM. Całość chodzi pod Linuxem ze środowiskiem graficznym KDE (które nieco obciąża komputer). Pozwoliłem klientowi BOINC na wykorzystanie do 50% mocy procesora oraz do 30% pamięci gdy komputer jest używany (gdy jest nieużywany pozwoliłem na korzystanie z 50% pamięci). Komputer wykorzystuję w dużej mierze do programowania w Javie. Kto miał styczność, ten wie, że Java ma spore wymagania i nie szczędzi zarówno procesora jak i pamięci (m.in. dlatego mam jej 2GB, ponieważ 1GB nie wystarczał). Spodziewałem się więc sporego spadku komfortu pracy, jednak ku mojemu zaskoczeniu tak się nie stało. Wszystko dzięki temu, że klient BOINC zatrzymuje obliczenia, gdy tylko potrzebna jest pełna moc procesora.

Czy są jakieś zyski z udostępnienia swojego komputera do obliczeń? Tak - jest satysfakcja :) Są jeszcze statystyki, informujące ile obliczeń wykonały nasze komputery (można mieć kilka pracujących na jedno konto). Istnieje także możliwość łączenia się wielu użytkowników w zespoły.

Zachęcam do przyłączenia się do któregoś z projektów. W końcu nic to nie kosztuje, a naukowcom zawsze przyda się dodatkowa moc obliczeniowa. Więcej informacji można znaleźć na http://www.boincatpoland.org/ oraz http://boinc.berkeley.edu/ (strona częściowo po polsku).

Brak komentarzy:

Prześlij komentarz