Aktualności:

Nowy polski projekt BOINC - Universe@Home

Menu główne

Przenoszenie próbek między Managerami

Zaczęty przez Bober, 22 Listopad 2007, 16:49

Bober

Jest możliwe przenoszenie próbek między różnymi Managerami (również znajdującymi się na różnych hostach) bez konieczności kopiowania całego katalogu z BOINC.


UWAGA! Poniższy materiał jest przeznaczony dla bardziej zaawansowanych użytkowników BOINC. Nie ponoszę odpowiedzialności za utracone próbki. :wink:


Na początek przenoszenie tylko wybranej próbki.
To ile plików i wpisów należy przenieść zależy od projektu. Poniżej przykład przeniesienia próbki Enigmy.
Procedura wygląda następująco:
1. W katalogu projektu pojawia się jeden plik dotyczący próbki np. o nazwie 00hc_wu_433088_r0 i jego należy przenieść w to samo miejsce w drugim Managerze
2. Następnie edytujemy pliki client_state.xml obu Managerów, wycinamy i wklejamy do drugiego następujące dane:
- Znajdujemy wpisy dotyczące Enigmy, zaczynające się od
<project>
    <master_url>http://www.enigmaathome.net/</master_url>

Tam szukamy informacji o WU znajdujących się pod tagiem <file_info> (są one przed <app_version>) np.
<file_info>
    <name>00hc_wu_433088_r0</name>
    <nbytes>88.000000</nbytes>
    <max_nbytes>0.000000</max_nbytes>
    <md5_cksum>403b3e1b65f4af6ffb71fc5d58074eed</md5_c        ksum>
    <status>1</status>
    <url>http://enigmaathome.net/download/00hc_wu_4330        88_r0</url>
</file_info>
<file_info>
    <name>hceyz72_2_433088_r0_0_0</name>
    <nbytes>0.000000</nbytes>
    <max_nbytes>1000.000000</max_nbytes>
    <generated_locally/>
    <status>0</status>
    <upload_when_present/>
    <url>http://www.enigmaathome.net/enigma_cgi/file_u        pload_handler</url>
    <signed_xml>
<name>hceyz72_2_433088_r0_0_0</name>
<generated_locally/>
<upload_when_present/>
<max_nbytes>1000</max_nbytes>
<url>http://www.enigmaathome.net/enigma_cgi/file_u        pload_handler</url>
    </signed_xml>
    <xml_signature>
bc168d03cdc30abdc2e11dbd40462f1e4189c6ad881e1b7775        a6544225a02a01
8d4ffc888196d37d22ad945c9048a6383274091a16480333b2        4e83b0abc37ea1
c544a4ff6f49d43dfdb1f175af353198a114cf709fb888ad7d        0053f94b74be56
4e00af4964574187f97db381c2d61b2d81182ef03fe60b0b1f        ece2c937c6a1fa
.
    </xml_signature>
</file_info>

- informacje pod tagami <workunit> i <result>
<workunit>
   <name>hceyz72_2_433088_r0</name>
    <app_name>enigma_m4_naval_2</app_name>
    <version_num>517</version_num>
    <rsc_fpops_est>15128278500000.000000</rsc_fpops_es        t>
    <rsc_fpops_bound>999999999999999.000000</rsc_fpops        _bound>
    <rsc_memory_bound>8388608.000000</rsc_memory_bound        >
    <rsc_disk_bound>8388608.000000</rsc_disk_bound>
    <file_ref>
        <file_name>00hc_wu_433088_r0</file_name>
        <open_name>00hc.resume</open_name>
        <copy_file/>
    </file_ref>
</workunit>

<result>
    <name>hceyz72_2_433088_r0_0</name>
    <final_cpu_time>0.000000</final_cpu_time>
    <exit_status>0</exit_status>
    <state>2</state>
    <platform>windows_intelx86</platform>
    <version_num>517</version_num>
    <wu_name>hceyz72_2_433088_r0</wu_name>
    <report_deadline>1196438332.000000</report_deadlin        e>
    <file_ref>
        <file_name>hceyz72_2_433088_r0_0_0</file_name>
        <open_name>00hc.resume</open_name>
        <copy_file/>
    </file_ref>
</result>

I to wszystko, jeśli próbka nie zaczęła się jeszcze liczyć. Miejsce w które należy wstawić te wpisy łatwo znaleźć przez porównanie zawartości obu client_state.xml. W ten sposób usunęliśmy próbkę z pierwszego Managera tak, że serwer projektu nie jest o tym powiadamiany.


Można przenieść również wszystkie próbki projektu naraz. Wtedy przenosimy wszystkie pliki i wpisy client_state.xml dotyczące próbek, jakie znajdziemy.


