Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

BOINC — wyjdź z (czarnej) dziury...

Co jakiś czas na stronach z dziedziny IT powtarza się temat obliczeń rozproszonych wykonywanych za pomocą platformy BOINC. Temat jednak zazwyczaj jest opisywany albo przez pryzmat konkretnego odkrycie (rzadko) lub przez entuzjastę tej platformy i pomijający wiele dość istotnych aspektów technicznych oraz aspektów historycznych, dlatego postanowiłem trochę przybliżyć całą ideę z punktu widzenia administratora takich projektów...

Na początek krótki rys historyczny.

Historia badań rozproszonych

W 1959 roku dwaj fizycy - Giuseppi Cocconi i Philip Morrison opublikowali artykuł o możliwości wykorzystania fal radiowych do skomunikowania się z odległymi cywilizacjami. Informacja ta rozbudziła zainteresowanie wielu astronomów na całym świecie i doprowadziła do projektu SETI.
Szybko stało się jasne, że moc nawet największych superkomputerów nie jest wystarczająca do analizy fal radiowych dostarczanych przez obserwatorium w Arecibo. Dlatego też programiści projektu wpadli na genialny w swojej prostocie pomysł, aby poprosić wolontariuszy z całego świata o pomoc w obliczeniach za pomocą maksymalnie prostej w obsłudze aplikacji - SETI@home (później nazwaną SET@home Classic).

17 maja 1999 roku na komputerów internautów, którzy wyrazili chęć wsparcia projektu trafiła aplikacja działająca w formie wygaszacza ekranu, która dokonywała obliczeń w czasie, gdy komputer wolontariusza nie był wykorzystywany do codziennej pracy (procesor komputera był wykorzystywany w nieznacznym stopniu), natomiast gdy użytkownik wykonywał dowolną pracę na komputerze aplikacja była przerywana, aby ponownie rozpocząć pracę w momencie zwolnienia zasobów. Projekt odniósł wielki sukces i spotkał się z bardzo dużym wsparciem wolontariuszy z całego świata.
W przeciągu istnienia klasycznej wersji aplikacji SETI, zakładane zainteresowanie (50’000 – 100’000 wolontariuszy) projektem zostało przekroczone wielokrotnie, sięgając 5,2 milionów zarejestrowanych wolontariuszy, natomiast dnia 26 września 2001 roku SETI@Home ogłosiło przeliczenie 1021 operacji matematycznych uzyskując wpis w Księdze Rekordów Guiness’a jako największe wykonane obliczenia w historii.
23 czerwca 2013 wraz z ponad 145’000 aktywnych komputerów w 233 krajach projekt (już na platformie BOINC) uzyskał moc obliczeniową ponad 668 teraFLOPS.

Sukces projektu SETI@home skłonił jego twórców do podjęcia pracy nad bardziej uniwersalną platformą obliczeń rozproszonych, co doprowadziło do stworzenia pod kierunkiem David’a P. Andersona platformy BOINC uruchomionej 10 kwietnia 2002r.
Obecnie, na dzień 18 sierpnia 2016 roku na platformie BOINC jest aktywnych 59 projektów z tak różnych dziedzin jak:

  • matematyka
  • fizyka
  • chemia
  • astronomia
  • kryptografia
  • biologia
  • grafika i animacja

Platforma BOINC.

Platforma BOINC działa w architekturze klient-serwer, co oznacza w praktyce, że centralną częścią każdego projektu jest jego serwer, z którą kontaktuje się oprogramowanie zainstalowane na komputerach wolontariuszy. Zazwyczaj jest to program BOINC Manager działający jako graficzna nakładka na program kliencki, co jest całkowicie przeźroczyste dla użytkownika (zwykle nie ma ona nawet świadomości działania klienta.).
BOINC Manager (BM) udostępnia różne opcje konfiguracyjne klienta służące do ustawienia wydajności (wybór projektów do liczenia, ile procent czasu procesora w ciągu doby ma być przeznaczone na liczenie projektów, czy i w ogóle liczyć projekty na GPU, godziny pracy, itd).
Po stronie serwera sytuacja jest trochę bardziej skomplikowana. Sam serwer korzysta z serwera WWW (zwykle jest to Apache), bazy danych (MySQL, MariaDB) oraz zbioru demonów służących do wykonywania różnych zadań:

  • scheduler - kontroluje opcje wysyłki zadań do klientów, przekazuje dane co i jak wysyłać do:
  • feedera - który zajmuje się obsługą wychodzących zadań do klientów
  • transitioner - zajmuje się obsługą stanów zadań (tzw. work units) i w razie potrzeby generuje nowe zadania do wysłania
  • assimilator - obsługuje zakończone zadania, zajmuje się ich zapisem do docelowych katalogów jak również umieszcza odpowiednie wpisy w bazie danych
  • validator - jeden z najczęściej zmienianych przez administratorów daemonów, to on decyduje, czy przeliczone zadanie jest poprawne, czy nie
  • file deleter - czyści już niepotrzebne pliki z serwera
  • db_purge - jak wyżej, ale odnośnie bazy danych

