Press "Enter" to skip to content

Wolontariat obliczeniowy

„Wolontariat obliczeniowy” – cóż za piękny mit wolontariatu i kolejny stereotyp do obalenia mi się przez przypadek trafił! Zapowiada się kolejna, trzecie po pierwszej i drugiej części mitów. Ale wracając do tytułu postu – to, o czym będę pisał tak naprawdę nie jest wolontariatem, ale jest daleko idącą cyfrową dobroczynnością. Niestety ktoś tak to zjawisko ochrzcił, i tak już zostało. A tego co funkcjonuje tak łatwo już się nie da przechrzcić. Zresztą nie mam nawet pojęcia jak to zjawisko nazwać. Jak masz jakieś pomysły, to wrzuć w komentarzu, może uda nam się wywołać tym jakąś rewolucję.

Masowe obliczanie

Zespoły naukowców polegających w swojej pracy na komputerach bardzo często budują modele, które wymagają dość zaawansowanych i skomplikowanych kalkulacji. Każdy z naszych domowych komputerów lub smartfonów jest w stanie wykonać określoną ilość takich obliczeń na sekundę, ale jeśli naukowcy decydowaliby się na prace tylko na swoich komputerach – powiedzmy biurowej jakości – to czas poświęcony na obliczenie wszystkiego, co sobie założyli byłby zbyt długi, żeby wyniki badań można było nazwać efektywnymi. Bo jeśli wkładamy dane do komputera, który zaczyna je przetwarzać i określa prawdopodobny czas ich zakończenia na „za 2 tygodnie” to cały zespół zamiast pracować dostaje wymuszone wakacje… Gorzej jeśli zamiast tygodni pojawiają się miesiące. Albo przyjęty model wymaga ciągłych obliczeń.

Instytutu badawcze budują coraz większe komputery, które dedykowane są właśnie tego typu obliczeniom. W Polsce, na AGH, mamy na przykład Prometeusza – chwilowo jeden z najszybszych komputerów na świecie. „Chwilowo”, bo to się szybko zmienia, a komputery są coraz szybsze. Wcale to nie oznacza, że problemy zespołów badawczych są rozwiązane. Komputer jest jeden, jego czas jest ograniczony, a niestety obliczeń do wykonania cała masa. Może się wiec okazać, że zespół naukowców nie dostaje możliwości skorzystania z mocy obliczeniowej – tak jak my nie zawsze odstajemy grant na realizację projektu. Z tą różnicą, że my dostajemy fundusze, a oni dostają czas pracy superkomputera.

Naukowcy staja wtedy przed dylematem – czy decydować się na długotrwałe badania na wolniejszych maszynach, czy wykupić czas przeznaczony na obliczenia na komercyjnych superkomputerach, czy… poprosić o pomoc społeczność.

Jak nie działa twój komputer

Zgodnie z prawem Moora prędkość układów scalonych dostępnych na świecie podwaja się co 18 miesięcy. W naszych komputerach, nawet tych kupionych jakiś czas temu mamy dzięki temu potężną rezerwę mocy. Bo jeśli jedynym zadaniem naszych maszyn jest wspieranie nas w wiszeniu na sieci i czytaniu blogów, to nawet jeśli równolegle do tego słuchamy muzyki, to nie wykorzystujemy więcej niż 5%, 10% albo 30% możliwości sprzętu. Ciężko mi gdybać ile dokładnie to jest – ale jeśli pracujesz na systemie z rodziny windows, to uruchom „menedżera zadań”, a pod linuxem uruchom „monitor systemu” (albo, jak jesteś hardcorem to ps -e -o pcpu,cpu,nice,state,cputime,args –sort pcpu | sed ‚/^ 0.0 /d’). Aplikacje te pokażą ci jak bardzo w tym momencie obciążony jest twój procesor. I co? Wątpię, czy pokażą więcej niż 50%. A to nie jest jedyny chip odpowiedzialny za obliczenia. Większość komputerów, w tym laptopów, wyposażona jest dziś w zaawansowane akceleratory grafiki, które w trakcie przeglądania tego bloga nudzą się jeszcze bardziej, niż główny procesor.

Tę moc można wykorzystać i zaprząc twój komputer do roboty. Bo gwarantuję ci, że trzeba bardzo się starać, żeby sięgnąć 100% obciążenia procesora podczas pracy – chyba, że twój system coś skopie i zrobi to w ramach własnego błędu. Właśnie na tej niewykorzystanej mocy oparł się cały pomysł na zaangażowanie w wolontariat twojego komputera.

Obliczanie rozproszone

