Optimized Boinc clients for Linux

So, hab jetzt sowohl boinc, als auch den seti-core für amd64 fertig. Wenn ich das ganze Zeugs hier auseinander gewuselt habe, stell ich es zum Download bereit.

So, hier die files:

www.jim-zone.de/puck/boinc_4.11_x86_64-unknown-linux-gnu.bz2
www.jim-zone.de/puck/setiathome_4.7_x86_64-unknown-linux-gnu.bz2

Sind erstmal ohne weitere Optimierungen gebaut. Da das Zeuchs aber von Haus aus schon mit -O3 übersetzt wird, glaube ich nicht, daß sich da noch viel rausholen läßt.


www.jim-zone.de/puck/boinc_4.13_x86_64-unknown-linux-gnu.bz2

Der ist jetzt mit diversen Optimierungen gebaut.
 
Zuletzt bearbeitet:
Original geschrieben von aki
genau, ich habe den compiler mit dementsprechenden parametern gefüttert und losgelegt. ich habe nichts am sourcecode geändert, denn das könnte dann ja unter dem begriff "cheaten" laufen und das ist nicht sinn der sache.

Wenn du semantisch nichts änderst, kannst du auch die sourcen verändern. Dazu gehört dann natürlich eine gehörige Portion Wissen, da man verstehen muß, was der Code überhaupt macht.
 
Inwiefern die 64bit-Version performant ist, hab ich noch gar nicht getestet. Ich hab das Teil erstmal nur übersetzt. Auf den Code will ich später nochmal schauen. Kann also durchaus sein, daß dieses build auch langsamer als die 32bit-Version ist. *noahnung*

PS: Kann mal jemand den seti-core für 32bit-Linux zum download bereit stellen? Ich will mir jetzt zum testen nicht extra ein account anlegen.
 
Zuletzt bearbeitet:
Also nach erstem Test, profitiert der SETI-core praktisch gar nicht von dem 64bit-Modus des K8. Der Geschwindigkeitsvorteil beträgt im Moment ~1%, was man getrost unter der Messungenauigkeit verbuchen kann. Ohne signifikante Änderungen am Code wird da wahrscheinlich auch nicht viel mehr raus kommen. :(
 
Interessant, die 64bit Version liefert zum Teil leicht andere Ergebnisse, als der 32bit Core.

jo@theben:~/seti$ diff -Nru work32/result.sah work-2/result.sah
--- work32/result.sah 2004-11-05 09:11:55.666114084 +0100
+++ work-2/result.sah 2004-11-05 20:55:58.204122840 +0100
@@ -213,8 +213,8 @@
</subband_desc>
</workunit_header>
<pulse>
- <peak_power>0.60585021972656</peak_power>
- <mean_power>0.0019644503481686</mean_power>
+ <peak_power>0.60585010051727</peak_power>
+ <mean_power>0.0019644508138299</mean_power>
<time>2451606.8591618</time>
<ra>14.891588658042</ra>
<decl>28.57</decl>
@@ -228,8 +228,8 @@
<rfi_found>0</rfi_found>
<reserved>0</reserved>
<period>0.10789551585913</period>
- <snr>6.8544130325317</snr>
- <thresh>6.6756291389465</thresh>
+ <snr>6.8544116020203</snr>
+ <thresh>6.6756286621094</thresh>
<score>0</score>
<len_prof>32</len_prof>
<pot length=118 encoding="x-csv">
@@ -239,8 +239,8 @@
</pulse>

<triplet>
- <peak_power>8.3508501052856</peak_power>
- <mean_power>0.0078883105888963</mean_power>
+ <peak_power>8.3509130477905</peak_power>
+ <mean_power>0.0078883040696383</mean_power>
<time>2451606.8592904</time>
<ra>14.89751995747</ra>
<decl>28.57</decl>
@@ -256,8 +256,8 @@
<period>0.54394906759262</period>
</triplet>
<triplet>
- <peak_power>8.5639429092407</peak_power>
- <mean_power>0.0076920292340219</mean_power>
+ <peak_power>8.5639791488647</peak_power>
+ <mean_power>0.0076920483261347</mean_power>
<time>2451606.8592904</time>
<ra>14.89751995747</ra>
<decl>28.57</decl>
@@ -273,7 +273,7 @@
<period>0.54394906759262</period>
</triplet>
<spike>
- <peak_power>22.378434114625</peak_power>
+ <peak_power>22.378492355347</peak_power>
<mean_power>1</mean_power>
<time>2451606.8587484</time>
<ra>14.871418063004</ra>
@@ -289,7 +289,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>23.787316722935</peak_power>
+ <peak_power>23.787218093872</peak_power>
<mean_power>1</mean_power>
<time>2451606.8584377</time>
<ra>14.856922413057</ra>
@@ -305,7 +305,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>22.37334320728</peak_power>
+ <peak_power>22.373485565186</peak_power>
<mean_power>1</mean_power>
<time>2451606.8590591</time>
<ra>14.886452552988</ra>
@@ -321,7 +321,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>22.463420308728</peak_power>
+ <peak_power>22.463331222534</peak_power>
<mean_power>1</mean_power>
<time>2451606.8590591</time>
<ra>14.886452552988</ra>
@@ -337,8 +337,8 @@
<reserved>0</reserved>
</spike>
<gaussian>
- <peak_power>3.1390600204468</peak_power>
- <mean_power>0.52122610807419</mean_power>
+ <peak_power>3.1390695571899</peak_power>
+ <mean_power>0.52122503519058</mean_power>
<time>2451606.8592629</time>
<ra>14.896431365397</ra>
<decl>28.57</decl>
@@ -352,10 +352,10 @@
<rfi_found>0</rfi_found>
<reserved>0</reserved>
<sigma>4.1290321350098</sigma>
- <chisqr>1.354749917984</chisqr>
- <null_chisqr>2.2757415771484</null_chisqr>
+ <chisqr>1.3547633886337</chisqr>
+ <null_chisqr>2.2757618427277</null_chisqr>
<score>0</score>
- <max_power>9.5519409179688</max_power>
+ <max_power>9.5520334243774</max_power>
<pot length=198 encoding="x-csv">
13,63,10,5,12,6,7,5,8,8,2,14,6,24,41,10,22,5,4,20,13,0,12,18,27,12,12,16,
18,9,29,1,1,28,7,2,13,1,1,32,47,96,9,4,4,71,193,127,255,87,35,42,12,28,12,5,22,12,
@@ -364,8 +364,8 @@
</gaussian>

<gaussian>
- <peak_power>3.4272735118866</peak_power>
- <mean_power>0.51789087057114</mean_power>
+ <peak_power>3.4272861480713</peak_power>
+ <mean_power>0.51788979768753</mean_power>
<time>2451606.8592824</time>
<ra>14.897117952021</ra>
<decl>28.57</decl>
@@ -379,10 +379,10 @@
<rfi_found>0</rfi_found>
<reserved>0</reserved>
<sigma>4.1290321350098</sigma>
- <chisqr>1.2755215167999</chisqr>
- <null_chisqr>2.227486371994</null_chisqr>
+ <chisqr>1.2755292654037</chisqr>
+ <null_chisqr>2.2275018692017</null_chisqr>
<score>0</score>
- <max_power>9.5519409179688</max_power>
+ <max_power>9.5520334243774</max_power>
<pot length=206 encoding="x-csv">
13,63,10,5,12,6,7,5,8,8,2,14,6,24,41,10,22,5,4,20,13,0,12,18,27,12,12,16,
18,9,29,1,1,28,7,2,13,1,1,32,47,96,9,4,4,71,193,127,255,87,35,42,12,28,12,5,22,12,
@@ -391,7 +391,7 @@
</gaussian>

<spike>
- <peak_power>23.145040174368</peak_power>
+ <peak_power>23.145071029663</peak_power>
<mean_power>1</mean_power>
<time>2451606.8591561</time>
<ra>14.89130707262</ra>
@@ -407,7 +407,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>22.104408911669</peak_power>
+ <peak_power>22.10443687439</peak_power>
<mean_power>1</mean_power>
<time>2451606.858593</time>
<ra>14.864150850996</ra>
@@ -423,7 +423,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>23.335004507595</peak_power>
+ <peak_power>23.335069656372</peak_power>
<mean_power>1</mean_power>
<time>2451606.858593</time>
<ra>14.864150850996</ra>
@@ -439,7 +439,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>23.518793322897</peak_power>
+ <peak_power>23.518678665161</peak_power>
<mean_power>1</mean_power>
<time>2451606.858593</time>
<ra>14.864150850996</ra>
@@ -455,7 +455,7 @@
<reserved>0</reserved>
</spike>
<spike>
- <peak_power>22.629296483933</peak_power>
+ <peak_power>22.629470825195</peak_power>
<mean_power>1</mean_power>
<time>2451606.858593</time>
<ra>14.864150850996</ra>
@@ -471,7 +471,7 @@
<reserved>0</reserved>
</spike>
<best_spike>
- <peak_power>23.787316722935</peak_power>
+ <peak_power>23.787218093872</peak_power>
<mean_power>1</mean_power>
<time>2451606.8584377</time>
<ra>14.856922413057</ra>
@@ -487,8 +487,8 @@
<reserved>0</reserved>
</best_spike>
<best_gaussian>
- <peak_power>1.8181747198105</peak_power>
- <mean_power>0.75019711256027</mean_power>
+ <peak_power>1.8181700706482</peak_power>
+ <mean_power>0.75019776821136</mean_power>
<time>2451606.8592047</time>
<ra>14.894081202153</ra>
<decl>28.57</decl>
@@ -502,10 +502,10 @@
<rfi_found>0</rfi_found>
<reserved>0</reserved>
<sigma>4.1290321350098</sigma>
- <chisqr>0.31543508172035</chisqr>
- <null_chisqr>0.51278072595596</null_chisqr>
+ <chisqr>0.31543147563934</chisqr>
+ <null_chisqr>0.51277607679367</null_chisqr>
<score>0</score>
- <max_power>4.1736583709717</max_power>
+ <max_power>4.1736550331116</max_power>
<pot length=227 encoding="x-csv">
38,24,34,26,61,101,70,10,34,56,48,61,27,10,46,17,26,32,66,24,87,42,6,30,66,
101,15,46,21,35,55,114,66,98,41,19,18,3,62,110,153,163,152,255,31,225,162,134,125,
@@ -513,8 +513,8 @@
</pot>
</best_gaussian>
<best_pulse>
- <peak_power>0.60585021972656</peak_power>
- <mean_power>0.0019644503481686</mean_power>
+ <peak_power>0.60585010051727</peak_power>
+ <mean_power>0.0019644508138299</mean_power>
<time>2451606.8591618</time>
<ra>14.891588658042</ra>
<decl>28.57</decl>
@@ -528,8 +528,8 @@
<rfi_found>0</rfi_found>
<reserved>0</reserved>
<period>0.10789551585913</period>
- <snr>6.8544130325317</snr>
- <thresh>6.6756291389465</thresh>
+ <snr>6.8544116020203</snr>
+ <thresh>6.6756286621094</thresh>
<score>0</score>
<len_prof>32</len_prof>
<pot length=124 encoding="x-csv">
@@ -538,8 +538,8 @@
</pot>
</best_pulse>
<best_triplet>
- <peak_power>8.5639429092407</peak_power>
- <mean_power>0.0076920292340219</mean_power>
+ <peak_power>8.5639791488647</peak_power>
+ <mean_power>0.0076920483261347</mean_power>
<time>2451606.8592904</time>
<ra>14.89751995747</ra>
<decl>28.57</decl>

Ich hab noch nicht so recht eine Ahnung, woran das liegt. Entweder wurde da was am Code geändert (setiathome_4.02 beim 32bit Core <-> setiathome_4.7 bei der 64bit Version), oder es gibt wirklich semantische Unterschiede der Compilate. Werde da wohl doch mal eine 32bit Version von 4.7 erstellen müssen. :(
Naja, kann ich wenigstens gleich da die Performance vergleichen. Selbst mit schon recht aggressiven Compilerflags gewinnt die 64bit Version nicht dazu. Mal schauen, ob der Code dazu Auskunft geben kann. 8)
 
vielleicht Rundungsfehler, weil FPU durch SSE single precision ersetzt wurde? nur so eine unbedarfte Vermutung... *noahnung*
 
hab zwar eigentlich keine Ahnung wovon ihr hier redet... *noahnung*
mich würde einfach interessieren ob die auf die P4 oder AMD XP Architektur optimierten....sprich mit den entsprechenden Compiler-Werten (flags ???) compilierten Clients die WU's schneller berechnen ???
Cybered
 
wenn du boinc meinst:
nein, weil boinc nicht für die berechnung zuständig ist. das bleibt seti (oder eben den anwendungen der anderen projekte) überlassen.
durch die verbesserten benchmarkwerte werden die claimed credits erhöht, wodurch auch die chance steigt viele credits gutgeschrieben zu bekommen.

optimierte seti-clienten würden units eventuell schneller berechnen, es können aber auch fehler und ungenaue ergebnisse entstehen.
 
Original geschrieben von Cybered
hab zwar eigentlich keine Ahnung wovon ihr hier redet... *noahnung*
mich würde einfach interessieren ob die auf die P4 oder AMD XP Architektur optimierten....sprich mit den entsprechenden Compiler-Werten (flags ???) compilierten Clients die WU's schneller berechnen ???
Cybered

Wage ich zu bezweifeln. Zumindest auf AMD64 haben die verschieden flags keinen Unterschied gebracht, die Zeitunterschiede bei der Abarbeitung der WU lagen alle innerhalb der Messungenauigkeit. Deutliche Verbesserungen werden wahrscheinlich wirklich nur aggressive Optimierungen am Coder bringen. Ich bin im Moment noch mehr am grübeln, wieso der gleiche Code mit unterschiedlichen Compileroptionen verschieden Resultate berechnet. ???
 
wäre auch zu schön gewesen *noahnung*

Ich bin im Moment noch mehr am grübeln, wieso der gleiche Code mit unterschiedlichen Compileroptionen verschieden Resultate berechnet.

Woher wissen die bei Boinc den eigentlich ob es richtig ist was da hinten rauskommt, oder eben nicht. Wenn man verschiedene Ergebnisse bei einer WU hat...das ist schon seltsam...und vielleicht ein Fehler (im System :] ).
Evt solltest du dich mal mit einem aus dem Seti Projekt direkt in Verbindung setzten. die haben doch auch Leute die für den Code zuständig sind...zumel der Source-Code für Seti@home nicht open source ist...ist doch nur Boinc was open source ist...oder ???
Cybered
 