Ze względu na specyfikę serwera BOINC umożliwia on wykonanie potężnej ilości obliczeń wykorzystując do tego stosunkowo słaby serwer, jednak w przypadku dużej liczby wolontariuszy i krótkich (w sensie czasu wykonywania po stronie klientów) zadań zadania serwera można rozdzielić na wiele serwerów i największe projekty korzystają intensywnie z tej możliwości, jednak większość projektów swobodnie może pracować nawet na niezbyt mocnym serwerze pod warunkiem, że baza danych projektu będzie pracować na dyskach SSD. Jako dwa przykłady mogę podać projekt Enigma@Home, który przy bardzo dużej ilości aktywnych komputerów jest obsługiwany na jednym, dobrze zoptymalizowanym serwerze wyposażonym w dyski SSD. Kolejnym przykładem może być Universe@Home (którego jestem administratorem), którego baza danych korzysta nadal z dysków HDD i umożliwia obsługę około 200tyś zadań "w trakcie" przy średnim czasie wykonywania jednego zadania ok. 2h na w miarę nowoczesnym procesorze (Xeon E3-1230v2)

Bezpieczeństwo

Wielokrotnie spotkałem się na forach poświęconych IT tematami i uwagami związanymi z bezpieczeństwem projektów oraz samą ideą BOINC i muszę tutaj obalić kilka mitów:

1. "Nie wiem co się liczy na moim komputerze!"

Zacznijmy od tego, że wiele projektów działa na aplikacjach Open Source i można spokojnie sprawdzić źródła aplikacji liczących. Co więcej - te źródła są systematycznie przeglądane przez programistów choć ich głównym celem jest... optymalizacja obliczeń! Tak właśnie powstają "stuningowane" - czyli wykonujące się znacznie szybciej od "fabrycznych" wersje aplikacji - tak jest np. w przypadku takich projektów jak Enigma@Home czy Seti@Home. Wierzcie mi, szum jaki by się podniósł po umieszczeniu jakiegoś backdoora w kodzie aplikacji projektu błyskawicznie by go zabił. Poza tym nikt nie zmusza nikogo do liczenia projektu z zamkniętymi źródłami...
Niemniej, nie zapomnijmy że za większością projektów stoją renomowane ośrodki naukowe które swoim autorytetem gwarantują, że nic "szpiegowskiego" nie liczy się na naszych komputerach.

2. "Niby dlaczego mam marnować swój prąd? Przecież nikt mi za to nie zapłaci..."

Zgadza się, nikt nie zapłaci, ale... po co dajesz pieniądze na WOŚP? Dlaczego tylu ludzi pomaga innym za darmo? Ideą stojącą za BOINC jest wolontariat - mamy szansę wesprzeć naukowców w badaniach na które innymi metodami nie ma pieniędzy, bo są za mało medialne, bądź są tworzone przez ludzi/ośrodki których nie stać na superkomputery...
Najlepszym przykładem niech znowu będzie Universe@Home, projekt ten ma już za sobą publikację w czasopiśmie Nature (i nie tylko), powstał kosztem zakupu dwóch komputerów, za stosunkowo niewielkie pieniądze, a z wyliczeń jego ekipy naukowej wynika, że aby odtworzyć wyniki działania za pierwszy rok projektu trzeba by było wydać 2,2mln złotych na odpowiednio mocną maszynę... Tak, dwa miliony dwieście tysięcy złotych...

3. "Ktoś może wstrzyknąć złośliwy kod"

Tak, istnieje taka możliwość... Jest ona w zasadzie taka sama jak przy korzystaniu z automatycznych aktualizacji każdego softu (w BOINC aplikacje liczące muszą być podpisywane cyfrowo podczas dodawania ich do serwera i podpis ten jest stale weryfikowany).