Żeby zrozumieć skąd się wziął pomysł na wykorzystanie twojej mocy obliczeniowej musisz wiedzieć, że komputery są o wiele lepsze od nas – menedżerów projektów. I potrafią to, co chciałby potrafić każdy menedżer. Istnieje anegdota, że menedżer projektu to człowiek, który wierzy, że skoro 1 kobieta może dostarczyć 1 dziecko w ciągu 9 miesięcy, to 9 kobiet potrafi dostarczyć 1 dziecko w ciągu 1 miesiąca. Osobliwy tok myślenia, który znam z autopsji. Ale komputery takie działania potrafią realizować. Jeśli 1 komputer potrzebuje doby na dokonanie określonych obliczeń, to 24 komputery dokonają tych obliczeń w ciągu godziny. Wymaga to określonego przygotowania samych obliczeń i zapewnienia określonych zasad wymiany informacji między komputerami, ale jest jak najbardziej możliwe. Współpracujące ze sobą w ramach obliczania komputery tworzą wtedy grid (czyli po polsku „przetwarzanie sieciowe”, chociaż i tak przez to koślawe i przydługie tłumaczenie mówi się, że „komputery pracują w gridzie”).

Superkomputer społeczny

Pierwsze próby wykorzystania komputerów społeczności rozpoczęły się w 1996 roku od projektu Great Internet Mersenne Prime Search (GIMPS), w ramach którego poszukuje się Liczb Mersenne’a. Żmudne obliczenia realizowane były w tle, nie przeszkadzając w pracy osób udostępniających niewykorzystywane moce własnych maszyn (wolniejszych od obecnych komórek!). Projekt miał na swoim koncie kilka sukcesów związanych ze znajdywaniem kolejnych liczb, ale za wyjątkiem matematyków raczej nikogo nie pociągał. Sam nie wiem do tej pory po co nam znajomość kolejnych Liczb Merenne’a. Projekt przetarł jednak szlak dla kolejnych działań, o wiele bardziej widowiskowych, które zbudowały i rozwinęły społeczne obliczenia rozproszone.

Czy naprawdę jesteśmy sami w kosmosie?

Od lat 50 dwudziestego wieku, z różnymi perypetiami, działa zainicjowany w Stanach Zjednoczonych program SETI (Search for Extraterrestrial Intelligence), którego celem jest poszukiwanie w kosmicznym szumie radiowym sygnałów od pozaziemskich cywilizacji. Program wykorzystuje do tego celu jeden z największych radioteleskopów – Arecibo. Program borykał się jak każdy program naukowy z problemami finansowymi. Fundusze miały zapewnić przede wszystkim możliwość analizy potężnej ilości danych zbieranych każdej sekundy przez radioteleskop, ale ich pozyskiwanie było niestabilne, ze względu na zmienne nastroje w senacie USA.

Wtedy zdecydowano się na rewolucyjny krok i umożliwiono włączenie się w program przeliczania wszystkim zainteresowanym. Każdy chętny mógł pobrać na swój komputer odpowiedni wygaszacz ekranu, który w czasie przerw w pracy przeliczał kolejne paczki danych z radioteleskopu, pobierając i odsyłając je na serwery SETI@home. Pomysł był strzałem w dziesiątkę – może dlatego, że większość administratorów i informatyków to osoby żywo zainteresowane także science fiction, dla których możliwość poszukiwania pozaziemskich cywilizacji była nie tylko zabawa ale także nobilitacją. Sam miałem nad biurkiem certyfikat SETI. Dodatkowo uczestnicy łączyli się w grupy, budowali społeczności, wyzywali się na pojedynki na ilość przeliczonych danych w ciągu weekendu, formowali zespoły i walczyli o miejsca w statystykach.

setihome
Tak wyglądało pierwsze SETI@home. Źródło: http://www.setileague.org

Projekt do 2009 roku zgromadził ponad 5 milionów internautów (w tym około 84 000 z Polski) i był największym na świecie projektem internetowym wykorzystującym moc obliczeniową komputerów domowych. Sukces SETI@home spowodował, że tworzący go uniwersytet w Berkeley zdecydował się na rozszerzenie i rozbudowę platformy Oprogramowanie, które powstało dla systemu SETI@home zostało przebudowane tak, aby mógł z niego skorzystać dowolny odpowiednio przygotowany projekt naukowy. Użytkownik decyduje które projekty i w jakim zakresie mogą korzystać z jego mocy obliczeniowej. Nastała era oprogramowania Berkeley Open Infrastructure for Network Computing (BOINC), która trwa do tej pory, a pierwszym projektem korzystającym z tej platformy i jednym z nadal najbardziej obleganych są obliczenia dla SETI.

Czy na pewno jest to wolontariat