Jeśli chcemy przenieść próbki, których liczenie już zaczęliśmy, wtedy powyższą procedurę trzeba uzupełnić o:
- znalezienie i wycięcie katalogu z aktualnie przeliczaną próbką projektu znajdującego się w katalogu BOINC/slots (cyfra/liczba w nazwie)
- przekopiowanie go do slots drugiego Managera
- znalezienia w pliku client_state.xml części dotyczącej aktualnie przeliczanych próbek. Rozpoczyna się ona tagiem <active_task_set>.
- wyciąć część dotyczącą odpowiedniego projektu np.
<active_task>
    <project_master_url>http://abcathome.com/</project          _master_url>
    <result_name>abc_wu_1942591012000_2349000_1</resul          t_name>
    <app_version_num>103</app_version_num>
    <slot>1</slot>
    <checkpoint_cpu_time>976.023453</checkpoint_cpu_ti          me>
    <fraction_done>0.055305</fraction_done>
    <current_cpu_time>1012.005192</current_cpu_time>
    <swap_size>67563520.000000</swap_size>
    <working_set_size>68419584.000000</working_set_siz          e>
    <working_set_size_smoothed>68419584.000000</workin          g_set_size_smoothed>
    <page_fault_rate>0.000000</page_fault_rate>
</active_task>
dla pojedynczej próbki.
i wstawić ją pomiędzy <active_task_set> oraz </active_task_set> w drugim pliku client_state.xml

bartsob5

wyglada to na pracochlonna procedure ale w skrajnych przypadkach moze byc przydatne...

Bober

Bynajmniej. Zajmuje to ok. 2 minuty.

Ponadto, wiadomo co wykasować nawet jak się kopiuje całego BOINCa, żeby nie było problemu zdublowanych próbek.

bartsob5

uwaga!
przy przenoszeniu moze sie zdarzyc ze czas sie wyzeruje. na szczescie w climacie, ktorego przenosilem dzieki temu poradnikowi, czas przeliczenia nie jest az tak wazny...

Bober

Ale możesz powiedzieć dokładniej co się stało?

bartsob5

wykonalem wszystko jak bylo napisane....

jakie sa problemy? przy przenoszeniu kilku duzych probek, nie hurtowo, trzeba uwazac gdzie co sie wkleja w tym xmlu - zdarzylo mi sie raz wkleic pare rzeczy pomiedzy dawnymi znacznikami. niby nic sie nie stalo, ale menadzer usunal pozostale wpisy (nie raz plik mi schudl o 25%) i widzial tylko przeniesiona jednostke.
nie potrzeba przenosic slotow (przynajmniej w przypadku climate) - wyglada na to ze tam sa tylko pliki zapasowe, a przynajmniej nic sie jeszcze nie plumkalo, zweryfikuje to jeszcze jak bede probowal struzki odsylac (narazie mi sie net na lapsie zepsul)

przeniesione probki w menadzerze widnieja jako nierozpoczete, dopiero wymuszenie ich dzialania sprawia, ze uzupelnia sie kolumna 'postęp' (progress) natomiast czas biegnie od nowa. przeliczylem juz dodatkowy 1%, wiec wszystko wyglada na to ze jest ok.

zobaczymy przy odsylaniu, ale nie przewiduje zadnych bledow..

p.s. teraz jako jeden z nielicznych moge sie pochwalic probka climata o postepie 25,5% i czasem 32 minut oraz probka o postepie 21,5% i czasem 3,5 godziny :D

Bober

#6
To jasne, że trzeba uważać. Nie wiem jak jest z climatem, ale ja jak dotąd z przenoszeniem próbek innych projektów nie miałem żadnych problemów.
A nie zapomniałeś przypadkiem o tagach <active_task>?

W przypadku innych projektów trzeba przenosić sloty jeśli są próbki w trakcie przeliczania.

bartsob5

#7
no musze przyznac ze nie doczytalem do konca tego poradnika (mialem wrazenie ze tamto odnosi sie do czegos zupelnie innego) ale intuicyjnie rowniez i to przekopiowalem...

to ze w climacie, w przeciwienstwie do innych projektow, nie trzeba kopiowac slotow to dobra informacja, bo jest mniej roboty (choc i tak jest jej sporo przy client_state.xml)

teraz tak patrze, ze boionc sam sobie zrobic nowe sloty... teraz na kazda probke przypada jeden slot, a ze obecnie mam 4 probki climate to mam 4 sloty.... ciekawie..

Bober

Ja bym mimo wszystko zalecał kopiowanie slotów. Może wtedy nic byś nie pogubił.

Na każdą próbkę przypada jeden slot.