Mój atomowy serwerek z uszkodzonego netbooka chodzi non stop, pełni wiele funkcji, a mimo to średni load oscyluje w bardzo bliskich okolicach zera. Jego niewielka moc obliczeniowa się marnuje… a szkoda, bo prąd i tak pobiera. Jak wykorzystać ją w przydatny sposób? Można uruchomić na nim klienta BOINC i wspierać jednen z wielu projektów przetwarzania rozproszonego. Pewnie uśmiechniesz się myśląc, co wątły atom z 1GB pamięci RAM może zmienić… jeśli będzie chodził non stop przez rok, dwa a nawet dłużej, to mimo wszystko trochę obliczeń wykona – mój sererek w chwili obecnej mieli dane dla projektu rosetta@home.
Jak zainstalować klienta BOINC na systemie Centos 6
Instalujemy za pomocą skryptu dostępnego pod adresem
http://boinc.berkeley.edu/download_all.php
instalujemy przez systemowego menedżera pakietów, lub ściągamy najnowsze źródła z repozytorium (trzeba mieć zainstalowane subversion):
svn co http://boinc.berkeley.edu/svn/trunk/boinc
W nowo powstałym katalogu BOINC uruchamiamy kolejno skrypty:
./_autosetup ./configure --disable-server --disable-manager ./make ./make install
Ponieważ potrzebuję jedynie clienta BOINC przy konfiguracji zrezygnowałem z aplikacji serwera jak i okienkowego menedżera BOINC. W którymś z powyższych punktów pewnie zostaniesz poinformowany o konieczności doinstalowania kolejnych pakietów niezbędnych do działania programu. Ja musiałem do instalować: libtool, perl-FCGI, libcurl-devel.
Jak przyłączyć się do projektu BOINC (na przykładzie rosetta@home)
Jeśli korzystamy z środowiska okienkowego to sprawa jest bardzo uproszczona – uruchamiamy boincmgr, boinc_mgr lub run_manager (zależnie od metody instalacji i naszej dystrybucji) i wyklikujemy wszystko – żadna filozofia. W przypadku korzystania z konsoli musimy wykonać następującą komendę:
boinccmd --create_account http://boinc.bakerlab.org/rosetta/ email haslo nazwa uzytkownika
Jeśli mamy kilka maszyn, i chcielibyśmy podpiąć je pod nasze konto to całą czynność wyklikujemy w menedżerze lub po raz kolejny korzystamy z aplikacji boinccmd. W przypadku pracy bez menedżera okien odczytujemy klucz:
boinccmd --lookup_account http://boinc.bakerlab.org/rosetta/ email haslo
zapamiętujemy klucz, oraz wpisujemy komendę:
boinc --attach_project http://boinc.bakerlab.org/rosetta/ klucz
Instalacja przebiegła bez większych utrudnień, ale…
BOINC nie chce działać mimo bezbłędnej instalacji
Poświęcę trochę czasu na opisanie najważniejszych problemów jakie spotkałem uruchamiając BOINCa – mimo poprawnej instalacji nie chciał rozpocząć pracy (nawiązać połączenia ze światem). Okazało się, że gdzieś po drodze (pewnie w serwerowniach TPSA) musiał być tak zwany black hole router. Jeśli mimo poprawnej instalacji nie możesz dołączyć do projektu, czy pobierać danych polecam dodać tag
< http_1_0 > 1 < /http_1_0 >
do pliku cc_config.xml, lub jeśli go nie ma w Twoim systemie (skorzystaj z polecenia locate cc_config.xml) stworzyć nowy w katalogu z xml’ami powstałymi przy pierwszym uruchmomieniu BOINCa (pewnie będzie to katalog powstały po pobraniu źródeł z subversion):
< cc_config > < options > < http_1_0 > 1 < /http_1_0 > < /options > < /cc_config >
Teraz wystarczy przeładować BOINC:
/etc/init.d/boinc-client force-reload
i upewnić się, że nowe ustawienia zostały ponownie wczytane i zaktualizować projekt:
boinccmd --read_cc_config boinccmd --project http://boinc.bakerlab.org/rosetta/ update
po chwili w tle powinien działać proces minirosetta_3.1 (tak było u mnie). Ponieważ boinc działa na serwerze wielu innych usług nie chcę aby cała reszta muliła – nawet nie muszę się przejmować, gdyż z automatu proces mielący dane ma ustawiony najniższy priorytet.
Ze względu na fakt, iż na moim serwerku z uszkodzonego netbooka wszystko ładnie działa, postanowiłem zainstalować klienta BOINC także na domowych desktopach (a na nich fedora i ubuntu). Instalacja przebiegła sprawnie, ale podczas próby uruchamiania graficznego menedżera wystąpił…
Błąd autoryzacji BOINC
…tak jak to zwykle bywa, problem ma bardzo proste rozwiazanie – w folderze BOINC tworzymy plik known_hosts.cfg z jednym wierszem zawierającym adres IP maszyny na której próbujemy uruchomić menedżera. Proste, nieprawdaż?
Zachęcam do udziału w projektach przetwarzania rozproszonego takich jak World Community Grid czy Rosetta – przyłączając się do projektu pomożesz w obliczeniach związanych z badaniami nad przewidywaniem struktury białek, co pomaga w opracowywaniu metod zwalczania wielu popularnych chorób (nowotwory złośliwe, malaria, hiv, alzheimer, wąglik oraz inne wirusy).