Aktualności:

W MEDIA znajdziesz grafiki, banery i avatary

Menu główne
Menu

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.

Pokaż wiadomości Menu

Pokaż wątki - mariotti

#1
Archiwum / potwierdzenie u tego samego usera?
18 Wrzesień 2013, 03:14
Cześć

Dodałem kilka zadań testowych, ot tak, żeby po przerwie sobie przypomnieć jak to wszystko działa.
Zadania dodały się dobrze, klient, nawet w starej wersji, ładnie pobrał programy i zadania, i
policzył. Nic, tylko się cieszyć. Jednak przyjrzałem się bliżej wynikom i widzę, że ja, jako jeden i
ten sam login, na jednym i tym samym komputerze, dostałem jedno i to samo zadanie dwa
razy - drugi raz do potwierdzenia. Wydaje mi się to dziwne, bo przecież jakbym chciał oszukiwać, to
bym dwa razy wysłał identyczny-błędny wynik w odpowiedzi na identyczne taski.

Co powiedzie na ten temat?

Pozdrawiam

P.S.
Proszę, chwilowo nie dodawajcie  perfta do swoich aplikacji liczących.

P.S.2
Może dla pewności wyrażę się dobitniej. :) Teraz będę eksperymentował na
kodzie tego projektu. Oznacza to, iż może stać się wszystko, ze sformatowaniem
dysku i uszkodzeniem płyty głównej włącznie. Oczywiście takie ekstremalne
błędy są bardzo mało prawdopodobne, ale do póki nie przetestuję programu u
siebie, to lepiej nie pobierajcie go na swoje komputery.
#2
Spróbuję w tym wątku, moi wytrwali interlokutorzy, wywiedzieć się od was,
co myślicie o mojej niniejszej próbie nadania hazardowi dobrego oblicza :D

Rysiu, w jednym z poprzednich wątków, poruszył temat zachęty finansowej dla
wolontariuszy w postaci giełdy kredytów. Być może się głęboko mylę, ale
uważam, że giełda choć mogłaby pełnić funkcję dobrej zachęty finansowej, to
jednak jej realizacja w praktyce okaże się bardzo trudna.

Jak w zarysie mógłby ten hazard o zacnej twarzy wyglądać? Poniżej
moja napisana na kolanie, a więc zapewne bardzo niedopracowana, propozycja:
1) Na początku zwyczajnie powstaje aplikacja licząca
2) Wraz z aplikacją liczącą powstaje definicja turnieju, generalnie w każdym
     turnieju biorą udział pieniądze i obliczenia, turniej rozpoczyna się cyklicznie co
     jakiś czas i trwa do końca następnego cyklu
3) Jakiś algorytm na podstawie punktów wylicza zwycięzców i wysokość ich
     wygranych

Co do definicji turnieju. Zarówno definicje turnieju jaki i wszelkie statystyki
ułatwiające oszacowanie szansy na wygraną powinny być całkowicie jawne.
Myślę że powinny być dwie wersje turnieju. Jedna całkowicie darmowa, a
druga płatna. W wersji darmowej praktycznie nic się nie zmienia, liczydłowi
liczą jak liczyli do tej pory, ale mają informację o tym ile mogą wygrać i z jakim
prawdopodobieństwem. W wersji płatnej, przed włączeniem obliczeń, trzeba
jeszcze kupić kupon. Tak samo jak w lotto. Wydaje się to wam idiotyczne?
Nie dość że wydawać pieniądze na komputer, energię elektryczną, to jeszcze
płacić za kupon? Mnie w takim ujęciu też wydaje się to idiotyczne. Więc dlaczego w
ogóle zdecydowałem się to zaproponować? Otóż dlatego, że niedawno widziałem
wynik badań dotyczących obrotów na rynku szeroko rozumianego hazardu. Nie
mogę podać szczegółów, ale kwoty i inne statystyki  powalają z nóg - nie trudno
ulec wrażeniu, że grają wszyscy! Zresztą możemy zrobić anonimową ankietę na
tym forum i zapytać ludzi, jakie kwoty wydali/wygrali w ostatnim roku. Jestem
pewny, że wersja boinc-lotto ma szansę zaistnieć.

W poprzednim akapicie miałem pisać o definicji turnieju, a zabrnąłem w
przekonywanie że wersja z płatnym kuponem może realnie zaistnieć.
Wracając, różnorodne szczegóły turnieju można wymyślać dość łatwo.
Twórcom projektu będzie zależało na przyciągnięciu jak największej
ilości użytkowników, więc sami zadbają o przejrzyste i atrakcyjne zasady. 

Jakie są zalety lotto względem giełdy?

Po pierwsze - mniejsza niepewność. Jeśli projekt jest dofinansowany apriori,
to już przed wzięciem udziału w darmowej wersji znamy wartość oczekiwaną i
odchylenie standardowe wygranych. W przypadku giełdy nie wiemy kompletnie
nic. Albo się znajdzie chętny, albo nie, albo się znajdzie w tydzień, albo za
10 lat, albo będzie chciał kupić po takiej cenie, albo po innej.