Poza nazwą niestety działanie to nie jest wolontariatem. Wolontariat polega na bezpośrednim zaangażowaniu osoby w pewne działania – w tym przypadku akurat bezpośrednio angażuje się tylko nasz komputer. Jeśli masz wątpliwości to spróbuj podejść do tego w ten sposób: Udostępniasz jakiemuś projektowi czas pracy swojego komputera. To tak, jakbyś udostępniał jakiejś organizacji samochód na kilka godzin, albo podnajmował jej nieodpłatnie kawałek swojego mieszkania. Czy takie działania czynią cię wolontariuszem? Nie. Niestety takie działanie nie jest wolontariatem.

Owszem, jest użyteczne, wchodzi w zakres szeroko pojętej dobroczynności. Ale do wolontariatu, oprócz generowania kolejnych problemów z nazewnictwem, nie wnosi niestety nic.

Jak włączyć się w obliczenia

Aby nasz komputer stał się częścią rozproszonego po świecie superkomputera potrzebujemy odpowiedniego oprogramowania, które instalujemy na komputerach, które mają być wykorzystywane. Wymagana jest także rejestracja i wybranie projektów, w które chcemy się włączyć. Później wystarczy zwyczajnie pracować na komputerze i od czasu do czasu sprawdzać statystyki naszego konta. Możemy włączyć w obliczanie wszystkie komputery w naszej organizacji, albo miejscu pracy – o ile mamy na to zgodę, bo samo uczestniczenie w obliczeniach ma także pewne mankamenty.

Wady

  • procesor naszego komputera pracuje na 100% swoich możliwości – to znaczy, że pobiera dużą moc i wydziela dużo ciepła,
  • wzrasta zużycie prądu przez pracujące komputery,
  • systemy chłodzenia zależne od pracy procesorów pracują tak jak one – na 100% – co niestety słychać,
  • brudne lub zakurzone radiatory i problemy z odprowadzaniem ciepła lub praca programu na laptopach nie przystosowanych do ciągłej pracy na wysokich obrotach może skończyć się awaryjnym wyłączeniem komputera z powodu przegrzania, albo krytycznym zawieszeniem systemu,
  • program wykorzystuje także pamięć twojego komputera – jeśli mało wykorzystujesz procesor, ale masz niezbyt wiele wolnej pamięci, to możesz poczuć spadek wydajności;

Zalety

  • poza instalacją odpowiedniego oprogramowania nie musimy nic robić,
  • oprogramowanie jest dostępne na wiele platform, w tym na tak niszowe jak Raspberry Pi, czy port na C64 😉
  • komputer liczy za nas, automatycznie komunikuje się z innymi komputerami i centrum zarządzającym,
  • jeśli zwykle nie wyłączamy komputera na noc, to może on wtedy zrobić w tym czasie coś pożytecznego;

Platformy obliczeń dla wolontariatu cyfrowego

  • Berkeley Open Infrastructure for Network Computing (BOINC) – największa obecnie platforma w ramach której działa kilkanaście projektów potrzebujących wsparcia mocą obliczeniową, w tym SETI@home. Platforma wykorzystuje bardzo wydajne oprogramowanie przygotowane do pracy na wielu systemach i potrafiące wykorzystywać do obliczeń akceleratory graficzne. Jeśli chcesz mieć pełna elastyczność w doborze projektów i stabilne oprogramowanie z dużym wsparciem społeczności, to jest to jedyny wybór.
  • Great Internet Mersenne Prime Search (GIMPS) –  poszukiwanie się Liczb Mersenne’a.
  • Distributed.net – platforma zawierająca kilka projektów matematycznych.
  • HTC Power to Give – aplikacja stworzona przez firmę HTC umożliwiająca wykorzystanie smartfonów pracujących na systemach Android do obliczeń rozproszonych. Uwaga, ze względu na duży pobór moce platforma pracuje tylko wtedy, kiedy telefon jest podpięty do zasilania.
  • Comcute – Polska platforma wspierająca obliczenia rozproszone – co ważne nie wymaga instalowania dodatkowego oprogramowania. Realizowanie obliczeń odbywa się anonimowo przez stronę www. Wchodzisz na stronę, klikasz i liczysz. Niestety robisz to anonimowo, nie wiesz co naprawdę liczysz i nie masz żadnych statystyk ani informacji zwrotnej o tym, co policzyłeś.
  • Charityengine – platforma, która sprzedaje czas obliczeniowy społecznego superkomputera, a zyski są dystrybuowane wśród organizacji pozarządowych zarządzających platformą. Trochę inny model, któremu bliżej do fundraisingu, ale nadal przekłada się na dobroczynność.

Zdjęcie: The Odhner 200 mechanical calculating machine @ 100 innovationer @ Tekniska Museet, Autor: Pelle Sten, licencja: CC BY 2.0

CC BY-NC-SA 4.0 Wolontariat obliczeniowy by Karol Krzyczkowski is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Be First to Comment

Dodaj komentarz

%d bloggers like this: