Aktualności:

W MEDIA znajdziesz grafiki, banery i avatary

Menu główne

serwer na windows?

Zaczęty przez mariotti, 20 Lipiec 2013, 01:10

mariotti

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

krzyszp

Cytat: mariotti w 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.
Piszesz o kliencie, nie o serwerze.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

#2
Cytat: krzyszp w 20 Lipiec 2013, 01:14
Cytat: mariotti w 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.
Piszesz o kliencie, nie o serwerze.
Czyli nic z tego nie rozumiem. W czym to jest pomocne? Aplikacja licząca ma tylko otworzyć pliki wejściowe, a
klient ma zadbać tylko o to, aby pliki były przygotowane do otwarcia. Dlaczego mam wiedzieć coś o jakiś
slotach po stronie aplikacji klienckiej? Po stronie serwera to bym rozumiał, tam masę plików trzeba rozmieścić
optymalnie w podkatalogach.
Pozdrawiam

Karlik

Pewnie są jeszcze inne powody, ale mi przychodzą takie:
1. aplikacja licząca występuje fizycznie w postaci jednej binarki i nie jest za każdym razem kopiowana do slotów
2. dane wejściowe mogą być wspólne dla wielu instancji aplikacji liczącej
3. pliki wyjściowe mogą w ten sposób być lepiej skonfigurowane - zapisywane ostatecznie w folderze projektu (i stamtąd uploadowane), w slotach są tylko tymczasowo

To jest po prostu ostrzeżenie, żebyś nie używał bezwzględnych ani względnych ścieżek do swoich plików wejściowych/wyjściowych, bo możesz ich nie znaleźć tam gdzie zakładałeś. Po to masz te funkcje rozwiązujące nazwy.

mariotti

Cytat: Karlik w 20 Lipiec 2013, 01:59
Pewnie są jeszcze inne powody, ale mi przychodzą takie:
1. aplikacja licząca występuje fizycznie w postaci jednej binarki i nie jest za każdym razem kopiowana do slotów
2. dane wejściowe mogą być wspólne dla wielu instancji aplikacji liczącej
3. pliki wyjściowe mogą w ten sposób być lepiej skonfigurowane - zapisywane ostatecznie w folderze projektu (i stamtąd uploadowane), w slotach są tylko tymczasowo
Przepraszam, ale w żadnym z tych punktów nie widzę związku z problemem. Dla mnie to jest
jedynie jakaś zbędna i koszmarna komplikacja. Celem jest bardzo prosta rzecz: Na serwerze
umieszczamy pliki. Pliki umieszczamy raz na starcie projektu (albo piszemy program który będzie
je generował - na jedno wychodzi). Pliki w zadaniach mogą się powtarzać, więc definiujemy zadanie
jako zestaw plików, a pliki które się powtarzają w różnych zadaniach, oznaczamy jako no_delete. Aplikacja
licząca spodziewa się że będą dostępne pliki pod określonymi nazwami. Więc w definicji zadania, obok każdej
nazwy pliku na serwerze, definiujemy jeszcze nazwę pliku pod jaką to nazwą aplikacja licząca znajdzie ten plik.
Żeby zapewnić jeszcze większą elastyczność, to aplikacja nie używa nazw bezpośrednio, ale używa funkcji API
do przetranslatowania nazw spodziewanych na ścieżki w systemie. Aplikacja wypluwa dane wyjściowe, więc w
definicji tasku powinna być jeszcze nazwa pliku wyjściowego.

Administrator/developer BOINC musi znać odpowiedzi na raptem trzy pytania:
1) Jak w tasku podać ścieżki do plików?
2) Jak ścieżki skojarzyć z nazwami po stronie klienta?
3) Jak w tasku zdefiniować ścieżkę do pliku wyjściowego?
Z taką wiedzą można postawić całkiem zaawansowaną aplikację. Pozostałe
opcje mogą służyć jedynie poprawieniu wydajności czy bezpieczeństwa.
Dlaczego nie mogę opanować tak prostej rzeczy, to nie wiem. Przecież na
co dzień robię na komputerze rzeczy 100 razy trudniejsze.


Cytat: Karlik w 20 Lipiec 2013, 01:59
To jest po prostu ostrzeżenie, żebyś nie używał bezwzględnych ani względnych ścieżek do swoich plików wejściowych/wyjściowych, bo możesz ich nie znaleźć tam gdzie zakładałeś. Po to masz te funkcje rozwiązujące nazwy.
Hmmm... czy na pewno chodzi o taki banał? Aplikacja licząca działa na innym komputerze niż
są zakładane pliki, więc na pewno nie znajdzie plików tam gdzie były zakładane.


Pozdrawiam

krzyszp

Nie wiem, jak w praktyce to wygląda, ale generalnie boinc_resolve_filename() podaje Ci rzeczywistą ścieżkę do plików - wszak faktycznie próbki są ściągane do katalogów "slot" (slot0, slot1, slot2, itd) i mogą być w różnych miejscach na komputerze użytkownika i zawsze w innym miejscu niż sama aplikacja (która jest w katalogu "projects"). Dlatego, jak rozumiem:
1. Aplikacja wykonuje boinc_resolve_filename() aby dostać ścieżkę do WU - więc nie powinieneś używać ścieżek względnych/bezwzględnych.
2. Nie powinieneś zakładać dodatkowych folderów (ale tego nie jestem już pewien).

Jeżeli chcesz zobaczyć jak ma to rozwiązane radioaktywny, to ściągnij sobie źródła, najlepiej jak najwcześniejszej wersji - pierwsze były naprawdę proste.

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

Cytat: krzyszp w 20 Lipiec 2013, 04:24
Nie wiem, jak w praktyce to wygląda, ale generalnie boinc_resolve_filename() podaje Ci rzeczywistą ścieżkę do plików
To samo wywnioskowałem czytając źródła przykładowego programu upper case.

Cytat: krzyszp w 20 Lipiec 2013, 04:24
- wszak faktycznie próbki są ściągane do katalogów "slot" (slot0, slot1, slot2, itd)
Ok, ale skoro jest funkcja boinc_resolve_filename, to ja rozumiem że boinc developera to
zupełnie nie interesuje i zamieszczanie tej informaji w tutorialu jest jest zbędne.



Cytat: krzyszp w 20 Lipiec 2013, 04:24
i mogą być w różnych miejscach na komputerze użytkownika i zawsze w innym miejscu niż sama aplikacja (która jest w katalogu "projects").
Mogą być w różnych miejscach, poza sytuacją gdy się ustawi atrybut copy. Atrybut copy jest
specjalnie dla tych aplikacji które są bez źródeł i nie można ich dostosować do BOINC - ale
to inne zagadnienie.


Cytat: krzyszp w 20 Lipiec 2013, 04:24
Dlatego, jak rozumiem:
1. Aplikacja wykonuje boinc_resolve_filename() aby dostać ścieżkę do WU - więc nie powinieneś używać ścieżek względnych/bezwzględnych.
Rozumiem tak samo i nie używam, ba... ja używam gotowego przykładowego programu w
którym nie zmieniłem ani jednego znaku.


Cytat: krzyszp w 20 Lipiec 2013, 04:24
2. Nie powinieneś zakładać dodatkowych folderów (ale tego nie jestem już pewien).
Też nie wiem czy można. Na razie próbuję uruchomić upper-case bez żadnych
modyfikacji.


Cytat: krzyszp w 20 Lipiec 2013, 04:24
Jeżeli chcesz zobaczyć jak ma to rozwiązane radioaktywny, to ściągnij sobie źródła, najlepiej jak najwcześniejszej wersji - pierwsze były naprawdę proste.
Nie wiem czy to dobry pomysł. Program upper-case chyba jest prostszy i dostarczony jako
wzorcowy przykład.


Pozdrawiam
P.S.
Zacząłem pisać swój frame-work do obliczeń rozproszonych. Idzie mi
szybciej niż konfigurowanie BOINCa. Coś czuję że projekt perft jednak
będzie musiał stanąć na moim frame-worku. Trochę mnie to smuci, bo nie tak
miało być. Z drugiej strony, jeśli mój frame-work ułatwi komuś stawianie
jakiejś aplikacji obliczeniowej, to tylko się cieszyć.


krzyszp

Nie wiem, czy upper case jest łatwiejszy - pierwsza wersja app dla radioaktywnego używała... 2 (słownie dwóch) funkcji BOINC...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

#8
Cytat: krzyszp w 20 Lipiec 2013, 08:07
Nie wiem, czy upper case jest łatwiejszy - pierwsza wersja app dla radioaktywnego używała... 2 (słownie dwóch) funkcji BOINC...
Więc może upper-case jest trudniejszy. Tak czy inaczej, rozumiem kod upper-case. Skoro bez
dokumentacji doszedłem do tego, że ten exit status w panelu administracyjnym ma taką samą
wartość co zwracana w upper-case, to chyba rozumiem go całkiem nieźle.

Problem leży w czym innym. Task się dodaje. Klient ten task pobiera. A aplikacja nie
rozwiązuje nazwy pliku wejściowego z tego tasku. Task chyba dodaję poprawnie,
bo po pierwsze jest w systemie, po drugie program create_work nie zwraca
żadnego błędu, po trzecie task jest pobierany przez klienta. Po prostu aplikacja
licząca nie może otworzyć pliku wejściowego. Prawdopodobnie wywala się
w tym miejscu:


    boinc_resolve_filename(INPUT_FILENAME, input_path, sizeof(input_path));
    infile = boinc_fopen(input_path, "r");
    if (!infile) {
        fprintf(stderr,
            "%s Couldn't find input file, resolved name %s.\n",
            boinc_msg_prefix(buf, sizeof(buf)), input_path
        );
        exit(-1);
    }

Czyli kod jest banalnie prosty. O poprawność powinien dbać klient, powinien ściągnąć
pliki w takie miejsce żeby boinc_fopen mogła bez problemu go otwierać.

Pozdrawiam
[edit]

Takie mam logi w menadżerze:

sob, 20 lip 2013, 09:13:58 | perft | update requested by user
sob, 20 lip 2013, 09:14:01 | perft | Sending scheduler request: Requested by user.
sob, 20 lip 2013, 09:14:01 | perft | Requesting new tasks for CPU
sob, 20 lip 2013, 09:14:02 | perft | [error] Can't parse file info in scheduler reply: file name is empty or has '..'
sob, 20 lip 2013, 09:14:02 | perft | [error] Can't parse file info in scheduler reply: file name is empty or has '..'
sob, 20 lip 2013, 09:14:02 | perft | Scheduler request completed: got 2 new tasks
sob, 20 lip 2013, 09:14:02 | perft | [error] State file error: missing file
sob, 20 lip 2013, 09:14:02 | perft | [error] Can't handle task test4_0 in scheduler reply
sob, 20 lip 2013, 09:14:02 | perft | [error] State file error: missing file
sob, 20 lip 2013, 09:14:02 | perft | [error] Can't handle task test4_1 in scheduler reply


Nazwa pliku nie jest ani pusta ani nie zawiera kropek.


Karlik

Nie wiem jak masz to skonfigurowane, ale ja bym po prostu zobaczył co dostaje klient i dlaczego zachowuje się tak a nie inaczej. Może jakoś wireshark pomoże? Z tego co piszesz to debugujesz nie w tym miejscu co trzeba. Klient sam Cię informuje, że nie ma jakiegoś pliku/nie może ściągnąć (może coś z konfiguracją?) a Ty próbujesz rozwiązywać problem w aplikacji liczącej. To tak jakby próbować rozwiązać problem suszy przez lepsze naostrzenie sierpu.

Cytat: mariotti w 20 Lipiec 2013, 02:38Aplikacja licząca działa na innym komputerze niż
są zakładane pliki, więc na pewno nie znajdzie plików tam gdzie były zakładane.
http://sjp.pwn.pl/szukaj/zak%C5%82ada%C4%87 <= 8. znaczenie

mariotti

Cytat: Karlik w 20 Lipiec 2013, 12:04
Nie wiem jak masz to skonfigurowane, ale ja bym po prostu zobaczył co dostaje klient i dlaczego zachowuje się tak a nie inaczej. Może jakoś wireshark pomoże? Z tego co piszesz to debugujesz nie w tym miejscu co trzeba. Klient sam Cię informuje, że nie ma jakiegoś pliku/nie może ściągnąć (może coś z konfiguracją?) a Ty próbujesz rozwiązywać problem w aplikacji liczącej. To tak jakby próbować rozwiązać problem suszy przez lepsze naostrzenie sierpu.
Używam wzorcowej aplikacji z przykładów dostarczonych wraz z BOINC. Chyba ona
nie ma błędów? Problem jest z podaniem plików do tej aplikacji.

Cytat: mariotti w 20 Lipiec 2013, 02:38Aplikacja licząca działa na innym komputerze niż
są zakładane pliki, więc na pewno nie znajdzie plików tam gdzie były zakładane.
http://sjp.pwn.pl/szukaj/zak%C5%82ada%C4%87 <= 8. znaczenie
[/quote]
Ok, rozumiem. Ale odpowiedź jest taka sama jak wyżej: nie działa wzorcowa aplikacja,
nic nie mogłem w niej skopać, bo jej nie zmieniałem.

Pozdrawiam

Karlik

Cytat: mariotti w 20 Lipiec 2013, 15:13Używam wzorcowej aplikacji z przykładów dostarczonych wraz z BOINC. Chyba ona nie ma błędów? Problem jest z podaniem plików do tej aplikacji.
No tak, tylko nie wiem czemu w takim razie piszesz o możliwych miejscach wystąpienia exit(-1) i podajesz fragmenty kodu aplikacji liczącej skoro błąd jest na poziomie klient-serwer a nie klient-aplikacja.

buninek

@mariotti
Mam takie może zaskakujące pytanie. Czy brałeś już udział jako aktywny uczestnik jakiegokolwiek projektu BOINC?
Może warto zacząć od tego. Wbrew pozorom, wiedza o tym, czym kierują się uczestnicy i jak to wszystko działa po stronie klienta jest wskazana, a nawet niezbędna.

mariotti

Cytat: Karlik w 20 Lipiec 2013, 15:36
Cytat: mariotti w 20 Lipiec 2013, 15:13Używam wzorcowej aplikacji z przykładów dostarczonych wraz z BOINC. Chyba ona nie ma błędów? Problem jest z podaniem plików do tej aplikacji.
No tak, tylko nie wiem czemu w takim razie piszesz o możliwych miejscach wystąpienia exit(-1) i podajesz fragmenty kodu aplikacji liczącej skoro błąd jest na poziomie klient-serwer a nie klient-aplikacja.
Ponieważ do bazy danych trafił wpis exit(0xff). Może to przypadek, może coś innego zwróciło -1.
Po prostu ta sama wartość jest w tamtym miejscu w kodzie co w bazie. W sumie to nie wiem
na jakim poziomie jest błąd. Może błąd jest na poziomie klient-serwer, ale uaktywnia się dopier
na poziomie aplikacji liczącej. Nie wiem.
Pozdrawiam

mariotti

Cytat: buninek w 20 Lipiec 2013, 18:12
@mariotti
Mam takie może zaskakujące pytanie. Czy brałeś już udział jako aktywny uczestnik jakiegokolwiek projektu BOINC?
Może warto zacząć od tego. Wbrew pozorom, wiedza o tym, czym kierują się uczestnicy i jak to wszystko działa po stronie klienta jest wskazana, a nawet niezbędna.
Ściągnąłem kiedyś rosetę, policzyłem, odesłałem i mądrzejszy nie jestem. Nie wiem
nada co robię źle.
Pozdrawiam


krzyszp

To jednak może zainstaluj lokalnie managera, podłącz się pod kilka projektów, nawet non-cpu (WuProp, radioaktywny), zobacz jak w praktyce pliki są rozłożone, podejrzyj logi. To może co nieco rozjaśnić.
I jeszcze sprawa  boinc_resolve_filename(INPUT_FILENAME, input_path, sizeof(input_path)); - co podajesz jako argumenty? Może nic?

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

Cytat: krzyszp w 20 Lipiec 2013, 21:31
To jednak może zainstaluj lokalnie managera, podłącz się pod kilka projektów, nawet non-cpu (WuProp, radioaktywny), zobacz jak w praktyce pliki są rozłożone, podejrzyj logi. To może co nieco rozjaśnić.
Nie rozjaśni. Podaje się w resolve_filename plik z sekcji file_ref. Pliki na każdym komputerze
mogą być rozmieszczone inaczej, w każdej wersji mogą być rozmieszczone inaczej.
Nawet jeśli dzięki temu otworzę pliki wejściowe, to na nowym kliencie projekt może się
wysypać.



Cytat: krzyszp w 20 Lipiec 2013, 21:31
I jeszcze sprawa  boinc_resolve_filename(INPUT_FILENAME, input_path, sizeof(input_path)); - co podajesz jako argumenty? Może nic?
Nie zmieniałem programu, czyli podaję:

#define CHECKPOINT_FILE "upper_case_state"
#define INPUT_FILENAME "in"
#define OUTPUT_FILENAME "out"


W szablonie mam właśnie "in" jako file_ref:

<input_template>
    <file_info>
        <number>0</number>
    </file_info>
    <workunit>
        <file_ref>
            <file_number>0</file_number>
            <open_name>in</open_name>
        </file_ref>
    </workunit>
</input_template>


Pozdrawiam

mariotti


A może to nie jest tak głupi pomysł, żeby utworzyć nowego, skrajnie prostego frame-worka
do obliczeń rozproszonych? Może by się udało go jakoś spopularyzować i tym samym
ułatwić życie naukowcom chcącym wykonywać obliczenia rozproszone? Ktoś jakiś czas
temu pisał (chyba Rysiu) że droga do działającego projektu jest długa - wnioskuję z
tego, że nie tylko ja mam masę problemów.

Na pewno jestem w stanie napisać nowoczesny zestaw narzędzi do budowania
projektów bardzo podobnych do BOINC. Mało tego, jestem w stanie napisać to
wszystko tak, żeby potem developer nie musiał się martwić o szereg drobiazgów.
Np. GUI by się programowało tak samo jak w QT, a QT jest dobrze udokumentowane.

Do tego byśmy zrobili kilka przykładowych programów, jakąś stronę www projektu i
może chętni do korzystania by się znaleźli? Problem widzę jedynie w spopularyzowaniu
tego. Musiałby powstać na tym jakiś jeden ważny projekt - pozostałe by się przyłączyły
lawinowo.

Pozdrawiam


Karlik

Cytat: mariotti w 20 Lipiec 2013, 18:25W sumie to nie wiem na jakim poziomie jest błąd. Może błąd jest na poziomie klient-serwer, ale uaktywnia się dopier na poziomie aplikacji liczącej. Nie wiem.
Sam podałeś fragment logu klienta w którym się uaktywnił błąd. Późniejszy zwrot 255 jest zupełnie wtórny.
Sprawdzałeś w ogóle co się ściągnęło do folderu projektu w kliencie? Próbowałeś uruchomić zadanie bez przetwarzania (w sensie - klient przygotowuje slot i kopiuje/generuje odpowiednie pliki, ale nie uruchamia aplikacji)?

Jak chcesz pisać własny framework to nikt Ci chyba nie broni. Tylko musiałoby to mieć naprawdę dużą elastyczność/konfigurowalność, żeby mogło się przyjąć wg mnie, bo każdy ma inne potrzeby i zasoby (jako twórcy projektów).
Co do GUI to akurat najmniej istotny element całego oprogramowania do obliczeń. No może minimalny konfigurator dla użytkownika mógłby się przydać, bo ludzie lubią widzieć "pasek postępu" i móc przeklikać wszystko zamiast wpisywać długie komendy i/lub edytować pliki konfiguracyjne ;)
Chociaż mi tam wystarczyłaby aplikacja konsolowa jeśli projekt by mnie zainteresował :arrr:

mariotti

#19
Cytat: Karlik w 21 Lipiec 2013, 01:39
Sam podałeś fragment logu klienta w którym się uaktywnił błąd. Późniejszy zwrot 255 jest zupełnie wtórny.
Przekopiowałem to co widać w menadżerze, nie mam pojęcia co się dostaje do menadżera, czy
wszystkie logi się dostają, czy są to logi identyczne, czy może jest jeszcze jakaś warstwa pośrednia.
Po prostu jest to element którego nie chcę rozumieć. Ja chcę tylko wrzucić dane na serwer i
potem mieć je dostępna na kliencie. Nic więcej nie powinno mnie interesować.

Do serwera trafia exit code 0xff. Piszesz że jest wtórny, nie wiem co to znaczy że jest wtórny. Po
prostu jakoś tam się dostaje ta wartość -1. Mechanizm przekazywania exit code jest pewnie
bardzo skomplikowany. Na pewno najpierw aplikacja robi z funkcji main return 0xff. Potem tę
wartość dostaje aplikacja która monitoruje/nadzoruje aplikację liczącą. Potem pewnie leci
zapytanie do web serwera. Web serwer odbiera zapytanie, dekoduje SSL, dekoduje parametry
CGI. W końcu web serwer odpala aplikację CGI, chyba to jest ten binarny programik dostarczyny
z serwerem BOINC, ale może to też być najzwyklejszy plik PHP. W tle po stronie serwera
pracują demony BOINC, może program CGI jakoś się komunikuje z tymi demonami. Albo program
CGI, albo demony łączą się z bazą MYSQL. W końcu do bazy danych trafia jakiś wpis. Potencjalnie
na każdym z powyższych etapów może stać się coś, w skutek czego do bazy trafi exit code = 0xff.

Ja nie wiem gdzie i co się stało, i wiedzieć nie chcę. Rozbiór tego mechanizmu na części pierwsze
zajmie mi za dużo czasu. Za to są odpowiedzialni autorzy BOINC. Programista aplikacji liczącej chce z
zestawu plików zrobić zestaw work-units, a następnie oczekuje, że w sposób przezroczysty work-units
znajdą się po stronie aplikacji liczącej. I koniec. Jeśli nie działa, to albo BOINC ma problem, albo z
dokumentacji nie umiem wywnioskować jak to się poprawnie robi. Ale jeśli źle wywnioskowałem, to
dlaczego program dodaje work-unit do bazy i nie wywala błędów? I dlaczego na stronie serwera widać
że jest dodany work-unit? Raczej dodanie przebiega poprawnie. Problem jest w innym miejscu. Ale
w jakim, skoro używam wzorcowej aplikacji po stronie klienta?


Cytat: Karlik w 21 Lipiec 2013, 01:39
Sprawdzałeś w ogóle co się ściągnęło do folderu projektu w kliencie? Próbowałeś uruchomić zadanie bez przetwarzania (w sensie - klient przygotowuje slot i kopiuje/generuje odpowiednie pliki, ale nie uruchamia aplikacji)?
Nie sprawdzałem. Nie wiem jaki to folder, nie wiem jak długo dane są tam trzymane, nie
wiem czy są zaszyfrowane/skompresowane, nie wiem jakie meta-dane są doklejane
do danych, nie wiem czy w trakcie działania aplikacji liczącej dane ulegają zmianie..
Po to jest warstwa abstrakcji, żeby autorzy boinc mogli przechowywać dane w
zupełnie dowolny sposób.


Cytat: Karlik w 21 Lipiec 2013, 01:39
Jak chcesz pisać własny framework to nikt Ci chyba nie broni.
Potrzebuję jakiegoś wsparcia na etapie popularyzowania. Zastanawiam się na
głos, co by musiało się stać, alby:
1) ludzie korzystali z takich narzędzi,
2) wolontariusze ściągali aplikacje liczące i chętnie/licznie wspierali naukowców.
Mogę taki frame-work zrobić tylko na potrzeby tej jednej aplikacji szachowej, ale
nie wiem czy ktoś będzie chciał wspomagać obliczenia, a co dopiero napisać
swoją aplikację, choćby taką o charakterze edukacyjnym.



Cytat: Karlik w 21 Lipiec 2013, 01:39
Tylko musiałoby to mieć naprawdę dużą elastyczność/konfigurowalność, żeby mogło się przyjąć wg mnie,
bo każdy ma inne potrzeby i zasoby (jako twórcy projektów).
W tym aspekcie jestem raczej optymistą. Generalnie każde obliczenia mogą wyglądać tak:
1) wprowadzenie danych wejściowych
2) wykonanie obliczeń
3) odesłanie danych wyjściowych.
Można całkowicie wyeliminować web-serwer i protokół CGI. Cała transmisja bezpośrednio
na gniazdkach z ssl. Zapewni to dużą wydajność. Generalnie programista dostanie
funkcję zwrotną, np. taką:
void compute( inputs , output ) {
}
W tej funkcji będzie mógł robić co chce, a na końcu wyniki wpisze do output. Klient zapisze
outputs na dysku i będzie próbował co jakiś czas odesłać je do serwera.



Cytat: Karlik w 21 Lipiec 2013, 01:39
Co do GUI to akurat najmniej istotny element całego oprogramowania do obliczeń.
No może minimalny konfigurator dla użytkownika mógłby się przydać, bo ludzie lubią widzieć "pasek postępu" i
móc przeklikać wszystko zamiast wpisywać długie komendy i/lub edytować pliki konfiguracyjne ;)
Chociaż mi tam wystarczyłaby aplikacja konsolowa jeśli projekt by mnie zainteresował :arrr:
Aplikacje konsolowe mają swoje zalety, graficzne swoje. Aplikację konsolową łatwiej odpalić gdzieś na
jakimś starszym komputerze, nie trzeba instalować środowiska GUI, łatwiej zrobić na niej przetwarzanie
wsadowe.  Natomiast w graficznej czasami można uzyskać taki efekt, że użytkownik choćby
chciał źle skonfigurować, to mu GUI na to nie pozwoli.

Podstawową konfigurację widzę w ten sposób, że ktoś wskazuje katalogi z plikami. Przy
każdym katalogu oznacza czy są to pliki trwałe czy ulotne. Pliki trwałe klient będzie
próbował zachować do późniejszych obliczeń. Po wczytaniu wszystkich plików do
bazy, będzie trzeba zbudować work-units. Każdy lubi inne narzędzia do tego celu.
Jedni wolą napisać jakiś insert w sqlu, drudzy jakiś plik xml/csv, jeszcze inni wolą
napisać procedurę w jakimś języku programowania - można dać kilka możliwości.

Od razu po zbudowaniu work-unit, na aplikacjach klienckich by się wywoływała
funkcja zwrotna z danymi. Itd itd... znaczną część projektu mam w głowie, a
przynajmniej tak mi się wydaje.

Pozdrawiam
P.S.
Dla pewności zalogowałem się jeszcze do Asteroids i działa u
mnie bez zarzutu. Więc instalację po stronie klienta mam poprawną.



krzyszp

Dlaczego po prostu nie sprawdzisz, co dzieje się z Twoją aplikacją po stronie klienta?
Czy powstaje plik out?
Czy WU jest ściągane w ogóle?
Dlaczego nie dopiszesz error loga do aplikacji? - "Nie mogę znaleźć pliku" więcej mówi niż exit code -1...

Własny framework? Ok, ale zdajesz sobie sprawę, jaki to ogrom pracy, aby było to uniwersalne i atrakcyjne dla "ludu"? Przecież to nie tylko implementacja serwera i klienta, to także strona projektu, może forum, punktacja/prezentacja wyników, może wygaszacz... czyli... BOINC :)

Dalej uważam, że zabierasz się trochę dziwnie do tego i nie są właściwe Twoje argumenty, że coś z BOINC jest nie tak - ponad 100 projektów świadczy o tym, że się da...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Karlik

Ja nie wymagam, żebyś wiedział dokładnie co się dzieje w samym kliencie i/lub serwerze, ale ja czytając tylko ten jeden komunikat z loga Twojego klienta doszedłem do tego, że się niepoprawnie ściąga workunit, więc siłą rzeczy aplikacja licząca nie ma swojego pliku wejściowego (lub nie może się do niego poprawnie odwołać) - więc ostatecznie zwraca -1 (czy też inny kod błędu). Jak dla mnie błąd leży gdzieś w konfiguracji serwera (szeroko rozumianej), więc w sumie masz rację, developera aplikacji liczącej nie obchodzi jak to działa od środka (bo w chwili obecnej bardzo prawdopodobne, że masz działającą aplikację), po prostu nie dostał wejścia, za to administrator ma tu pole do popisu.

Nie wiem jak to wygląda od środka aż tak dokładnie, może faktycznie create_work powinien mieć jakąś walidację przed dodaniem work-unita, ale wg mnie napisanie czegoś takiego graniczy z cudem ze względu na liczbę kombinacji różnych ustawień plików (bo w końcu create_work może nie mieć dostępu do pewnych plików, bo jest uruchamiany lokalnie, ale już po podpięciu pod całość klient ma dostęp - bo przykładowo coś się wygeneruje "w locie" - nie wiem czy to możliwe, ale nie widzę powodów, żeby miało być niemożliwe, teraz trochę gdybam).

Dla ścisłości: nie mam żadnego własnego projektu.

Nie wiem jakie były powody wybrania cgi, ale na pewno bym odpuścił pisanie frame-worka, który korzysta bezpośrednio z gniazd. HTTP zazwyczaj jest przepuszczane bez większych problemów przez domyślne konfiguracje większości firewalli/routerów. Za to jak byś chciał mieć własny protokół to już może być większy problem, szczególnie jakby użytkownik musiał zezwolić na ruch na dziwnych portach, a jak puścisz na porcie 80 coś innego niż http to też część urządzeń może to odfiltrować. Rozwiązanie fajne dla kogoś kto wie o czym mowa, dla przeciętnego użytkownika, który nie ma władzy nad podsiecią w której jest może spowodować niemożność liczenia.

Szopler

sob, 20 lip 2013, 09:14:02 | perft | [error] Can't parse file info in scheduler reply: file name is empty or has '..'
Nadal występuje?

Może '..' oznacza tyle, że nie są podane pełne ścieżki do plików tylko program widzi coś takiego "../nazwa_pliku" zamiast "/home/user/inputfiles/nazwa_pliku"?

mariotti

#23
Cytat: krzyszp w 21 Lipiec 2013, 11:05
Dlaczego po prostu nie sprawdzisz, co dzieje się z Twoją aplikacją po stronie klienta?
Ponieważ nie umiem. Jak mam sprawdzić?

Cytat: krzyszp w 21 Lipiec 2013, 11:05
Czy powstaje plik out?
Gdzie go szukać? Jaką ma nazwę? Kiedy powinien powstać, a kiedy jest automatycznie
usuwany? Nie mam logu "created out file".


Cytat: krzyszp w 21 Lipiec 2013, 11:05
Czy WU jest ściągane w ogóle?
Wiem na ten temat tyle samo co Ty :D Widziałeś te same logi co ja :D Intuicja
podpowiada, że jakby powstał błąd na etapie ściągania, to serwer uznałby to za
zwykłą sytuację, bo błędy sieci są częste, więc nie oznaczałby WU jako
Computation error [3]  z exit code -1.


Cytat: krzyszp w 21 Lipiec 2013, 11:05
Dlaczego nie dopiszesz error loga do aplikacji? - "Nie mogę znaleźć pliku" więcej mówi niż exit code -1...
Bo to jest dopisane do aplikacji, nie wiem tylko gdzie to się powinno wyświetlać. W menadżerze
nie wyświetla się. Jakieś inne miejsce?
O tu jest dopisane:

    boinc_resolve_filename(INPUT_FILENAME, input_path, sizeof(input_path));
    infile = boinc_fopen(input_path, "r");
    if (!infile) {
        fprintf(stderr,
            "%s Couldn't find input file, resolved name %s.\n",
            boinc_msg_prefix(buf, sizeof(buf)), input_path
        ); // Tutaj dokładnie
        exit(-1);
    }


Cytat: krzyszp w 21 Lipiec 2013, 11:05
Własny framework? Ok, ale zdajesz sobie sprawę, jaki to ogrom pracy, aby było to uniwersalne i atrakcyjne dla "ludu"? Przecież to nie tylko implementacja serwera i klienta, to także strona projektu, może forum, punktacja/prezentacja wyników, może wygaszacz... czyli... BOINC :)
Nakład pracy mnie nie martwi. Można rozbić na etapy. Podstawowa wersja raczej by
się pojawiła szybko. Boję się czegoś innego - że niewielu ludzi będzie chciało tego używać i
że nie powstanie na tym żaden inny projekt poza moim.

Cytat: krzyszp w 21 Lipiec 2013, 11:05
Dalej uważam, że zabierasz się trochę dziwnie do tego i nie są właściwe Twoje argumenty, że coś z BOINC jest nie tak - ponad 100 projektów świadczy o tym, że się da...
Wiem że inne projekty działają. Ale mała to pociecha, bo u mnie nie działa
najprostsza aplikacja. I nie wiem co zrobić. Co mam myśleć? WU dodaje
się bez błędów. Używam wzorcowej aplikacji klienckiej. Inne aplikacje
liczące działają. Wzorcowa nie działa. W logach m.in. mam że nazwa pliku
jest pusta albo zawiera kropki - a nie jest prawdą ani jedno, ani drugie.
Ja nie wiem co dalej zrobić, jak ktoś ma jakiś pomysł, to chętnie zrobię.
Ale na części pierwsze na pewno nie będę rozbierał  BOINCa, bo to
może zająć więcej czasu niż napisanie swojego prostego frame-worka.

Pozdrawiam

mariotti

Cytat: Karlik w 21 Lipiec 2013, 15:11
Ja nie wymagam, żebyś wiedział dokładnie co się dzieje w samym kliencie i/lub serwerze, ale ja czytając tylko ten jeden komunikat z loga Twojego klienta doszedłem do tego, że się niepoprawnie ściąga workunit, więc siłą rzeczy aplikacja licząca nie ma swojego pliku wejściowego (lub nie może się do niego poprawnie odwołać) - więc ostatecznie zwraca -1 (czy też inny kod błędu). Jak dla mnie błąd leży gdzieś w konfiguracji serwera (szeroko rozumianej), więc w sumie masz rację, developera aplikacji liczącej nie obchodzi jak to działa od środka (bo w chwili obecnej bardzo prawdopodobne, że masz działającą aplikację), po prostu nie dostał wejścia, za to administrator ma tu pole do popisu.
Tak właśnie uważam. Problem w tym, że nie wiem co ze strony administratora jeszcze trzeba
zrobić, albo co zrobić lepiej. Podejrzewam że źle dodaję WU, ale to podejrzenie też jest
słabe, bo jednak WU jest na serwerze i program dodający nie zwraca żadnych błędów.

Cytat: Karlik w 21 Lipiec 2013, 15:11
Nie wiem jak to wygląda od środka aż tak dokładnie, może faktycznie create_work powinien mieć jakąś walidację przed dodaniem work-unita, ale wg mnie napisanie czegoś takiego graniczy z cudem ze względu na liczbę kombinacji różnych ustawień plików (bo w końcu create_work może nie mieć dostępu do pewnych plików, bo jest uruchamiany lokalnie, ale już po podpięciu pod całość klient ma dostęp - bo przykładowo coś się wygeneruje "w locie" - nie wiem czy to możliwe, ale nie widzę powodów, żeby miało być niemożliwe, teraz trochę gdybam).
Z tego co zauważyłem, to ma walidację bardzo dobrą. Zanim udało mi się
"poprawnie" dodać WU, to create_work informował mnie całkiem precyzyjnie
co zrobiłem źle.

Cytat: Karlik w 21 Lipiec 2013, 15:11
Nie wiem jakie były powody wybrania cgi,
CGI to po prostu dowolny program po stronie serwera, wraz z protokołami
uruchamiania, przekazywania parametrów, itd. To jest rozszerzenie
statycznych plików HTML. Każda strona w PHP to też jest CGI.

Cytat: Karlik w 21 Lipiec 2013, 15:11
ale na pewno bym odpuścił pisanie frame-worka, który korzysta bezpośrednio z gniazd. HTTP zazwyczaj jest przepuszczane bez większych problemów przez domyślne konfiguracje większości firewalli/routerów. Za to jak byś chciał mieć własny protokół to już może być większy problem, szczególnie jakby użytkownik musiał zezwolić na ruch na dziwnych portach, a jak puścisz na porcie 80 coś innego niż http to też część urządzeń może to odfiltrować. Rozwiązanie fajne dla kogoś kto wie o czym mowa, dla przeciętnego użytkownika, który nie ma władzy nad podsiecią w której jest może spowodować niemożność liczenia.
Hmmm. Czyli jak transfer leci po http czy https to więcej routerów przepuszcza... Dobry
argument.

Pozdrawiam

mariotti

Cytat: Szopler w 21 Lipiec 2013, 15:37
sob, 20 lip 2013, 09:14:02 | perft | [error] Can't parse file info in scheduler reply: file name is empty or has '..'
Nadal występuje?
Właśnie nie występował, a ostatnio jak próbowałem dodać następne WU to znowu się
pojawił. Dodaję zawsze tak samo.


Cytat: Szopler w 21 Lipiec 2013, 15:37
Może '..' oznacza tyle, że nie są podane pełne ścieżki do plików tylko program widzi coś takiego "../nazwa_pliku" zamiast "/home/user/inputfiles/nazwa_pliku"?
Tak na początku zrozumiałem, bo by mi do głowy nawet nie przyszło, żeby w nazwie
plików wejściowych używać dwóch kropek. No ale pisze wyraźnie, że to nazwa
pliku ma dwie kropki.

Pozdrawiam

krzyszp

Pisałem chyba dwa razy, żebyś ściągnął źródła aplikacji radioaktywnego... tam właśnie jest tworzony error log (a właściwie log aplikacji, nie tylko błedy) od początku... Przypominam
Exit status pokazuje, że aplikacja zakończyła się porażką, dopisz error log'a w aplikacji i zajrzyj do odpowiedniego "slot" w momencie rozpoczęcia liczenia na kliencie...

Ignorujesz rady, to jak chcesz dojść do czegoś...


Tak, do obejrzenia fragment:
if(err != 0)
    {
if (err != *error) {
fprintf(stderr, "Could not find any of the devices listed in sensors.xml: %s\n", usbErrorMessage(err));
*error = err; //rewriting the "local" error to the global var
}
        return NULL;
    }

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

Cytat: krzyszp w 21 Lipiec 2013, 19:07
Pisałem chyba dwa razy, żebyś ściągnął źródła aplikacji radioaktywnego... tam właśnie jest tworzony error log (a właściwie log aplikacji, nie tylko błedy) od początku... Przypominam
Exit status pokazuje, że aplikacja zakończyła się porażką, dopisz error log'a w aplikacji i zajrzyj do odpowiedniego "slot" w momencie rozpoczęcia liczenia na kliencie...
Ignorujesz rady, to jak chcesz dojść do czegoś...
Tak, do obejrzenia fragment:
if(err != 0)
    {
if (err != *error) {
fprintf(stderr, "Could not find any of the devices listed in sensors.xml: %s\n", usbErrorMessage(err));
*error = err; //rewriting the "local" error to the global var
}
        return NULL;
    }

Mogę ściągnąć, ale taki sam sposób logowania ma upper-case. Też
wysyła przy pomocy fprintf na stderr:

fprintf(stderr, "%s Couldn't find input file, resolved name %s.\n", boinc_msg_prefix(buf, sizeof(buf)), input_path );


Nie wiem gdzie te logi są zapisywane i co
je przechwytuje. Co to jest odpowiedni slot? W menadżerze nie
mam logu:  "%s Couldn't find input file, resolved name %s.\n".

Czyli albo problem nie polega na tym, że aplikacja nie może znaleźć input file, albo
nie wiem gdzie szukać tych logów. Nie mam katalogu /var/logs/client-boinc.

Pozdrawiam

Szopler

Szukaj w /var/lib/boinc-client

mariotti

Cytat: Szopler w 21 Lipiec 2013, 21:33
Szukaj w /var/lib/boinc-client
Tam nie mam błędu że nie udało się rozwiązać nazwy pliku, pasują tylko
jakieś pliki binarne z innych projektów.

root@biglaptop:/var/lib/boinc-client# find . -name "*" -print | xargs grep "resolved"
Plik binarny ./projects/boinc.bakerlab.org_rosetta/minirosetta_3.46_x86_64-pc-linux-gnu pasuje do wzorca
Plik binarny ./projects/asteroidsathome.net_boinc/period_search_10100_x86_64-pc-linux-gnu pasuje do wzorca
root@biglaptop:/var/lib/boinc-client#


Nie wiem czy to jest slot projektu perft, ale jeśli tak, to jest on pusty:

root@biglaptop:/var/lib/boinc-client/projects/perft.computers-chess.com# ls -l
razem 0


Plików które mają w ścieżce "perft" trochę jest

root@biglaptop:/var/lib/boinc-client# find . -name "*perft*"
./statistics_perft.computers-chess.com.xml
./notices/feeds_perft.computers-chess.com.xml
./notices/perft.computers-chess.com_notices.php.xml
./notices/archive_perft.computers-chess.com_notices.php.xml
./projects/perft.computers-chess.com
./sched_request_perft.computers-chess.com.xml
./master_perft.computers-chess.com.xml
./account_perft.computers-chess.com.xml
./sched_reply_perft.computers-chess.com.xml


Przejrzałem niektóre, nie widzę nic interesującego.
Pozdrawiam

krzyszp

#30
Cytat: mariotti w 21 Lipiec 2013, 22:09
Nie wiem czy to jest slot projektu perft, ale jeśli tak, to jest on pusty:

root@biglaptop:/var/lib/boinc-client/projects/perft.computers-chess.com# ls -l
razem 0

No i widzisz - w ogóle nie ściąga aplikacji liczącej z serwera...

Edit:
To nie jest slot, to jest katalog aplikacji... Do niego jest odpowiedni katalog slot w innym miejscu, znajdź na dysku wszystkie foldery ze "slot" w nazwie, to zobaczysz, gdzie są WU...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

Cytat: krzyszp w 21 Lipiec 2013, 22:13
No i widzisz - w ogóle nie ściąga aplikacji liczącej z serwera...
Może ściągnął i skasował? Widziałem kilka razy jakiś log, że ją pobiera.

Co trzeba zrobić żeby ściągał? Aplikację na serwerze dodałem. Potem
podpisałem wersję i dodałem wersję.

Pozdrawiam


krzyszp

Cytat: mariotti w 21 Lipiec 2013, 22:19
Cytat: krzyszp w 21 Lipiec 2013, 22:13
No i widzisz - w ogóle nie ściąga aplikacji liczącej z serwera...
Może ściągnął i skasował? Widziałem kilka razy jakiś log, że ją pobiera.
Pozdrawiam
Dopóki nie usuniesz projektu z managera, dopóty wszystko w katalogu "projects" zostaje, więc to nie to...
NIE pobiera Ci aplikacji z serwera...

Edit:
A Ty na pewno dodałeś projekt w managerze? Ile WU wygenerowałeś, może inni ściągnęli Twoje testowe WU zanim Ty zdążyłeś?

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

Cytat: krzyszp w 21 Lipiec 2013, 22:22
Dopóki nie usuniesz projektu z managera, dopóty wszystko w katalogu "projects" zostaje, więc to nie to...
NIE pobiera Ci aplikacji z serwera...
No dobra, dlaczego nie pobiera? Dlaczego nie mam logu że nie może pobrać?
Pozdrawiam