Po drugie - turniej może być grą o dodatniej wartości oczekiwanej. Giełda też
może być taką grą, jednak w przypadku giełdy, to się okazuje dopiero gdy się
znajdzie chętny do zakupu. W przypadku turnieju, gdy projekt ma dofinansowanie, a
liczydłowi mają tani sprzęt/energię, będzie można ustalić wartość oczekiwaną i
czasami może się ona okazać dodatnia.

Po trzecie - brak manipulacji spekulacyjnych. Każdy ma jasno określone reguły
turnieju. Gra na małych giełdach (które i tak mogą się okazać wielkimi względem
giełdy BOINC) to hazard z niewielkimi wyjątkami.

Po czwarte - nie ma problemu z handlowaniem "jedną akcją". Często obsługa
transakcji jest kosztowna, więc cena jednej akcji jest wysoka. Liczydłowi
chcący sprzedać jeden kredyty napotykali by na koszty przelewów i zapewne
innych operacji. W przypadku turnieju problem znika sam. Np. nagrody
otrzymuje raz na miesiąc 0.001 uczestników.

Po piąte - zostają zachowane pewne zalety giełdy. Osoby finansujące
projekty mogą otrzymywać jakieś cegiełki i wystawiać je na aukcjach.
Jakby ktoś chciał, zawsze może postawić giełdę takich cegiełek, a nóż
będzie to dobry pomysł.

Po szóste - osoby z małą ilością komputerów nie są narażeni na inflację.
W BOINC chodzi o stworzenie super-komputera z połączenia wielu
komputerów osób prywatnych i małych instytucji. Liczydłowy oferujący
jeden kredyt do sprzedania padałby szybko ofiarą rekinów na giełdzie.
W przypadku turnieju zawsze ma stałą szansę na wygranie.

Na tym kończę i pozdrawiam.
#3
Mam zaszczyt otworzyć dyskusję na temat zupełnie nowego frameworka do
obliczeń rozproszonych. Cel dyskusji można sformułować bardzo zwięźle, można
go sprowadzić do jednego prostego pytania: jakie powinien mieć cechy porządny
framework? Ogólnie chyba wiadomo:
1) Od strony liczydłowych powinien oferować elastyczną konfigurację i powinien
    być intuicyjny w obsłudze. Nasuwają się więc kolejne pytania: co to jest elastyczna
    konfiguracja i co to jest intuicyjna obsługa?
2) Od strony programisty powinien umożliwiać łatwe i szybkie postawienie aplikacji.
    Co to konkretnie oznacza? W mojej ocenie oznacza to dobrze udokumentowane API w
    dobrym języku programowania, np. w Javie lub C++.
3) Od strony twórcy samego frameworka powinien dać się wykonać i przetestować
    stosunkowo małym nakładem pracy - dla mnie to oznacza użycie dobrych "wspomagaczy",
    jakimi są  wysokopoziomowe biblioteki. Liderem tutaj jest QT wraz z C++ lub Java wraz ze
    swoimi natywnymi bibliotekami.

Wystarczy chwila zastanowienia, aby dojść do wniosku, że punkt 3, pomimo użycia wspomagaczy,
przeczy punktom 1 i 2. Na pewno nie da się zrealizować bardzo dobrego produktu małym
nakładem pracy.  Może więc należy zadać pytania trochę inaczej: jakie cechy taki framework
musi mieć, aby w ogóle mógł funkcjonować? Jakie cechy musiałby mieć, aby wydawał się
atrakcyjny względem innych frameworków? No i w końcu jakie powinien mieć, aby był idealny?

Punkty 2 i 3 są bardzo techniczne i w przybliżeniu znam na nie odpowiedzi - a przynajmniej tak
mi się wydaje. Głównie interesuje mnie punkt widzenia liczydłowego. Już w jednym z postów
wspomniałem o tym, jak kiedyś dawno temu liczyłem coś dla SETI. Zdaje się że wtedy jeszcze
nie istniał BOINC. W biurze stało sporo komputerów i od popołudnia do rana nikt z nich nie
korzystał. Opłatę za energię elektryczną mieliśmy w czynszu. Więc aż się prosiło, żeby cokolwiek
liczyć na tych komputerach. Wtedy nie miałem żadnej swojej aplikacji która wymagała
żmudnych obliczeń, więc mogliśmy liczyć coś charytatywnie.  Niestety szef nie rozumiał
tej idei, gdy przychodził rano i widział że wszystkie komputery całkiem nieźle ogrzewają
biuro, to wpadał w furię. Rozwiązaniem w takiej sytuacji byłoby automatyczne wyłączenie
komputerów na chwilę przed otwarciem biura.

Ciekawy jestem jak wyglądają wasze zmagania i problemy z charytatywnymi obliczeniami :D

