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 - czyli, jak wykorzystać potencjał komputera

W pierwszym artykule mojego bloga, chciałbym przybliżyć temat obliczeń rozproszonych na przykładzie projektu BOINC - Berkeley Open Infrastructure for Network Computing (Otwarta Infrastruktura Przetwarzania Rozproszonego Berkeley).

Moim głównym celem jest przedstawienie programu BOINC, jako sposobu na zużytkowanie - na co dzień niewykorzystywanego (marnowanego) - potencjału obliczeniowego komputera.

Słowo wstępu

Na świecie powstają coraz to nowsze i lepsze superkomputery, potrafiące wykonywać coraz więcej operacji na sekundę. Olbrzymia moc obliczeniowa, do jakiej mamy dostęp, pozwala np. prognozować pogodę, symulować zjawiska lub procesy w różnych dziedzinach życia. Wadami superkomputerów są, po pierwsze - ich skończona moc obliczeniowa, po drugie - wysoka cena, a po trzecie - upływający czas. To, co jest wadą dla superkomputerów, nie stanowi problemu dla obliczeń rozproszonych.

r   e   k   l   a   m   a

Obliczenia rozproszone, czyli nieograniczone zasoby mocy

Obliczenia rozproszone polegają na niczym innych jak na współdzieleniu zasobów obliczeniowych pomiędzy komputerami znajdującymi się w różnych miejscach na świecie. Taka konstrukcja stwarza praktycznie nieograniczoną moc obliczeniową. Do czego możemy wykorzystać taki potencjał? Daje nam to możliwość wykonania jednocześnie bardzo wielu obliczeń w bardzo krótkim czasie. Oczywiście, możemy dokonać tylko takich obliczeń, które względem siebie są równoległe, tzn. nad którymi możemy pracować jednocześnie.

Jak działa BOINC?

Aplikacja BOINC jest tzw. klientem, czyli programem instalowanym przez użytkownika na swoim komputerze. Działa pod kontrolą systemów: Linux, Windows oraz MacOS X. BOINC można pobrać ze strony http://boinc.berkeley.edu/.

Żeby zacząć pracę z programem, po instalacji należy dodać - wybierając z przewijanej listy - projekt, w którym chcemy wziąć udział. Po dodaniu projektu, zostaniemy zapytani o to czy mamy już założone (darmowe) konto w wybranym przez nas projekcie, czy chcemy je dopiero założyć. Zasada działania programu polega na tym, że najpierw program (klient) łączy się z serwerem, na którym użytkownik założył wcześniej konto, po to aby pobrać próbkę danych do przeliczenia. Po przeliczeniu tych danych wyniki pracy komputera są odsyłane na serwer. Po tym, na konto użytkownika zostaje wysłana odpowiednia ilość punktów, które użytkownik zbiera za wykonane zadania.

Czas, w jakim dana próbka jest przeliczana jest różny i zależy od projektu. Może to być kilkanaście sekund lub kilkaset godzin. Dla projektu rosetta@home, na moim czteroletnim laptopie, przypada ok. 3-4 godziny obliczeń na próbkę. Należy również zaznaczyć, że przy stałym obciążeniu procesora, sięgającym 100%, wzrasta zużycie prądu. Z moich obserwacji wynika, że przy pracujących dwóch komputerach to jest kilka procent więcej na rachunku. Moje obserwacje, to porównanie dwóch, ostatnich rachunków, więc przyczyn kilkuprocentowego wzrostu zużycia prądu można również szukać gdzie indziej.

Aplikacja BOINC, przy pierwszym połączeniu z Internetem, wysyła na serwer informacje o konfiguracji komputera (procesor, pamięć, system operacyjny), jest to niezbędne do tego, aby serwer wysyłał odpowiednią ilość danych do przeliczenia, adekwatną do możliwości komputera.

Użytkownik może dokonywać obliczeń na różnych komputerach. Konfigurację tych komputerów i ich rezultaty punktowe można zobaczyć logując się na swoje konto danego projektu. Każdy użytkownik może przyłączyć się do zespołu i pracować oprócz tego, że na swoje, to także na wspólne, zespołowe punkty, rywalizując z zespołami krajowymi lub zagranicznymi. Najbardziej popularny w Polsce zespół to BOINC@Poland.

Jak wygląda BOINC?

Poniżej umieściłem zrzut, na którym widać podstawowe okno aplikacji, a na nim, że komputer aktualnie pracuje nad jednym zadaniem (minirosetta) - świadczy o tym zielona kropka na zakładce, przy nazwie projektu. Więcej informacji o projektach napiszę w dalszej części artykułu.

