Optimalizovana verze 4.68 (vyvojarska / alfa)
Moderátoři: zdespi, Moderátoři
Optimalizovana verze 4.68 (vyvojarska / alfa)
Dnes jsem vysetril trochu casu a hral si s kompilaci BOINC klienta. Podarilo se mi jej zkompilovat tak, ze benchmarky jsou podstatne vyssi, nez u doposud dostupnych optimalizovanych BOINC verzi, a tedy lepe odpovidaji optimalizaci SETI aplikace. Znamena to, ze i pozadovane kredity lepe odpovidaji skutecnosti (jsou vyssi).
Pouzil jsem neupravovany zdrojovy kod nejnovejsi vyvojarske verze 4.68 (alfa verze ze vcerejska). Vysledny klient boinc.exe je po teto optimalizaci nejen podstatne rychlejsi, ale i velikost souboru je nekolikrat mensi nez jine doposud dostupne optimalizovane verze - ma jen 280 kB (vetsina ostatnich optimalizovanych klientu ma kolem 1MB). Dosahl jsem toho duslednejsi a selektivni optimalizaci (optimalizace na velikost kombinovana s optimalizaci na rychlost v kritickych mistech) + dalsimi nastavenimi kompilatoru a linkeru. Zdrojovy kod nebyl zmenen, a rovnez jsem pouzil jen stadartni oficialni knihovny.
Verze, ktere nabizim k stahnuti byly kompilovany Microsoft C++ Compilerem z Visual Studia 2003 (ktery jsem skutecne zakoupil a mohu tedy kompilovany software legalne distribuovat). Zkousel jsem i beta verzi MSVS 2005, ale bohuzel oficialni zdrojovy kod klienta BOINC je pro tuto verzi zatim nepouzitelny. Ac se mi software podarilo po mnoha upravach nakonec zkompilovat i v teto verzi, vysledny klient mi hazel chyby, takze prozatim jsem to odlozil na led.
Zkousel jsem i ICC (Intel C++ Compiler), ale tam je tez zapotrebi hodne zmen. Pouzil jsem tedy zdrojovy kod od Maverika (Tetsuji Maverick Raj), ktery ty zmeny uz udelal, ale je to jen stara verze 4.27. Navic mam jen zkusebni volnou verzi ICC, takze bych ty vysledne klienty nemohl nikomu dat bez poruseni licencnich podminek. Zatim jsem to tedy taky dal k ledu, i kdyz by se rychlost urcite jeste vyrazne zvysila.
Doufam, ze se dostanu i ke kompilaci SETI aplikace - podle toho, co jsem videl, by se mi mohlo podarit to zkompilovat az o nekolik desitek procent rychleji, nez Maverikova verze. Problem bude ale s tim Intel kompilerem. Mozna i po kompilovani MSVC by to bylo rychlejsi nez Maverikovy verze, ale ICC by byl urcite lepsi.
Zatim jsem to nepsal do fora na BOINCU - abych predesel prilis mnoha dotazum a emailu v pripade nejasnosti, ci problemu, chci to nejdriv beta-testovat s tema z vas, kdo mate chut to vyzkouset. Me to zatim jede bez problemu pul dne na osmi pocitacich (Opterony, Athlon, Sempron, Pentium 4M, Pentia 4, Pentium III).
Udelal jsem jednoduchou download stranku na http://boinc.truxoft.com ale uz jsem nemel silu delat ceskou verzi, tak je to jen v anglictine. Muzete ty soubory volne kopirovat, ale pokud to kdokoli chcete davat na sve stranky, dejte tam jen link na muj server - a to _ne_ primo na soubor, ale na tu stranku tak, aby kazdy, kdo to bude tahat, mel sanci si precist ten popis a ruzna varovani. Pocitam taky, ze soubory budu casteji menit, takze kopirovani by nebylo moc dobre. Link do odkazu na BOINC.cz jsem uz dal.
Pouzil jsem neupravovany zdrojovy kod nejnovejsi vyvojarske verze 4.68 (alfa verze ze vcerejska). Vysledny klient boinc.exe je po teto optimalizaci nejen podstatne rychlejsi, ale i velikost souboru je nekolikrat mensi nez jine doposud dostupne optimalizovane verze - ma jen 280 kB (vetsina ostatnich optimalizovanych klientu ma kolem 1MB). Dosahl jsem toho duslednejsi a selektivni optimalizaci (optimalizace na velikost kombinovana s optimalizaci na rychlost v kritickych mistech) + dalsimi nastavenimi kompilatoru a linkeru. Zdrojovy kod nebyl zmenen, a rovnez jsem pouzil jen stadartni oficialni knihovny.
Verze, ktere nabizim k stahnuti byly kompilovany Microsoft C++ Compilerem z Visual Studia 2003 (ktery jsem skutecne zakoupil a mohu tedy kompilovany software legalne distribuovat). Zkousel jsem i beta verzi MSVS 2005, ale bohuzel oficialni zdrojovy kod klienta BOINC je pro tuto verzi zatim nepouzitelny. Ac se mi software podarilo po mnoha upravach nakonec zkompilovat i v teto verzi, vysledny klient mi hazel chyby, takze prozatim jsem to odlozil na led.
Zkousel jsem i ICC (Intel C++ Compiler), ale tam je tez zapotrebi hodne zmen. Pouzil jsem tedy zdrojovy kod od Maverika (Tetsuji Maverick Raj), ktery ty zmeny uz udelal, ale je to jen stara verze 4.27. Navic mam jen zkusebni volnou verzi ICC, takze bych ty vysledne klienty nemohl nikomu dat bez poruseni licencnich podminek. Zatim jsem to tedy taky dal k ledu, i kdyz by se rychlost urcite jeste vyrazne zvysila.
Doufam, ze se dostanu i ke kompilaci SETI aplikace - podle toho, co jsem videl, by se mi mohlo podarit to zkompilovat az o nekolik desitek procent rychleji, nez Maverikova verze. Problem bude ale s tim Intel kompilerem. Mozna i po kompilovani MSVC by to bylo rychlejsi nez Maverikovy verze, ale ICC by byl urcite lepsi.
Zatim jsem to nepsal do fora na BOINCU - abych predesel prilis mnoha dotazum a emailu v pripade nejasnosti, ci problemu, chci to nejdriv beta-testovat s tema z vas, kdo mate chut to vyzkouset. Me to zatim jede bez problemu pul dne na osmi pocitacich (Opterony, Athlon, Sempron, Pentium 4M, Pentia 4, Pentium III).
Udelal jsem jednoduchou download stranku na http://boinc.truxoft.com ale uz jsem nemel silu delat ceskou verzi, tak je to jen v anglictine. Muzete ty soubory volne kopirovat, ale pokud to kdokoli chcete davat na sve stranky, dejte tam jen link na muj server - a to _ne_ primo na soubor, ale na tu stranku tak, aby kazdy, kdo to bude tahat, mel sanci si precist ten popis a ruzna varovani. Pocitam taky, ze soubory budu casteji menit, takze kopirovani by nebylo moc dobre. Link do odkazu na BOINC.cz jsem uz dal.
Naposledy upravil(a) trux dne ned čer 19, 2005 10:24 am, celkem upraveno 1 x.
Takže moje výsledky.
Athlon XP 2500+ (Barton)
MMX: 1361 5164
P3nonSSE: 1354 5171
P3SSE: 1366 5199
TMRMMX: 1529 3678
Celeron 1Ghz (Tualatin)
MMX: 703 2074
P3nonSSE: 703 2058
P3SSE: 703 2072
TMRMMX: 925 1711
Tak a teď babo raď. Může mi někdo prozradit jak přesně že se to ten kredit počítá a cože je pro mě teda výhodnější? Tetsujiho kompilace která dává vyšší Whetstone, nebo Truxova s vyšším Dhrystone?
Ale jinak skvělá práve Truxi! Ještě trošičku poladit ty desetinný čísla a nemá to chybu
.
Ještě malej návrh na zlepšovák. Umístil bych na web ty klienty do archivu, kterej by zároveň i vyjadřoval cože se v něm skrývá za verzi. Trošičku to ulehčí stahování i testování a můžeš přibalit něco jako Readme ke každýmu. Pak by bylo možný i zrcadlení na jinejch webech...
Athlon XP 2500+ (Barton)
MMX: 1361 5164
P3nonSSE: 1354 5171
P3SSE: 1366 5199
TMRMMX: 1529 3678
Celeron 1Ghz (Tualatin)
MMX: 703 2074
P3nonSSE: 703 2058
P3SSE: 703 2072
TMRMMX: 925 1711
Tak a teď babo raď. Může mi někdo prozradit jak přesně že se to ten kredit počítá a cože je pro mě teda výhodnější? Tetsujiho kompilace která dává vyšší Whetstone, nebo Truxova s vyšším Dhrystone?
Ale jinak skvělá práve Truxi! Ještě trošičku poladit ty desetinný čísla a nemá to chybu
Ještě malej návrh na zlepšovák. Umístil bych na web ty klienty do archivu, kterej by zároveň i vyjadřoval cože se v něm skrývá za verzi. Trošičku to ulehčí stahování i testování a můžeš přibalit něco jako Readme ke každýmu. Pak by bylo možný i zrcadlení na jinejch webech...
-
Blackkarel
- Mírně pokročilý

- Příspěvky: 115
- Registrován: ned pro 26, 2004 2:07 am
- Bydliště: Praha
- Kontaktovat uživatele:
Taky řešení, ale já si to radši sčítnuBlackkarel píše:Nainstaluj si BoincViev a ten ti ukáže kolik ti dává kreditu za hodinu
Za běžnou jednotku bych si měl nárokovat na Athlonu 34,95 oproti 27,72 u TMR, na Celeronu 29,7 oproti 28,22.
Ale ještě jedna věc mi není tak úplně jasná. Benchmark je celkově vyšší, přesto se údajnej čas na spočítání jednotky prodloužill (Boinc Manager, záložka Práce). Předtím u novejch jednotek tvrdil že je sčítnu za 4:49, teď 5:43
- Bugi
- Expert

- Příspěvky: 435
- Registrován: sob zář 04, 2004 10:17 pm
- Bydliště: Holice
- Kontaktovat uživatele:
Benchmark dopadl s touto verzí opravdu dobře. 1095 Whet a 2304 Dhry. Pro srovnání dřívější výsledky.
:
Hmm, on sice phpBB board vklada linky intelignentne automaticky i kdyz to clovek nezada, ale bohuzel je ta intelegence omezena, takze veme vsechno az do pristi mezery. Dik za upozorneni; opravil jsem to.Milda píše:Aha, uplne jsem prehledl, ze soucasti puvodniho linku je i carka za nim - jsem ocas, taky jsem si mohl vsimnout driv
Je docela mozne, ze pro vypocet casu FPOPS (Whetstone) zvyhodnuji vice, protoze ma na kalkulaci jednotky ve skutecnosti take vyssi vliv - nejvice casu pri vypoctu S@H zabere FFT (rychla Fourrierova transformace), ktera pocita v desetinnych cislech. Mohl bych se na presny algoritmus vypoctu casu podivat ve zdrojaku, ale on je to dost jedno. Na rychlost vypoctu klient BOINC nema prakticky zadny vliv - ten probiha v S@H aplikaci.Miras píše:Ale ještě jedna věc mi není tak úplně jasná. Benchmark je celkově vyšší, přesto se údajnej čas na spočítání jednotky prodloužill (Boinc Manager, záložka Práce). Předtím u novejch jednotek tvrdil že je sčítnu za 4:49, teď 5:43To v tomhle případě bere v potaz jen Whetstone?
Jak uz jsem psal, je to kompilovano Microsoft Compilerem, ktery optimializuje mene nez Inteluv. Na rozdil od Tetsuje, komercni licenci k ICC, jako vlastnim k MSVC, nemam, a tudiz nesmim zadne soubory jim kompilovane publikovat. Docela rad bych si ICC koupil, ale je taky o hocne drazssi nez MSVC, tak nevim kdy to bude.Miras píše:Tak a teď babo raď. Může mi někdo prozradit jak přesně že se to ten kredit počítá a cože je pro mě teda výhodnější? Tetsujiho kompilace která dává vyšší Whetstone, nebo Truxova s vyšším Dhrystone?
Jak uz jsem vysvetloval, zrcadleni bych kvuli udrzbe a popisu na me strance prave rad zabranil a nemyslim si, ze je k nemu nejaky duvod. Co se tyce zipu, tak mi pripada nesmyslne zipovat jeden maly soubor; do readme.txt neni co psat - je to uz na webu, ale pokud budu mit i nejakeho S@H nebo jineho klienta, tak to samozrejme udelam.Miras píše:Ještě malej návrh na zlepšovák. Umístil bych na web ty klienty do archivu, kterej by zároveň i vyjadřoval cože se v něm skrývá za verzi. Trošičku to ulehčí stahování i testování a můžeš přibalit něco jako Readme ke každýmu. Pak by bylo možný i zrcadlení na jinejch webech...
Naposledy upravil(a) trux dne ned čer 19, 2005 5:00 pm, celkem upraveno 1 x.
- Bony
- Expert