Pozdrawiam
#4
Archiwum / Test kompilatora
24 Sierpień 2013, 14:12
Mogłoby się wydawać, że tematyka kompilatorów zupełnie nie pasuje do
BOINC'owego forum, jednak bezbłędne działanie serwera, klienta, menadżera,
aplikacji liczącej i wszelkich programów pomocniczych, także zależy od
bezbłędnego działania kompilatora. Pracując na Linuxie, wiele razy spotkałem
się z trywialnymi błędami w kompilatorach. W związku z tym pytanie, czy
znacie jakieś narzędzia do przetestowanie kompilatora? Taki test, siłą rzeczy,
jednocześnie byłby testem sprzętu, bibliotek, a może nawet jądra systemu.

Wiem że takie testy się robi, wiem na czym one polegają, natomiast nie mam
bladego pojęcia czy są do tego celu jakieś gotowe narzędzia i skąd je pobrać.

Dla osób zupełnie niewtajemniczonych podam przykład takiego testu. Pisze się
program który generuje "losowe" procedury w C/C++. Następnie kompiluje się je
wieloma różnymi kompilatorami. Jeśli wyniki po uruchomieniu są różne, to
przynajmniej jeden z kompilatorów ma błąd (albo generator wygenerował
kod który może dać nieokreślony wynik - wtedy jest błąd w generatorze).

Pozdrawiam
#5
Archiwum / Jaki Linux pod klienta
23 Sierpień 2013, 20:12
Tak se myślę, żeby dać jeszcze jedną szansę platformie BOINC. Włożyłem w
BOINC masę pracy, zwykle to była praca bezsensowna, bo polegała na
szukaniu dziury tam gdzie jej nie było, ale  i tak jakoś szkoda porzucić
na tym etapie. Zwłaszcza, że być może jest to etap końcowy, mam
zrobione wszystko poza wraperem i usunięciem problemu komunikacji
klient-serwer-manager. Napisanie wrapera to jest raptem pół dnia, de facto
będzie trzeba wielu dni na przetestowanie. Teraz nie mogę pisać
wrapera, bo nie mam go na czym testować - na moim linuxie nie
działa.

No ale do rzeczy. Co planuję? Mam stacjonarny komputer który ledwo
działa, ale może da się na nim zainstalować nową wersję Linuxa.
Na laptopie nie mogę zainstalować nowej wersji, ponieważ używam go
do pracy i działa bez zarzutu - więc nic na nim nie zmienię pod żadnym
pretekstem. Więc żeby nie było, jakiego Linuxa proponujecie do
testowania i rozwijania aplikacji klienckiej BOINC? Musi tam działać
środowisko graficzne, kompilator C++, jakieś GUI do C++, najlepiej
QTCreator, no i oczywiście oprogramowanie BOINC.

Niestety ten stacjonarny komputer ledwo dycha... niestabilnie
działają pamięci, więc jak coś nie będzie działało, to znowu babka
będzie na troje wróżyła: albo błąd mój, albo błąd w oprogramowaniu
BOINC, albo błąd sprzętu i znowu będę siedział nad projektem z głupią
miną bez żadnych postępów. No ale na razie w nowy komputer nie
mogę zainwestować, zwłaszcza że projekt jest "czysto teoretyczny" i
nie będzie z niego żadnych zysków - chyba że jakaś reklama - coś
w stylu "boinc polska podała jako pierwsza ilość węzłów w
drzewie gry"...

Pozdrawiam
#6
Archiwum / i to samo...
18 Sierpień 2013, 17:11
Przekopiowałem lokalnie skompilowanego klienta do katalogu usr. Odpaliłem
manager i mam ten sam błąd:

nie, 18 sie 2013, 17:05:04 | perft | Message from server: PERFection Test - Counting Nodesn Chess needs 778.12MB more disk space.  You currently have 175.55 MB available and it needs 953.67 MB.

Miejsca na dysku jest dużo, a mój klient tego nie widzi. Sorry, ale definitywnie
rezygnuję z BOINCa. Napiszę 10 razy szybciej swoją platformę, niż odgadnę o
co chodziło autorom BOINCa.

Pozdrawiam
#7
Archiwum / problem z bibliotekami
18 Sierpień 2013, 11:31
Poprzedni wątek chyba umarł, więc założę kolejny.

Pobrałem nową wersję oprogramowania po stronie klienta.
Instalacja wygląda tak:

x@biglaptop:~/Pobrane/boinc$ ls -l
razem 3568
-rw-rw-r--  1 x x     219 2013-04-17 02:23 binstall.sh
-rwxr-xr-x  1 x x  934352 2013-04-17 02:23 boinc
-rwxr-xr-x  1 x x  261280 2013-04-17 02:23 boinccmd
-rwxr-xr-x  1 x x 1908528 2013-04-17 02:23 boincmgr
-rw-rw-r--  1 x x     815 2013-03-28 19:22 boincmgr.16x16.png
-rw-rw-r--  1 x x    2395 2013-03-28 19:22 boincmgr.32x32.png
-rw-rw-r--  1 x x    5570 2013-03-28 19:22 boincmgr.48x48.png
-rwxr-xr-x  1 x x  265976 2013-04-17 02:23 boincscr
-rw-rw-r--  1 x x  238049 2013-03-28 19:22 ca-bundle.crt
drwxrwxr-x 39 x x    4096 2013-03-28 19:22 locale
-rwxrwxr-x  1 x x      46 2013-08-16 04:33 run_client
-rwxrwxr-x  1 x x      49 2013-08-16 04:33 run_manager
drwxrwxr-x  3 x x    4096 2013-03-28 19:22 skins


Próba uruchomienia czegokolwiek kończy się błędem:

./boinc
./boinc: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by ./boinc)
./boinc: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./boinc)


Nowych bibliotek do systemu nie chcę wgrywać, aktualizacji systemu też nie chcę robić.
Co proponujecie?

Pozdrawiam


#8
Archiwum / problem z miejscem na dysku
09 Sierpień 2013, 14:50
Ponowię pytanie w wydzielonym wątku, może ktoś zaproponuje jakieś rozwiązanie.

Mam na partycji systemowej około 14GB wolnego miejsca. Klient zgłasza że jest
około 1GB i nie może pobierać work-units. Wczoraj chciałem pogrzebać trochę przy
projekcie, ale nie mogę testować, bo klient nie pobiera zadań. Reset i ponowna instalacja
nie pomogły. Co mam zrobić?

Pozdrawiam


#9
Archiwum / ten sam problem...
01 Sierpień 2013, 20:56
Skasowałem testowy serwer i założyłem nowy. Wszystko zrobiłem tak samo,
nowych źródeł nie pobierałem, ani nowych wersji pakietów nie instalowałem.
No i mam ten sam problem co poprzednio: zadania są, a klient ich nie
pobiera. Poprzednim razem też był taki problem i nie wiem dlaczego nagle
zniknął. Myślałem że jak raz się przebrnie proces instalacji, to potem
robi się z zamkniętymi oczami...

Ku ścisłości, nie robiłem wszystkiego tak samo. Teraz dodałem dwie
aplikacje, jedna licząca i druga pośrednicząca. Czyżby ten szczegół
wymagał jakiś specjalnych zabiegów?

Pozdrawiam
#10
Archiwum / trudniejszy przykład
24 Lipiec 2013, 07:10
Jakie zadanie proponujecie na następny test? Program upper-case był dobry
do sprawdzenia czy serwer w ogóle działa. Teraz by się przydało coś ciut trudniejszego
do policzenia. Tak żeby można było po zakończeniu obliczeń podsumować wyniki i
sprawdzić czy wszystko się zgadza. Jednocześnie zadanie nie może być zbyt
trudne w implementacji.

Pozdrawiam
#11
Archiwum / upper-case działa!
24 Lipiec 2013, 02:26
Normalnie z radości bym przeklął, ale że to forum publiczne, napiszę
po prostu że upper-case w końcu działa - a przynajmniej tak wygląda.

Co zrobiłem? Nic! Jedynie zresetowałem swojego laptopa, usunąłem projekt i
dodałem na nowo. W wątku poniższym TJM pisał że z jego komputera klient
odesłał pliki. Pomyślałem że coś nie tak z moim laptopem/systemem. Wydaje mi
się to bardzo dziwne, bo rosetę odsyłał poprawnie, a rzekomo odesłanych plików
nigdzie nie było na serwerze.

Właściwie to dodałem jeszcze wpis do plików konfiguracyjnych żeby używał
http w wersji 1.0.  Jednak po usunięciu tego wpisu nadal działa. W sumie
z tymi kropkami i pustymi nazwami problem też jakby zniknął sam, bez
mojej ingerencji... Masakra jakaś, nic nie rozumiem, no ale działa...

Dodałem 10tys tasków, jeśli mogę Was poprosić, to testujcie.

Ciekawe jakie będą problemy z przerabianiem upper-case na inne aplikacje
liczące - już na samą myśl o tym moja radość ustąpiła miejsca rozpaczy :/

Pozdrawiam
#12
Archiwum / cd. work units
20 Lipiec 2013, 04:07
Nie mogę za nic w świecie doszukać się błędu w swoim dodawaniu work-units.
Więc myślę sobie, dodam przy pomocy API, a nie przy pomocy gotowych
narzędzi - może sposób trudniejszy okaże się łatwiejszy?

Wchodzę na stronę z przykładem:
http://boinc.berkeley.edu/trac/wiki/WorkGeneration

Przykład nie wydaje się trudny, aczkolwiek dziwne jest to, że
funkcja create_work otrzymuje na wejście dwa razy ten sam
plik: szablon wyjścia. Więc wchodzę do dokumentacji API:
http://boinc.berkeley.edu/doxygen/api/html/index.html

Przykład inkluduje plik nagłówkowy:
#include "boinc_db.h"
Rozwijam drzewko "file_list", ale pliku boinc_db nie ma. Samej
funkcji create_work też nie widzę tam.  Dlaczego?

Pozdrawiam


#13
Archiwum / serwer na windows?
20 Lipiec 2013, 01:10
Czytam sobie fragment tutoriala:

Each job executes in its own slot directory (slots/0, etc.). The slot directory contains links to the job's input and output files. The name of each link is a logical name. (These links aren't symbolic or hard links, because Windows doesn't have them; rather, they're XML files containing the path of the file in the project directory). Applications call a BOINC API function boinc_resolve_filename() to map logical names to physical names prior to opening them.

Jeśli dobrze rozumiem ten angielski tekst, to rezygnację z łączy uzasadniają tym, że Windows ich nie ma. Jestem
pewny, że w jakimś tutorialu czytałem, iż na windowsa nie ma serwera boinc. Poza tym coś mi się kojarzy, że windows
ma jakiś odpowiednik linków. Jest junction point, shortcut, polecenie mklink...

Pozdrawiam
#14
Archiwum / ile czasu?
20 Lipiec 2013, 00:52
Z czystej ciekawości chciałem zapytać, ile czasu zajęła Wam konfiguracja
własnych projektów? Nie chodzi mi o wykonanie aplikacji, gdyż to zależy
od jej skomplikowania. Pytam o czas przeznaczony na konfigurowanie i
opanowywanie tajników BOINCa.

Pozdrawiam
#15
Archiwum / własny frame-work?
16 Lipiec 2013, 18:58
Co myślicie o tym, aby napisać własny frame work do obliczeń rozproszonych?

Zadanie napisania takiego frame-worka nie jest trudne, aczkolwiek pracochłonne.
Im większa funkcjonalność, im więcej gotowców, tym większy wkład pracy. Po
tych wszystkich problemach jakie sprawiła mi platforma BOINC, taki pomysł nie
wydaje się całkowicie pozbawiony sensu. Może projekt też by zyskał rzesze
użytkowników, tak jak teraz jest w przypadku BOINC? Osobiście bym postawił na
prostotę i wygodę - może dzięki temu by powstało jeszcze więcej projektów
naukowych? Może istniejące projekty by się przeniosły na nową platformę?

Generalnie widzę to mniej/więcej tak. Język programowania: java albo C++ i
biblioteka QT. Obie "technologie" zapewniają dużą wydajność i przenośność
na różne platformy sprzętowe. Java ma taką wadę, że można ją dekompilować.
Jednak w javie łatwiej się programuje niż w C++, programiści z mniejszym
doświadczeniem mogliby tworzyć tego typu aplikacje. Zaletą C++ jest
większa wydajność kodu - co w aplikacjach liczących może być decydujące.

Cały frame-work byłby darmowy open-source na licencji LGPL. Programista całkowicie
byłby skupiony na pisaniu dwóch aplikacji:
a) aplikacji liczącej
b) aplikacji podającej zadania (server)

API frameworka byłoby bardzo nowoczesne, w postaci klas z których dziedziczą obie
aplikacje. Taki efekt można uzyskać zarówno w Javie jak i w C++. Aplikacja licząca i serwer
dostawałyby odpowiednie zdarzenia, kilka przykładowych:
1) można wznowić obliczenia,
2) użytkownik wydał polecenie zamknięcia,
3) serwer prosi o numer wersji aplikacji
4) serwer dostał wyniki obliczeń.

Wersja zero frame-worka byłaby minimalna. Obsługiwałaby tylko kilka podstawowych
zdarzeń. Praktycznie byłoby tylko wysyłanie zadań i zbieranie wyników. Jednak z
powodu prostoty dużo osób mogłoby sięgać po taką platformę.  W kolejnych wersjach
pojawiłyby się konta userów, szyfrowanie, rankingi, itd.

Pozdrawiam
#16
Archiwum / start klienta pod ubuntu
14 Lipiec 2013, 20:52
Jak się odpala klienta boinc pod ubuntu? Gdy odpalam jako user, albo
jako root, to menadżer nie potrafi się z nią połączyć. Natomiast po restarcie
komputera działa wszystko bez zarzutu. Pewnie komenda odpalająca
klienta jest w jakiś plikach startowych linuxa, ale nie umiem jej wygrzebać :/

Z góry dzięki za pomoc. Pozdrawiam.

#17
Archiwum / work units
13 Lipiec 2013, 15:24
Czy pod tym linkiem jest dobry materiał?
http://wiki.debian.org/BOINC/ServerGuide/WorkUnitGeneration

Pozdrawiam
#18
Archiwum / minimalny program
10 Lipiec 2013, 22:57

Czy kod źródłowy programu hello world pod poniższym linkiem
jest aktualny? Można na nim się wzorować? Czy powinienem
poszukać innego przykładu?

