[długie] Wysyłanie wyników i pobieranie jednostek jednocześnie.

Zaczęty przez StarExterminator, 13 Wrzesień 2006, 20:38

StarExterminator

Witam.

Przedstawię problem na przykładzie*:
Od niedawna projekt SIMAP korzysta z aplikacji HMMER która to relatywnie duże jednostki ( ~ 4-6 MB ) liczy w tempie ekspresowym ( ~ 4-6 min ). Mam ustawione pobieranie na zapas ( ~ 6h ). Problem polega na tym, że menadżer BOINC:
    :arrow: cały czas ciągnie nowe jednostki - ale to da się przeżyć ;-)
    :arrow: nie wysyła wykonanych jednostek - lista transferów wypełnia się ukończonymi jednostkami które ... czekają na wyschnięcie źródła jednostek do policzenia w projekcie SIMAP ;-)
"Przyczyną" jest to, że HMMER liczy mniej więcej tyle jednostek/min ile jest w stanie ściągnąć menadżer BOINC w tym samym czasie.

A teraz prawdziwa przyczyna:
BOINC (5.4.11) wrzuca wszystkie transfery do jednej listy. Na dokładkę obsługuje tą listę w pokraczny sposób:
    :arrow: transfery do wysyłki umieszcza na jej początku
    :arrow: po ukończeniu transferu następnym obsługiwanym transferem jest kolejny ( po ukończonym ) na liście ( a nie pierwszy )
Najlepszym rozwiązaniem były by dwie listy - jedna wysyłkowa druga odbiorcza działające niezależnie.
Innym rozwiązaniem ( które mogę sobie sam napisać ) to zmiana obsługi tej listy transferowej tak aby:
    :arrow: menadżer BOINC zawsze zaczyna od pierwszego nieobsłużonego elementu na liście transferów
    :arrow: (lub) ukończone jednostki trafiały ( tak jak nowe jednostki ) na koniec listy transferów

* specjalnie podkreślam - bo problem jest ogólny ;-)

PS. Pytanie ;-) : Czy zgłosić to jako buga? (lub) Czy istnieje proste rozwiązanie tego problemu?
PPS. Ale się naprodukowałem :-)

bartsob5

najprostsze rozwiazanie (ale nienajlepsze i nienajszybsze) to wstrzymywac wszystkie transfery i wznawiac po kolei te konkretne:P

nie nazwalbym tego bugiem, ale faktem jest, ze mozna by zglosic to do developerow BOINCa, ze to moze byc uczazliwe rozwiazanie...

StarExterminator

Od ręcznego nap...wstrzymywania ~ 80 transferów wolę jednak jednorazową modyfikację źródła ;-) ( to chyba C :? ).

Poczekam, może jest jednak inne rozwiązanie.

bartsob5

no to wtedy najlepiej zaciagnac sobie climate'a i zostawic w spokoju transfery:P

aczkolwiek, skoro takie problemy istnieja, to wez to zglos do tych co sie zajmuja pisaniem BOINCa niemalze zawodowo:P

StarExterminator

Ech... najprostszym rozwiązaniem okazało się zrestartowanie daemona BOINCa  :evil:

Pozdrawiam.

bartsob5


StarExterminator

A najdziwniejsze jest to, że długość obliczenia jednostki po restarcie BOINCa ( daaaawno go nie restartowałem ) wzrosła z 5 min do ... 78 min  8O .

Resetuję projekt :evil:

bartsob5

78? to nie jest tak duzo... wez sprawdz czy te 5 minutowe przypadkiem nie generowaly bledow...

PMG

NA stronie autorzy napisali ze ze względu na to ze paczki liczyły siue tak szybko wprowadzili
łuższe ( 1,5 godzinne) paczki.

Więc wsystko ok.

Wikipedia - tam też można czytać o okrętach

StarExterminator

Za przeciętną jednostkę liczącą się ~ 6 min dostawałem ~ 5 punktów ( granted credit: 4.96 && claimed credit: 0.91 ) ... a w tym momencie za jednostkę liczącą się 80 minut dostaje 9 punktów (claimed credit: 13.32 ).

Chciało by się wręcz powiedzieć : "Pier*le - nie robię!" ;-)

Pozdrawiam.