- Příspěvky: 462
- Registrován: sob čer 11, 2005 6:42 pm
- Bydliště: Neveklov_28let
- Kontaktovat uživatele:
Tak jsem si nahodil tu verzi Generic (dávala mi nejlepší výsledky) a to 603 Whetstone (předtím jsem měl něco kolem 750) a 1814 Dhrystone
(předtím něco kolem 1610) a to na Celeru 800 taktnutý na 900. Takže jedno šlo dolu a druhé výrazně nahoru. Tak uvidím jak se tro projeví na výsledku

Moje hobby http://www.foto-tapety.cz
NOVE VERZE NA SERVERU
Udelal jsem nove verze s jednou malou zmenou. Pro vetsinu z vas to asi nebude zajimave, ale kdo pouziva BoincView na ovladani klientu za firewallem nebo NAT (Network Address Translation) routerem, tak to asi uvita. Boinc klient normalne pouziva port 1043 na komunikaci s BoincView (nebo jinymi RPC programy). Bohuzel je to naprogramovano napevno, takze pokud mate vice nez jeden pocitac za routerem nebo firewallem, tak se casto dostanete jen na jeden. Obcas je sice reseni mozne - napr. propejeni siti tunelem VPN, nebo remapovanim portu na routeru (zdaleka ne na vsech to jde). Ja osbne jsem nutne potreboval ovladat dva poctace za takovym routerem, kde zadne takove reseni nebylo jednoduse mozne. Udelal jsem tedy mensi zmenu do zdrojoveho kodu BOINC klienta. Ted je tedy mozne ten standartni port predefinovat jednoduchym zaznamem v remote_hosts.cfg. Proste se prida tento radek:
# port=1044
(nepouzivat zadne mezery za rovnitkem) Cislo portu muze byt samozrejme i jine - podle toho, co firewall/router propusti.
V mem konkretnim pripade to je pouzito takto:
1) Na vzdalenem konci je NetGear NAT router se dvema PC na adresach 192.168.1.2 a 192.168.1.3.
2) Jednoho klienta ponecham beze zmeny (port 1043)
3) U druheho klienta zmenim port pomoci remote_hosts.cfg na 1044
4) Na routeru nastavim 2 pravidla:
a) presmerovat port 1043 na stanici 192.168.1.2
b) presmerovat port 1044 na stanici 192.168.1.3
5) porty 1043 a 1044 povolim i ve Windows Firewallu na obou pocitacich (u kazdeho jen ten jeho port samozrejme) a pripadne v jinych ochrannych programech (ZoneAlarm, BlackICE,...)
6) Restartuju BOINC klienty
7) Na vlastnim PC, v BoincView zmenim default port 1043 na 1044 u druhe stanice, ktera ma stejnou IP adresu nebo domenove jmeno jako ta prvni
Hotovo - konecne vidim oba pocitace a mohu je ovladat!
trux
Udelal jsem nove verze s jednou malou zmenou. Pro vetsinu z vas to asi nebude zajimave, ale kdo pouziva BoincView na ovladani klientu za firewallem nebo NAT (Network Address Translation) routerem, tak to asi uvita. Boinc klient normalne pouziva port 1043 na komunikaci s BoincView (nebo jinymi RPC programy). Bohuzel je to naprogramovano napevno, takze pokud mate vice nez jeden pocitac za routerem nebo firewallem, tak se casto dostanete jen na jeden. Obcas je sice reseni mozne - napr. propejeni siti tunelem VPN, nebo remapovanim portu na routeru (zdaleka ne na vsech to jde). Ja osbne jsem nutne potreboval ovladat dva poctace za takovym routerem, kde zadne takove reseni nebylo jednoduse mozne. Udelal jsem tedy mensi zmenu do zdrojoveho kodu BOINC klienta. Ted je tedy mozne ten standartni port predefinovat jednoduchym zaznamem v remote_hosts.cfg. Proste se prida tento radek:
# port=1044
(nepouzivat zadne mezery za rovnitkem) Cislo portu muze byt samozrejme i jine - podle toho, co firewall/router propusti.
V mem konkretnim pripade to je pouzito takto:
1) Na vzdalenem konci je NetGear NAT router se dvema PC na adresach 192.168.1.2 a 192.168.1.3.
2) Jednoho klienta ponecham beze zmeny (port 1043)
3) U druheho klienta zmenim port pomoci remote_hosts.cfg na 1044
4) Na routeru nastavim 2 pravidla:
a) presmerovat port 1043 na stanici 192.168.1.2
b) presmerovat port 1044 na stanici 192.168.1.3
5) porty 1043 a 1044 povolim i ve Windows Firewallu na obou pocitacich (u kazdeho jen ten jeho port samozrejme) a pripadne v jinych ochrannych programech (ZoneAlarm, BlackICE,...)
6) Restartuju BOINC klienty
7) Na vlastnim PC, v BoincView zmenim default port 1043 na 1044 u druhe stanice, ktera ma stejnou IP adresu nebo domenove jmeno jako ta prvni
trux
Tak trux už poslal zprávu o svý optimalizaci do celýho DC světa 
Bohužel to nějak zaniklo mezi ostatníma příspěvkama, což je určitě škoda... Takže kdo můžete připište svůj názor i tam, ať se to zviditelní. Nezapoměňte jeho příspěvek ohodnotit pluskem pod ním, až dosáhne určitýho hodnocení bude v přehledu témat zvýrazněnej vykřičníkem, tedy opět hůře přehlídnutelnej
2trux: Doporučil bych ti vytvořit si profil, působí to důvěryhodněji...
Bohužel to nějak zaniklo mezi ostatníma příspěvkama, což je určitě škoda... Takže kdo můžete připište svůj názor i tam, ať se to zviditelní. Nezapoměňte jeho příspěvek ohodnotit pluskem pod ním, až dosáhne určitýho hodnocení bude v přehledu témat zvýrazněnej vykřičníkem, tedy opět hůře přehlídnutelnej
2trux: Doporučil bych ti vytvořit si profil, působí to důvěryhodněji...
- Higgi
- BOINC Guru

- Příspěvky: 603
- Registrován: stř čer 01, 2005 1:32 am
- Bydliště: Klánovice
- Kontaktovat uživatele:
Výsledek pro AMD Athlon XP 1700+@1.49GHz, 512MB RAM@333MHz, deska MSI KT4-V
původní BOINC klient:
Measured floating point speed 907.8 million ops/sec
Measured integer speed 3368.85 million ops/sec
optimalizovaný klient
Measured floating point speed 1054.95 million ops/sec
Measured integer speed 3873.06 million ops/sec
To je moc pěkné
původní BOINC klient:
Measured floating point speed 907.8 million ops/sec
Measured integer speed 3368.85 million ops/sec
optimalizovaný klient
Measured floating point speed 1054.95 million ops/sec
Measured integer speed 3873.06 million ops/sec
To je moc pěkné
Není důležité jak rychle počítáte, ale to, že počítáte.
souhrn vysledku
Tak mi to nedalo a udelal jsem si par testu, snad to bude k uzitku vsem.
Tech testu mam vice, ale jako reprezentativni vysledek dle typu CPU se to snad da pouzit.
Intel P3 Coppermine 773 MHZ
SSE pro P3: 503WS, 1429DS (celkem 1932)
bez SSE: 497WS, 1491DS (celkem 1988)
Intel Celeron (P3) 1333 MHZ
SSE pro P3: 921WS, 2667DS (celkem 3588)
bez SSE: 925WS, 2767DS (celkem 3692)
Duron 1100 MHZ
SSE pro P4: 811WS, 3029DS (celkem 3840)
bez SSE: 818WS, 3092DS (celkem 3910)
AMD XP 1600+, 1400 MHZ
SSE pro P4: 1056WS, 3940DS (celkem 4996)
SSE pro P3: 1065WS, 3999DS (celkem 5064)
bez SSE: 1060WS, 4009DS (celkem 5069)
Sempron 2200+, 1500 MHZ
SSE pro P4: 1127WS, 4195DS (celkem 5322)
SSE pro P3: 1135WS, 4254DS (celkem 5389)
bez SSE: 1130WS, 4263DS (celkem 5393)
Barton 2500+
bez SSE: 1384WS, 5244DS (celkem 6628)
Zkouseno na ruznych systemech Win NT, 98SE, XP.
Barton mi nechtel pod WinNT chodit na jine optimalizaci nez bez SSE
Zaver:
Procesory AMD Sempron, XP, Duron davaji nejlepsi vysledky pri optimalizaci bez SSE, optimalizace SSE pro P3 je tesne za ni. Jine optimalizace nejsou vyhodne.
U CPU Intel P3/Celeron je situace podobna.
Barton nemuzu posoudit.
Tech testu mam vice, ale jako reprezentativni vysledek dle typu CPU se to snad da pouzit.
Intel P3 Coppermine 773 MHZ
SSE pro P3: 503WS, 1429DS (celkem 1932)
bez SSE: 497WS, 1491DS (celkem 1988)
Intel Celeron (P3) 1333 MHZ
SSE pro P3: 921WS, 2667DS (celkem 3588)
bez SSE: 925WS, 2767DS (celkem 3692)
Duron 1100 MHZ
SSE pro P4: 811WS, 3029DS (celkem 3840)
bez SSE: 818WS, 3092DS (celkem 3910)
AMD XP 1600+, 1400 MHZ
SSE pro P4: 1056WS, 3940DS (celkem 4996)
SSE pro P3: 1065WS, 3999DS (celkem 5064)
bez SSE: 1060WS, 4009DS (celkem 5069)
Sempron 2200+, 1500 MHZ
SSE pro P4: 1127WS, 4195DS (celkem 5322)
SSE pro P3: 1135WS, 4254DS (celkem 5389)
bez SSE: 1130WS, 4263DS (celkem 5393)
Barton 2500+
bez SSE: 1384WS, 5244DS (celkem 6628)
Zkouseno na ruznych systemech Win NT, 98SE, XP.
Barton mi nechtel pod WinNT chodit na jine optimalizaci nez bez SSE
Zaver:
Procesory AMD Sempron, XP, Duron davaji nejlepsi vysledky pri optimalizaci bez SSE, optimalizace SSE pro P3 je tesne za ni. Jine optimalizace nejsou vyhodne.
U CPU Intel P3/Celeron je situace podobna.
Barton nemuzu posoudit.