http://www.spy-hill.net/myers/help/boinc/hello.C

#19
Archiwum / błędne linki
10 Lipiec 2013, 21:38

No dobra, to aplikacja szkieletowa niby działa. Dotarłem do problemu
błędnych urli w formatkach logowania, tworzenia konta, itd. Zobaczymy
czy uda się rozwiązać ten problem. Swoją drogą, chyba zarchiwizuję
źródła BOINC z których udało się postawić aplikację szkieletową, to
trochę podejrzane że nie działało i nagle zaczęło działać samo z siebie.

Pozdrawiam

#20
Archiwum / red hat to debian?
09 Lipiec 2013, 11:01
Zainstalowałem Debiana. Sprawdzam wersję:
cat /proc/version
Linux version 2.6.32-274.el5.028stab093.2 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Aug 23 16:46:17 MSD 2011
Ekspertem od dystrybucji Linux'a to ja nie jestem, ale wydaje mi się to podejrzane :D

Pozdrawiam

#21
Archiwum / mysql
08 Lipiec 2013, 15:01
W jaki sposób skrypt configure szuka mysqla? Pytam, bo mam zainstalowany
serwer mysql, a srypt conigure go nie widzi. Oczywiście taki problem mam na
VPS, na moim laptopie ten problem nie występuje.

Fragment konsoli:

configure: WARNING:  mysql not found.
======================================================================
WARNING: trying to build BOINC-server, but MYSQL was not be found.
If you dont want to build the server you should use --disable-server.

I am continuing now as if --disable-server had been specified.

======================================================================


Pozdrawiam
#22
Archiwum / co za.....
06 Lipiec 2013, 22:00
Masakra z tym BOINCiem, nic nie chce po prostu działać. Teraz nie ma czegoś
do mysqla (choć baza jest, wyśmienicie działa zarówno z programu mysql jaki i z poziomu
php) i brak masy plików.

Creating directories
Generating encryption keys
Copying files
failed to copy /home/test/boinc/sched/cgi to /home/test/www/cgi-bin/cgi
failed to copy /home/test/boinc/sched/file_upload_handler to /home/test/www/cgi-bin/file_upload_handler
failed to copy /home/test/boinc/sched/adjust_user_priority to /home/test/www/bin/adjust_user_priority
failed to copy /home/test/boinc/sched/antique_file_deleter to /home/test/www/bin/antique_file_deleter
failed to copy /home/test/boinc/sched/census to /home/test/www/bin/census
failed to copy /home/test/boinc/sched/db_dump to /home/test/www/bin/db_dump
failed to copy /home/test/boinc/sched/db_purge to /home/test/www/bin/db_purge
failed to copy /home/test/boinc/sched/delete_file to /home/test/www/bin/delete_file
failed to copy /home/test/boinc/sched/feeder to /home/test/www/bin/feeder
failed to copy /home/test/boinc/sched/file_deleter to /home/test/www/bin/file_deleter
failed to copy /home/test/boinc/sched/get_file to /home/test/www/bin/get_file
failed to copy /home/test/boinc/sched/make_work to /home/test/www/bin/make_work
failed to copy /home/test/boinc/sched/put_file to /home/test/www/bin/put_file
failed to copy /home/test/boinc/sched/sample_assimilator to /home/test/www/bin/sample_assimilator
failed to copy /home/test/boinc/sched/sample_bitwise_validator to /home/test/www/bin/sample_bitwise_validator
failed to copy /home/test/boinc/sched/sample_dummy_assimilator to /home/test/www/bin/sample_dummy_assimilator
failed to copy /home/test/boinc/sched/sample_trivial_validator to /home/test/www/bin/sample_trivial_validator
failed to copy /home/test/boinc/sched/sample_work_generator to /home/test/www/bin/sample_work_generator
failed to copy /home/test/boinc/sched/show_shmem to /home/test/www/bin/show_shmem
failed to copy /home/test/boinc/sched/single_job_assimilator to /home/test/www/bin/single_job_assimilator
failed to copy /home/test/boinc/sched/size_regulator to /home/test/www/bin/size_regulator
failed to copy /home/test/boinc/sched/transitioner to /home/test/www/bin/transitioner
failed to copy /home/test/boinc/sched/update_stats to /home/test/www/bin/update_stats
failed to copy /home/test/boinc/vda/vda to /home/test/www/bin/vda
failed to copy /home/test/boinc/vda/vdad to /home/test/www/bin/vdad
failed to copy ../tools/cancel_jobs to /home/test/www/bin/cancel_jobs
failed to copy ../tools/create_work to /home/test/www/bin/create_work
failed to copy ../tools/dir_hier_move to /home/test/www/bin/dir_hier_move
failed to copy ../tools/dir_hier_path to /home/test/www/bin/dir_hier_path
failed to copy ../tools/sign_executable to /home/test/www/bin/sign_executable
Setting up database
/home/test/boinc/py/Boinc/database.py:276: Warning: Can't drop database 'perft'; database doesn't exist
  cursor.execute("drop database if exists %s"%config.db_name)