krzyszp

No dobra...

Wybierz z menu Advenced -> Event Log

W managerze, w zakładce Projects wybierz swój projekt i kliknij "Update". obserwuj co wyświetla w Event log. podaj tutaj. (Inne projekty w tym czasie spauzuj).

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

mariotti

Cytat: krzyszp w 21 Lipiec 2013, 22:22
A Ty na pewno dodałeś projekt w managerze? Ile WU wygenerowałeś, może inni ściągnęli Twoje testowe WU zanim Ty zdążyłeś?
Na pewno dodałem projekt. Mam logi z menadżera z tytułem "perft". Najświeższe:

nie, 21 lip 2013, 22:20:07 | perft | update requested by user
nie, 21 lip 2013, 22:20:10 | perft | Sending scheduler request: Requested by user.
nie, 21 lip 2013, 22:20:10 | perft | Not reporting or requesting tasks
nie, 21 lip 2013, 22:20:12 | perft | Scheduler request completed
nie, 21 lip 2013, 22:20:26 | perft | update requested by user
nie, 21 lip 2013, 22:20:27 | perft | Sending scheduler request: Requested by user.
nie, 21 lip 2013, 22:20:27 | perft | Not reporting or requesting tasks
nie, 21 lip 2013, 22:20:28 | perft | Scheduler request completed


Za każdym razem gdy dodawałem jeden WU, to po logach w menadżerze
wnioskowałem że dwa razy próbował go pobrać i dwa razy zakończyło
się błędem. Potem już nie pobierał. Zaraz dodam kolejny WU, zobaczymy...

Pozdrawiam


mariotti

#36
Cytat: krzyszp w 21 Lipiec 2013, 22:27
No dobra...
Wybierz z menu Advenced -> Event Log
W managerze, w zakładce Projects wybierz swój projekt i kliknij "Update". obserwuj co wyświetla w Event log. podaj tutaj. (Inne projekty w tym czasie spauzuj).
Gdy podawałem logi z menadżera to zawsze robiłem tak jak piszesz. Podam zaraz po nowym WU.
Pozdrawiam

Po dodaniu nowego WU takie logi są w menadżerze

nie, 21 lip 2013, 22:31:04 | perft | update requested by user
nie, 21 lip 2013, 22:31:09 | perft | Sending scheduler request: Requested by user.
nie, 21 lip 2013, 22:31:09 | perft | Not reporting or requesting tasks
nie, 21 lip 2013, 22:31:10 | perft | Scheduler request completed
nie, 21 lip 2013, 22:31:19 | perft | update requested by user
nie, 21 lip 2013, 22:31:20 | perft | Sending scheduler request: Requested by user.
nie, 21 lip 2013, 22:31:20 | perft | Not reporting or requesting tasks
nie, 21 lip 2013, 22:31:22 | perft | Scheduler request completed



Po usunięciu projektu z menadżera i ponownym dodaniu, aplikacja licząca
została pobrana. Czyli jednak poprzednio prawdopodobnie sam skasował, jak
nie było work-units. Pobieranie działa dobrze.

Po usunięciu i ponowny dodaniu projektu, mam takie logi, niewiele z nich
rozumiem:

nie, 21 lip 2013, 22:34:30 | perft | Resetting project
nie, 21 lip 2013, 22:34:30 | perft | Detaching from project
nie, 21 lip 2013, 22:35:11 | perft | Master file download succeeded
nie, 21 lip 2013, 22:35:16 | perft | Sending scheduler request: Project initialization.
nie, 21 lip 2013, 22:35:16 | perft | Requesting new tasks for CPU
nie, 21 lip 2013, 22:35:17 | perft | [error] Can't parse file info in scheduler reply: file name is empty or has '..'
nie, 21 lip 2013, 22:35:17 | perft | Scheduler request completed: got 1 new tasks
nie, 21 lip 2013, 22:35:17 | perft | [error] State file error: missing file
nie, 21 lip 2013, 22:35:17 | perft | [error] Can't handle task test_0 in scheduler reply
nie, 21 lip 2013, 22:35:19 | perft | Started download of uc1


Pozdrawiam

buninek

Może na 24-48h odpuścić, bo poziom frustracji tylko wzrasta. Podejść ponownie z chłodną głową. Popełniasz gdzieś banalny, a być może kardynalny błąd.
Zajrzeć na strony BOINC i zapoznać się jeszcze 2-3 razy z dotępną dokumentacją.

http://boinc.berkeley.edu/trac/wiki/BoincFiles#Fileproperties
http://boinc.berkeley.edu/trac/wiki/JobSubmission
http://boinc.berkeley.edu/trac/wiki/JobTemplates

Zaorać tymczasowy projekt i spróbować ponownie wszystko na spokojnie.

Jest kilka projektów, które publikują swój kod źródłowy w całości nawet z generatorem zadań.
https://raw.github.com/travisdesell/Subset-Sum/master/server/sss_work_generator.cxx
https://github.com/travisdesell/Subset-Sum

Szopler

5417 http://perft.computers-chess.com/ 2013-07-21 22:32:29 Master file download succeeded
5418 http://perft.computers-chess.com/ 2013-07-21 22:32:34 Sending scheduler request: Project initialization.
5419 http://perft.computers-chess.com/ 2013-07-21 22:32:34 Requesting new tasks for CPU and ATI
5420 perft 2013-07-21 22:32:35 Scheduler request completed: got 0 new tasks
5421 perft 2013-07-21 22:32:35 No tasks sent

TJM

Wygeneruj więcej zadań, żeby można było samemu zobaczyć.
Według mnie masz gdzieś problem w template, albo w create_work i przez to po stronie klienta powstaje 'nadrzędny' błąd "can't parse scheduler reply". Dopóki tego nie naprawisz, na 100% nic nie zadziała. Jest jeszcze opcja błędnej nazwy aplikacji. Jak w ogóle dodawałeś aplikację - zostawiłeś to, co serwer sam robi przy setupie ?

W logu nie widać żadnego ściągania aplikacji, tylko plik od niej, który jest kasowany w momencie jak zadanie nie może być przetworzone. Dlatego go potem nie ma.

P.S. Zadań testowych nigdy nie żałuj, łatwo później się ich pozbyć przez panel 'ops', a quotę po stronie testowych hostów łatwo wyzerować.



W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.