4. "Nie chcę, aby ktoś zarabiał pieniądze na moim komputerze"
W zasadzie to nie istnieje projekt czysto komercyjny w tej chwili. Chociaż wiele kontrowersji wzbudza projekt służący do kopania kryptowalut, który podobno przekazuje większość "urobku" do wspomaganych innych projektów to jest to jednak wyjątkowy "rodzynek" w cieście przetwarzania rozproszonego (także z innych powodów, jednak to nie jest miejsce na opisywanie tych kontrowersji). W zdecydowanej większości projekty działają czysto naukowo i nie mają żadnego związku z komercjalizacją nauki. Bardzo dobrym przykładem jest tutaj World Community Grid, który chociaż prowadzony jest przez komercyjną firmę (i to nie małą), to jednak wyniki swoich badań udostępnia bezpłatnie wszystkim zainteresowanym.

Mam nadzięję, że nie przynudziłem za bardzo i chętnie odpowiem na bardziej szczegółowe pytania odnośnie serwera i platformy BOINC jeżeli takowe się pojawią. Mam także nadzieję, że tekst ten rozwieje przynajmniej część obaw związanych z liczeniem społecznościowym no i oczywiście zapraszam do liczenia Universe@Home oraz Enigma@Home jak również innych projektów, które trafią w Wasze zainteresowania :) 

linux serwery hobby

Komentarze

0 nowych
sr57be45   5 #1 03.10.2016 22:31

Był chyba nawet polski epizod, jakiś problem z wytrzymałości materiałów? Ale nie wspomniałeś o jednym numerki statystyki -> rywalizacja .

Opisz dokłanie historię Universe@Home bo to chyba polski projekt ;) ? Przybędzie nowych liczących.

Są może próbki pod GPU ?

Autor edytował komentarz w dniu: 03.10.2016 22:34
  #2 03.10.2016 22:39

Rozwiń pierwszy akapit Historii badań rozproszonych, taki trochę niepełny jest.

krzyszp   8 #3 04.10.2016 03:08

@sr57be45: Właśnie polskich epizodów jest znacznie więcej i jak napisałeś NagrzewanieStali@Home był chyba pierwszym, następnie było kilka innych, a do dzisiaj działają Radioactive@Home, Enigma@Home, Universe@Home i Goffyx@Home...
Jeżeli będzie zainteresowanie tematem to chętnie opiszę te projekty, które znam bliżej.

Azi   10 #4 04.10.2016 09:05

Jestem na Enigma@Home, założyłem konto ale w aplikacjach linki nieaktywne - może przez adblocka? Hmm...
EDIT: "Cuś" tam pisze, że zainstalowano, tylko nic nie pobierałem ;-)

Autor edytował komentarz w dniu: 04.10.2016 09:10
nalesnikk   3 #5 04.10.2016 10:56

Temat bardzo ciekawy. Serwery pracują na Linuksie czy są też Windowsy?
Kiedyś zastanawiałem się nad taką rzeczą: a gdyby tak np. wykupić sobie jakiś konkretny VPS lub chmurę i tam zapuścić na 100% obliczenia? Miałoby to sens? :) Na ten "konkretny" serwer można zrobić zrzutkę w społeczności. Innym tematem regulaminy firm które udostępniają swoje moce obliczeniowe, ale myślę że za zasoby które płacę mam prawo korzystać.

krzyszp   8 #6 04.10.2016 11:47

Tam nic ręcznie nie pobierasz. Musisz zainstalować BOINC Managera ze strony https://boinc.berkeley.edu/download.php i w nim dodać projekt. Wszystko się ściągnie samo :)

  #7 04.10.2016 11:49

@sr57be45: Universe@home będzie miał aplikacje na OpenCL czyli na karty AMD <- w tej chwili ekipa techniczna rozpoczyna testy w tym zakresie.

pocolog   11 #8 04.10.2016 13:20

@krzyszp: BOINC jest dostępny w repozytoriach chyba wszystkich dystrybucji Linuksa, bo skoro jest pod Gentoo to pod Debianowatymi tym bardziej ;)

krzyszp   8 #9 04.10.2016 13:25

@pocolog: Jak najbardziej jest, po prostu założyłem, że Azi jest użytkownikiem Windows...

sr57be45   5 #10 04.10.2016 14:45

@krzyszp: Kiedyś liczyłem ale zbyt mocno przeciążało system nawet gdy były to próbki gpu. Z Radioactive@Home, Enigma@Home chyba tylko Universe@Home ma chyba największy sens.

Jak ma być zainteresowanie gdy jedyną główną wskazówką że to "nasze" jest adres z pl w podglądzie adresu Universe@Home ;) Brakuje zdjęć - laboratorium - naukowcy / zespół - budynek instytutu UW - i inne ciekawostki - wywiady moze być też film - ... .

Goofyx :D ciekawe badania :D
https://pl.wikipedia.org/wiki/Twierdzenie_o_niesko%C5%84czonej_liczbie_ma%C5%82p

Autor edytował komentarz w dniu: 04.10.2016 14:48
krzyszp   8 #11 04.10.2016 16:01