Writing config files
Linking CGI programs
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/sqlite.so' - /usr/lib/php5/20090626/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/sqlite.so' - /usr/lib/php5/20090626/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
update_translations finished
Done installing default daemons.

Done creating project.  Please view
/home/test/www/perft.readme
for important additional instructions.

#23
Archiwum / crypt_prog
06 Lipiec 2013, 13:36
Pobrałem świeże źródła BOINC z repozytorium GIT. Doinstalowałem niezbędny soft, skonfigurowałem,
skompilowałem - wszystko poszło bez błędów i bez większych problemów. Jednak nie mogę utworzyć
nowego projektu bo nie mam programu jak w temacie crypt_prog. Próbowałem go kompilować
ręcznie, ale nie udaje się. W pliku make nie mogę znaleźć polecenia kompilującego - prawdopodobnie
skrypt configure w trakcie budowania make w ogóle nie dodał kompilacji crypt_prog.

Zrzut z kompilacji:

test@x:~/boinc/lib$ g++ -O2 -I.. -o crypt_prog crypt_prog.cpp
crypt_prog.cpp: In function 'unsigned int random_int()':
crypt_prog.cpp:111:31: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
/tmp/ccIBj1hJ.o: In function `main':
crypt_prog.cpp:(.text.startup+0x8d): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0xc9): undefined reference to `sign_file(char const*, R_RSA_PRIVATE_KEY&, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0xdd): undefined reference to `print_hex_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x155): undefined reference to `RSA_generate_key'
crypt_prog.cpp:(.text.startup+0x16f): undefined reference to `openssl_to_keys(rsa_st*, int, R_RSA_PRIVATE_KEY&, R_RSA_PUBLIC_KEY&)'
crypt_prog.cpp:(.text.startup+0x1b8): undefined reference to `print_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x1cd): undefined reference to `print_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x233): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x274): undefined reference to `scan_hex_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x295): undefined reference to `md5_file(char const*, char*, double&)'
crypt_prog.cpp:(.text.startup+0x2c2): undefined reference to `check_file_signature(char const*, R_RSA_PUBLIC_KEY&, DATA_BLOCK&, bool&)'
crypt_prog.cpp:(.text.startup+0x31e): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x33f): undefined reference to `generate_signature(char*, char*, R_RSA_PRIVATE_KEY&)'
crypt_prog.cpp:(.text.startup+0x39d): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x3d1): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x43e): undefined reference to `encrypt_private(R_RSA_PRIVATE_KEY&, DATA_BLOCK&, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x483): undefined reference to `decrypt_public(R_RSA_PUBLIC_KEY&, DATA_BLOCK&, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x4fa): undefined reference to `scan_hex_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x51b): undefined reference to `check_validity(char const*, char const*, unsigned char*, char*)'
crypt_prog.cpp:(.text.startup+0x5e6): undefined reference to `scan_raw_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x60f): undefined reference to `print_hex_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x6a6): undefined reference to `OPENSSL_add_all_algorithms_noconf'
crypt_prog.cpp:(.text.startup+0x6b1): undefined reference to `ERR_load_crypto_strings'
crypt_prog.cpp:(.text.startup+0x6b6): undefined reference to `ENGINE_load_builtin_engines'
crypt_prog.cpp:(.text.startup+0x6c4): undefined reference to `BIO_new_fp'
crypt_prog.cpp:(.text.startup+0x6cc): undefined reference to `BIO_s_file'
crypt_prog.cpp:(.text.startup+0x6d4): undefined reference to `BIO_new'
crypt_prog.cpp:(.text.startup+0x6ea): undefined reference to `BIO_ctrl'
crypt_prog.cpp:(.text.startup+0x701): undefined reference to `RSA_new'
crypt_prog.cpp:(.text.startup+0x73c): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x756): undefined reference to `private_to_openssl(R_RSA_PRIVATE_KEY&, rsa_st*)'
crypt_prog.cpp:(.text.startup+0x786): undefined reference to `PEM_write_RSAPrivateKey'
crypt_prog.cpp:(.text.startup+0x7d1): undefined reference to `scan_hex_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x7fa): undefined reference to `print_raw_data(_IO_FILE*, DATA_BLOCK&)'
crypt_prog.cpp:(.text.startup+0x849): undefined reference to `PEM_read_RSAPrivateKey'
crypt_prog.cpp:(.text.startup+0x86d): undefined reference to `openssl_to_private(rsa_st*, R_RSA_PRIVATE_KEY*)'
crypt_prog.cpp:(.text.startup+0x899): undefined reference to `print_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x8d2): undefined reference to `scan_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x904): undefined reference to `public_to_openssl(R_RSA_PUBLIC_KEY&, rsa_st*)'
crypt_prog.cpp:(.text.startup+0x90f): undefined reference to `PEM_write_RSA_PUBKEY'
crypt_prog.cpp:(.text.startup+0x91f): undefined reference to `ERR_print_errors'
crypt_prog.cpp:(.text.startup+0x93f): undefined reference to `PEM_read_RSA_PUBKEY'
crypt_prog.cpp:(.text.startup+0x970): undefined reference to `openssl_to_keys(rsa_st*, int, R_RSA_PRIVATE_KEY&, R_RSA_PUBLIC_KEY&)'
crypt_prog.cpp:(.text.startup+0x980): undefined reference to `public_to_openssl(R_RSA_PUBLIC_KEY&, rsa_st*)'
crypt_prog.cpp:(.text.startup+0x9a8): undefined reference to `print_key_hex(_IO_FILE*, KEY*, int)'
crypt_prog.cpp:(.text.startup+0x9e9): undefined reference to `ERR_print_errors'
crypt_prog.cpp:(.text.startup+0xa41): undefined reference to `ERR_print_errors'
collect2: ld returned 1 exit status