Po uruchomieniu komputera program nie ujawnia się wizualnie, pojawia się tylko ikonka na tacce systemowej. Po odpowiednim skonfigurowaniu, działanie programu jest praktycznie niezauważalne dla użytkownika. Dla przykładu, możemy ustawić program w ten sposób, żeby przeliczał dane wówczas, gdy procesor będzie miał wolne moce obliczeniowe. Dodatkowo, żeby obliczenia te nie uruchamiały się momentalnie i za każdym razem, gdy tylko procesor, choć na chwilę, jest wolny, możemy ustawić czas zwłoki. Dzięki temu mamy pewność, że obliczenia uruchomią się tylko wtedy, gdy faktycznie przez dłuższy moment nie korzystamy z komputera.

Konfiguracja programu a konfiguracja sprzętowa

Sami możemy decydować ile czego i kiedy udostępniamy. Parametry te można ustawić w oknie konfiguracji programu.

To ile zadań jest przeliczanych w tym samym czasie, uzależnione jest od posiadanego przez nas procesora. Jeśli posiadamy procesor dwurdzeniowy, to naraz możemy przeliczać dwa zadania. Gdybym posiadał taki procesor, wówczas (na pierwszym zrzucie ekranu) na zakładce setiathome enhanced pojawiłaby się zielona kropka. Kropki na zakładkach projektów oznaczają, które z nich są aktualnie przetwarzane.

Wiele nowych komputerów posiada, oprócz wydajnych procesorów (CPU), bardzo szybkie procesory kart graficznych (GPU). Aplikacja BOINC, w wielu przypadkach, może użyć i tych procesorów do obliczeń. Dzięki temu, komputer staje się jeszcze bardziej wydajny.

Trochę o projektach

BOINC skupia w sobie wiele różnych projektów. To od Ciebie będzie zależało, do którego/których przyłączysz się. Ja aktualnie jestem zapisany do dwóch - rosetta@home i SETI@home - co przedstawiają ikonki w polu Moje Projekty na pierwszym zrzucie.

Po instalacji BOINC możemy również skonfigurować jego wygaszacz ekranu. Wygaszacz ten może wizualizować efekty pracy naszego komputera nad danym projektem. Taką wizualizację wyników moich aktualnych obliczeń dla projektu rosetta@home przedstawia poniższy zrzut.

Projekty dotyczą różnych tematów, są wśród nich:

rosetta@home - przewidywanie kształtu, w jaki białka składają się w naturze (poszukiwanie lekarstw na różne choroby, np. AIDS, nowotwory),

SETI@home - poszukiwanie sygnałów pozaziemskich cywilizacji na podstawie danych pochodzących z radioteleskopu znajdującego się w obserwatorium w Arecibo (Portoryko),

Quake Catcher Network (QCN) - wykorzystując akcelerometry (przyspieszeniomierze) wbudowane w komputerach lub podłączane przez port USB, osoby uczestniczące w projekcie pomagają w badaniach sejsmologicznych. Wyniki występowania wstrząsów na kuli ziemskiej, na bieżąco, można obserwować tu,

PrimeGrid - poszukiwanie liczb pierwszych (są też wysokie nagrody pieniężne dla pierwszych odkrywców).

Aktualnie dostępnych jest parędziesiąt projektów. Listę wszystkich, wraz z ich polskim opisem, można znaleźć na stronie BOINC@Poland. Są one w różnych fazach, niektóre są dopiero zakładane, inne - testowane, no i są też takie, które funkcjonują.

Różne projekty mają różne zapotrzebowanie na moc obliczeniową komputera. Dla przykładu, w projekcie rosetta@home najlepiej posiadać możliwie najszybszy procesor, który pozwoli w szybszym czasie przeliczać dane. Natomiast projekt Quake Catcher Network nie potrzebuje praktycznie żadnej mocy obliczeniowej procesora, ponieważ rejestruje wstrząsy z wbudowanego lub podłączonego przyspieszeniomierza.

Podsumowując

Chyba każdy nowy komputer posiada całkiem przyzwoite parametry i nieważne, do jakich celów go kupujemy, często nie wykorzystujemy potencjału, jakim dysponuje. Najczęściej dotyczy to komputerów służących do prac biurowych - edycja dokumentów, maili, rozmowy na gadu-gadu(?). W domu chyba również nieczęsto zdarzają się sytuacje, kiedy używane przez nas oprogramowanie, przez dłuższy czas, zużywa 100% mocy obliczeniowej procesora. Za to dość często komputery te działają po kilka a nierzadko kilkanaście godzin dziennie. Znajdą się też takie (starsze) komputery, które pracują 24 godziny na dobę, pełniąc rolę małych, domowych/biurowych serwerów.

Zarówno jedne i drugie możemy wykorzystać, jako maszyny liczące i zużytkować ich niewykorzystany potencjał. Zatem może warto byłoby zainstalować BOINC i przyczynić się do rozwiązania problemów z różnych dziedzin życia.

Na koniec

Sprawdź sam(a), włączając menedżer zadań (lub na Linuksie - polecenie: top), jak "mocno" obciążony jest Twój procesor podczas, gdy Ty czytasz ten artykuł... a reszta się marnuje;) 

Komentarze