@sr57be45:
IMHO wszystkie wymienione przez Ciebie projekty są z pewnych względów ciekawe, chociaż każdy na innym polu. Wskażę tylko, że Enigma@Home odszyfrowała dwie depesze nigdy wcześniej nie odszyfrowane, Radioactive@Home jest ogólnie unikalnym projektem dysponującym jedną z największych na świecie sieci czujników radioaktywności, natomiast soft z Universe@Home miał znaczny udział w badaniach nad falami grawitacyjnymi (zresztą, projekt ten obecnie współpracuje z naukowcami z Cambridge).

nalesnikk   3 #12 04.10.2016 23:29

Czy serwery opierane są głównie na Linuksach czy Windowsy też się zdarzają?
Zastanawiałem się nad pomysłem wykupienia jakiegoś VPSa/mocy obliczeniowych w chmurze i puszczenia na nich obliczeń BOINC. Miałoby to sens? Nie każdy chce obciążać dodatkowo swój komputer, ale już więcej osób jest chętnych na zrzutkę lub opłacenie sobie serwera który by im liczył gdzieś dane. :)

  #13 05.10.2016 09:55

A na telefonie można liczyć? Smartfony mają niezłe bebechy przy niskim zużyciu energii a przez noc podłączone do ładowarki mogły by kilka godzin pokalkulować.

krzyszp   8 #14 05.10.2016 16:20

@nalesnikk: Serwer zawsze jest na Linuksie (zwykle Debian, ale czasami też CentOS).
I tak, można również postawić na VPS.

krzyszp   8 #15 05.10.2016 16:21

@Anonim (niezalogowany): Część projektów ma aplikacje również na telefony z Androidem w tym Universe@Home (a także na różne maszyny oparte na ARM, a Enigma była odpalana nawet na... tunerze TV-Sat ;)).

  #16 05.10.2016 19:15

@nalesnikk
VPS z 4 wirtualnymi rdzeniami i 7,5GB RAM to koszt rzędu 300USD miesięcznie, więc to raczej kiepski interes

Zakup dedykowanego sprzętu + opłaty za prąd (przy założeniu obciążenia na poziomie 300W 24/7) wychodzi taniej.

krzyszp   8 #17 06.10.2016 02:19

@sdj (niezalogowany): Nieprawda, taki VPS da się wynająć za jakieś 10 dolarów miesięcznie (VPS, nie serwer dedykowany).
Natomiast Universe@Home przez dłuższy czas był na dedyku za ok. 20 euro miesięcznie...

  #18 06.10.2016 16:29

Jako że swego czasu obok systemowego zegara siedziała mi krówka, to chciałbym przypomnieć o distributed.net łamiącym zaszyfrowane wiadomości w konkursie RSA i badającym ciągi liczb. Z poważniejszych programów należy wspomnieć o World Community Grid IBMa.

  #19 06.10.2016 16:41

Podałem z cennika amazonu, u nas faktycznie może być taniej.
~100zł za 4vCPU ale bez gwarancji dostępności.

krzyszp   8 #20 08.10.2016 00:22

@Zunrin (niezalogowany): Krówka jest obecna także na BOINC (yoyo@home).
Natomiast WCG jest "od zawsze" na wszystkich moich hostach... To jest projekt dla mnie idealny, bo ekipa udostępnia wyniki badań dla wszystkich za darmo... beż patentów...

goofyx   1 #21 26.10.2016 13:37

@Anonim (niezalogowany): o jakiej komórce mówimy? Przykładowo ja mam S7 i jak uruchomię Univere@Home na 6-8 wątków to jedyne co wyrabia z prądem to ładowarka z opcją szybkiego ładowania <- inaczej nieciekawie to wygląda.

Autor edytował komentarz w dniu: 26.10.2016 23:26
goofyx   1 #22 26.10.2016 13:38

@krzyszp: ten tuner też był w zasadzie oparty na jakimś ARMie jak dobrze pamiętam. Ale wtedy to już chyba każdy kanał TV zarywał :)

krzyszp   8 #23 26.10.2016 23:26

@goofyx: Nie, był oparty na MIPS :)

Bulo82   5 #24 04.11.2016 18:13

kiedyś też liczyłem
ale nikt nie chce płacić nawet za prąd, który maszyna zużyje
jeśli komp zaczyna przetwarzać, to pobiera więcej prądu niż w 'idle'. Tu filozofii wielkiej nie ma.
mocna grafa i w skali roku trochę tego prądu pobierze :-(
więc to zajęcie tylko dla tych co nie muszą liczyć się z rachunkami za prąd ;p