Nie mogę wygooglać w jakich bibliotekach znajdują się brakujące funkcje i nie wiem z czym
zlinkować. Ku ścisłości: kilka wygooglałem, ale włączenie ich nie pomagało.

Pozdrawiam
#24
Docking@home / Algorytmy
05 Czerwiec 2013, 15:36
Jakich algorytmów oni używają w tym projekcie?
Czy to są bardzo skomplikowane obliczenia?
Pozdrawiam
#25
Hej

Przygotowałem wersję programu do przeszukiwania drzewa gry w szachach. Zadaniem
program jest zliczenie ile jest liści w pełnym drzewku na określoną głębokość Program
został wyposażony w 4 różne algorytmy. Piąta wersja będzie zoptymalizowana, szósta
wersja będzie na BOINC - ale to pod warunkiem że ktoś baaaaardzo mi pomoże
przedrzeć się przez konfigurację.

Program można uruchomić tak po prostu i sprawdzić ile jest węzłów w drzewku - to
pierwszy algorytm.

Drugi algorytm umożliwia wykorzystanie ogromnej pamięci - można zobaczyć
jakie uzyskuje się dzięki temu przyspieszenie.

Trzeci algorytm uruchamia się w wątkach - ilość wątków podaje się jako parametr.

Czwarty algorytm nie dość że uruchamia się w wątkach, to jeszcze umie wykorzystać
ogromną ilość pamięci.

Program przez długi czas będzie w wersji tylko na linux64 bity, potem może będzie
na inne systemy. W początkowym okresie będzie udostępniany tylko w wersji
binarnej, za dłuższy czas udostępnię także źródła.

Do wątków została użyta biblioteka boost::thread - można przypuszczać, że ta
biblioteka korzysta z tych samych mechanizmów na poziomie systemu co OpenMP.

Pierwsze pytanie do Was, ilu jest chętnych do przetestowania programu tak
po prostu na jednym komputerze, a ilu jest chętnych do odpalenia go na
jakimś klastrze? Program na razie nie wspomaga żadnego MPI ani BOINC, ale
podobno można tak skonfigurować klaster, żeby wykonał się na wielu
maszynach. Ciekawy jestem jakie byłyby wyniki na klastrze.

W drugim kroku, jeśli będą chętni do pomocy przy konfigurowaniu BOINC,
przejdziemy do obliczeń w tej sieci. Problem przeszukiwania drzewa gry
jest wykładniczy. Na moim kompie (6 rdzeni) najlepszy algorytm z
najlepszymi parametrami potrzebował 2315 sekund aby przejrzeć drzewko
na głębokość 9 ruchów. Znalazł w nim 2439530234167 liści.  Pewnie w
przeciągu doby zejdzie do 10 ruchów, a w miesiąc do 11 ruchów. Po
optymalizacji, w jeden miesiąc może będzie dochodził do 12 ruchów.
Jakbyśmy użyli 30 komputerów to po miesiącu osiągniemy 13 ruchów - tak
można przypuszczać :)

Jak widać na tej stronice:
http://oeis.org/A048987/list

Ktoś do 13 ruchów już doszedł :) Więc jakbyśmy chcieli bić rekord, to
byśmy musieli zejść do 15-16 ruchów :) Ciekawy jestem czy będą
zainteresowani, zwłaszcza że są poważne rzeczy do obliczenia, a to
tylko zabawa.

Jak będą zainteresowani, to w następnym poście opiszę jak używać
programu :)


Pozdrawiam!
#26
Rozmowy nieBOINCowane / własny projekt
25 Maj 2012, 23:40
Cześć

Jakie warunki trzeba spełnić, aby w sieci obliczeń rozproszonych
uruchomić własny projekt? Czy to jest możliwe tylko dla dużych
instytucji, czy każdy może napisać i potem zainstalować?

Pozdrawiam