lordbyrad - 2008-04-22 21:56:26

Ja na starcie oddałem głos na "Już należę" i ciekawy jestem co wy myślicie na temat tego projektu (ja go popieram czterema rękami i ośmioma nogami ;) ).

Po rozmowie z Markiem doszedłem do wniosku, że warto trochę napisać o tym projekcie. Leniwi mogą od razu przejść do akapitu pisanego dużą niebieską czcionką.

Pewnie wielu z was słyszało o projektach, takich jak analiza sygnałów dostarczanych przez stacje radarowe szukający obok obcych cywilizacji również supernowych, czarnych dziur, etc; albo analizowania struktur białkowych potrzebnych do walki z HIV, rakiem; czy rozwiązywania zaawansowanych obliczeniowo problemów z zakresu matematyki i kryptologii; w których może uczestniczyć każdy, kto ma dostęp do neta (stały lub tylko na przykład z lapka na uczelni, ale o tym nieco później) i własny komputer. Problemów tego rodzaju po prostu nie da się efektywnie rozwiązać na pojedynczym kompie (nawet wewnętrznej cieci superkomputerów) bo ilość stale napływających danych do obróbki jest tak duża, że szacowany koszt sieci tylko dla projektu SETI@home byłby rzędu 50 000 000 000$ (podobnych programów badawczych zrzeszonych tylko z BONIC jest 22). Dlatego już dawno temu ktoś wpadł na pomysł, aby wykorzystać nieużywaną moc obliczeniową komputerów podłączonych do sieci. Jednak ponieważ jest to ich prywatna własność - muszą jawnie wyrazić zgodę na wykorzystanie ich kompa.

Z punktu widzenia użytkownika w systemie nie widać praktycznie żadnej zmiany (BONIC uruchamia obliczenia w tle z najniższym priorytetem (jak dotąd w kolejce procesów winXP nie znaleziono ŻADNEJ dziury, ale jest to jedna z nielicznych dobrze napisanych części tego systemu :) ) podczas gdy każda nowo uruchomiona aplikacja defaultowo odpala się 2 lub więcej poziomy wyżej (dla nie obeznanych z systemem CTRL+ALT+DEL -> Menedżer zadań -> zakładka Procesy i po zmianie w Menu Widok -> Kolumny można to podejrzeć)). Program nie przeszkadza nawet w graniu w wymagające gry (jeśli nie ma wolnych zasobów, to procesu z niskim priorytetem nie trafiają do CPU) natomiast gdy korzystacie z komunikatora, czy nawet 10 na raz plus Office i jeszcze parę drobiazgów, to w sumie zużywacie max 20% mocy CPU, dlatego polecam (jeśli ktoś się już zdecyduje) zaznaczenie opcji "While computer is in use" oraz w przypadku laptopów jest opcja "While computer ic on batteries" więc nie ma większych problemów nawet z bateriami oraz opcje "Start z Windowsem" i "dla wszystkich/jednego użytkowników(a)". Cały program jest po polsku (z jednym wyjątkiem - "preferencje lokalne" :( ale zmiana ustawień nie przysparza większych problemów). Jestem wolontariuszem w tym projekcie od dłuższego czasu i nie stwierdziłem żadnych problemów z działaniem windowsa przy odpaleniu któregokolwiek z projektów (a tak z ciekawości przeliczyłem po kilka pakietów ze wszystkich ;) ), na linuchu również działa bez zarzutu (i mówię to zarówno odnośnie wersji 32bitowej mojego zabytkowego już sprzętu, jak i 64bitowej na Quadzie kumpla (który CPU wybierał po przeanalizowaniu wydajności jaką mają CPU w statystykach - można znaleźć chyba każdy istniejący model procesora począwszy od starych AMD K5, przez nówki Core2Duo aż do różnorakich dziwolągów występujących w potężnych stacjach roboczych produkowanych na indywidualne zamówienie). Przyznaję tylko, że znalazłem jedną lukę w programie - brak wskazania faktycznego zegara CPU w profilach, ale po znalezieniu trzech procesorów można wyciągnąć rzetelne informacje (na przykład core2 Intela zdecydowanie lepiej spisuje się w obliczeniach na liczbach całkowitych od Phenomów, czy Opteronów za tą samą cenę, a przy obliczeniach zmiennoprzecinkowych ma wyniki zbliżone, choć z drógiej strony AMD o niebo lepiej współpracuje z RAMem (niższe czasy dostępu nawet do tej samej kości), ale to jest już w prostej linii wynikiem wbudowania od K7 kontrolera RAMu w sam CPU (a nie w chipset na płycie jak u Intela)).

Do tego rodzaju obliczeń delegowane sa wyłącznie procesy, które do przetworzenia niewielkiej ilości danych potrzebują długotrwałych obliczeń (jak generowanie trój wymiarowych współrzędnych dla białka składającego się z 100k atomów), na przykład projekt "SHA-1 Collinson Search Graz" paczka ważąca około 20kb u mnie przetwarza się około 1h 20min (plus program do obróbki wszystkich paczek około 1MB pobierany jednorazowo); Choć są również projekty o większych paczkach (jak 2,5 - 3MB przerabiane w około 8h w projekcie rosetta@home). U mnie na dysku program zajmuje niecałe 29MB (razem z dobowym zapasem pakietów do obróbki) co nawet przy dysku 20GB jest wartością, którą można spokojnie pominąć. Program można skonfigurować tak, aby pobierał dane tylko w określonych godzinach w wybrane dni tygodnia i "robił zapasy" do 10 dni (jak kiedyś tak ustawiłem, to pobrał raptem około 1,5MB, a muszę przyznać, że spodziewałem kilkudziesięciu mega :D choć nie ze wszystkimi pakietami w tym czasie ;/ i pakiety uległy przeterminowaniu (czyli dostał je ktoś inny)).

Tutaj można pobrać niewielkiego klienta (7,1MB): http://boinc.berkeley.edu, a następnie wystarczy wybrać jeden lub więcej projektów (ja uczestniczę w "rosetta@home", "SHA-1 Collinson Search Graz" oraz "Prime Grid") lepiej wybrać co najmniej dwa, bo gdy w jednym zabraknie danych do przetworzenia (stosunkowo rzadkie, ale jednak się zdarza) to zawsze PC będzie pracował nad tym drugim.
Jeżeli ktoś ma mało RAMu, to odradzam rosettę, bo zżera 250 - 300MB, ale SHA-1 około 1MB, a Prime Grid od kilkuset kB do 25MB (w zależności po programu badawczego, bo PromeGrid aktualnie ma ich koło ośmiu). A są projekty potrzebujące od 35kB nawet do GB RAMu (jeżeli brakuje RAMu w systemie, to dany projekt nie będzie przydzielany do danego PC-ta, choć rosetta przy 256MB RAMu w systemie też działała, choć czas obliczeń pojedynczej paczki wzrósł z 8 do 9h).
Odnośnie czasu pracy nad pojedynczą paczką, to tylko w programie Prime Grid są projekty, w których paczka oblicza się w kilka minut, ale jest również "Prime Sierpinski Problem LLR", który u mnie (p4 1,7GHz Wilamete pracujący na 1,904GHz i 1GB DDR 400MHz) liczy się około 45h (biorąc pod uwagę łączny czas pracy). Przy uczestnictwie w wielu projektach czas CPU jest dzielony mniej więcej po równo między wszystkie (każdy projekt dostaje około 1h czasu CPU (czyli 1, 5 albo 1/50 pakietu), po czym następuje pauza i wkracza następny).

Za każdy przetworzony pakiet użytkownik dostaje określoną ilość punktów i na tej prowadzone są statystyki (każdy użytkownik może mieć kilka kompów, więc statystyki dotyczą pojedynczego kompa, sumy pkt usera, grupy (można pracować w grupach :!: ) oraz kraju (można (ale nie trzeba) podać przy rejestracji w projekcie).
Aktualnie Polska jest na wysokim - 9-tym miejscu (w rankingu ogólnoświatowym  :!: ). (Patrz tutaj)
A ja pewnie łapię się gdzieś koło 1 000 000 pozycji :d (stawiam piwo pierwszej osobie, która mnie znajdzie w tych statystykach ;) ).

Uczestnictwo w projekcie nie przynosi żadnych profitów (no może poza możliwością porównania wydajności własnego sprzętu ze sprzętem innych (w pełni anonimowo) i ewentualnie oceny wydajności CPU jak by ktoś chciał kupować; a tak swoją drogą, to właśnie wydajność FPU (Float Pointing Unit - jednostka zmiennoprzecinkowa) jest faktycznym odzwierciedleniem wydajności podsystemu CPU<->RAM).

PS. Jak jeszcze ktoś ma jakieś pytania, to zapraszam na komunikator.
PPS. Trochę sporawy wyszedł ten post no ale co tam

A tu są screeny programu:
Screen1
Screen2
Screen3

i opcji:
Screen Opcji 1
Screen Opcji 2
Screen Opcji 1
No i plus jeszcze opcje języka, proxy (zarówno HTTP, jak i SOCKS) i sieci VPN.

www.truebelivers.pun.pl www.shinobigames.pun.pl www.mytheraots.pun.pl www.darkots.pun.pl www.slawkow.pun.pl