warum wuselt sich dann kein Progger durch den Code und optimiert den. Die Lobeshymnen wären ihm sicher :] ;D
Cybered
 
Original geschrieben von Cybered
warum wuselt sich dann kein Progger durch den Code und optimiert den. Die Lobeshymnen wären ihm sicher :] ;D
Cybered

a) machen das schon ein paar Leute

b) ist das alles andere als trivial; dazu gehören schon gute mathematische Kenntnisse + sehr gute Kenntnisse über die Zielplattform
 
So, hab mal einen optimierten SETI-client hochgeladen (www.jim-zone.de/puck/setiathome_4.7_x86_64-unknown-linux-gnu-2). Der bringt etwa 5% mehr als der andere client. Dabei ist aber immer noch zu beachten, dass die berechneten Ergebnisse von dem 32bit-client abweichen, wofür ich noch immer keine Erklärung habe. Ich bin also für Rückmeldungen dankbar, insbesondere, ob man mit diesem client auch Punkte angerechnet bekommt.
 
es gibt neue optimierte Clienten von Ned Slider von Athlon.MB

OK, the new clients are now available from the download section here

These new clients are dynamically linked meaning you need the required libstdc++ library (version 6) to be present on your system in /usr/lib. If you don't have it, you can also download it from the above site. I know this is a little less convenient than statically linking the required libraries but it does produce a faster client and thus higher benchmark scores

The benchmark scores are now actually faster than the same hardware running Windows XP. For example, my dual boot Win XP/FC1 laptop scores 1121/2586 in Windows and 1261/2674 in Linux with these new clients

I've also made available a greater range of clients optimised for different processors. These now include Athlon, AthlonXP, PIII, P4 and i686 for everything else. Please make sure you use the right client for your processor. For example, the PIII and P4 clients should be significantly faster on their respective hardware than the i686 client. I may add a client specifically for prescott later if anyone wants it.

Enjoy

weitere Info

http://forums.pcper.com/showthread.php?t=364551

der download der clients ist hier

http://www.pperry.f2s.com/

mfg
Sir Ulli
 
So, die Unterschiede zwischen dem 64bit und dem 32bit Client sind offenbar 'normal', so dass ersterer auch bedenkenlos eingesetzt werden kann. Im Moment bin ich noch dabei, da mehr Leistung raus zu kitzeln.
 
Zurück
Oben Unten