BOINC Benchmark

esquisse

Fleet Captain Special
Mitglied seit
10.02.2003
Beiträge
321
Renomée
18
Standort
Cyberlin
  • SIMAP Race
  • QMC Race
Salut,

ich benutze BOINC 4.05.
Beim Installieren ergab der Benchmark:

Whetstone: 2140 MIPS
Dhrystone: 3774 MIPS

Nun hat BOINC mal wieder befunden, dass er die Leistung des Rechners überprüfen soll
(warum eigentlich?) und das Ergebnis ist:

Whetstone: 2015 MIPS (-5,8%)
Dhrystone: 3543 MIPS (-6,1%)

Er hatte zu dem Zeitpunkt genausowenig/viel zu tun, wie beim ersten Benchmark.
Gelten diese Unterschiede noch als Meßungenauigkeiten?

Mal davon abgesehen, dass sich diese Werte deutlich von Sandra unterscheiden...

Whetstone: 2631 MFLOPS (warum MFLOPS)
Dhrystone: 6550 MIPS

Habe das Gefühl, je länger ich mich mit der Materie beschäftige,
desto weniger verstehe ich sie.

Hoffe auf Aufklärung,
esquisse
 
Den Benchmark von BOINC kannst du vergessen. Das sagt nichts über die Leistung aus. Genausowenig wie Sandra. Du kannst du Geschwindigkeit in s/TS folgendermaßen messen:
Du schreibst dir aus dem Client die Werte CPU time(t1) und Time to Completion(r1) auf.
Dann wartest du eine Zeit (je mehr desto besser) und machst das nochmal (t2 und r2). Dann berechnest du die s/TS mit folgender Formel:

(t2-t1)*(t2+r2)*(t1+r1)/((r1*t2-t1*r2)*788940)
 
Danke andr_gin,

ich habe es skeptisch durchgerechnet
und komme mit der Differenz von meinem Anfangswert
und dem Drittel, welches schon geschafft ist,
verblüffenderweise auf die 2,8 sec/TS,
welche auch schon vor BOINC in etwa meines
Rechenknechtes entspricht.

Interessant fand ich, dass es laut der CP-BOINC-Seite,
am Anfang so 2,70 sec/TS waren und es nun
schrittweise auf 2,85 sec/TS geht.

Dachte, der BOINC-Benchmark wäre mal eine
ernstgemeinte Alternative zu anderen.

Danke Dir für die Aufklärung &
Happy ModellRechnen....
esquisse
 
Ich kann mir nicht vorstellen, dass das irgendeine Bedeutung hätte. Der Client läuft ja im Hintergrund also wird das Ergebnis nie stimmen oder nur in den wenigsten Fällen, wenn es automatisch ausgelöst wurde.

Update: So ich habe einmal für die, die sich die Formel nicht antun wollen einmal ein Excel-File geschrieben, das die Werte berechnet und eine exe Datei, die über die Kommandozeile funktioniert (grafisch ist es mir zu kompliziert).

Anmerkungen:

1.) Die exe-Datei sollte nur über die Kommandozeile gestartet werden und nicht einfach über einen Doppelklick, weil ich vergessen habe am Ende das Programm anzuhalten und sonst verschwindet das Fenster einfach und man sieht nichts :-[

2.) Der Client arbeitet nicht immer ganz gleichmäßig. Er rechnet ein paar TS schneller und dann braucht er wieder für einen länger. Das ist regelmäßig (glaube alle 6 TS) und man sieht es an der geschätzten Zeit, die der Client noch brauchen wird. Diese geht immer auf und ab. Am Anfang mehr zum Schluss eher weniger. Um die Genauigkeit sollte man immer von Hochpunkt zu Hochpunkt messen oder von Tiefpunkt zu Tiefpunkt.

3.) Ich kenne mich beim Programmieren und vor allem BOINC nicht so gut aus, dass ich die TS selber auslese. Es geht also nur manuell, was ein bisschen blöd ist. Wenn einer eine Idee hat, wie ich das besser lösen kann bin ich offen für Vorschläge.





Noch einmal eine kurze Abhandlung, wie ich darauf gekommen bin (nur für interessierte ;D):

Ich muss man aus dem Client die CPU-time am Start (t1) und die verbleibende Zeit am Start (r1) messen.
Nach einiger Zeit (je länger desto besser) muss man die CPU-time am Start(t2) und die verbleibende Zeit(r2) messen.

Dann gelten folgende Formeln:
g1 (Gesamtzeit für das Modell am Start) = t1 + r1
g2 (Gesamtzeit für das Modell am Ende) = t2 + r2

Das ist ganz einfach. Die vorhergesagte Zeit ist die bereits vergangene Zeit plus die Zeit, die das Modell noch brauchen wird.

Dann gilt noch folgendes für den bereits berechneten Anteil:
a1 = t1/g1
a2 = t2/g2

Das dürfte auch nicht all zu schwer sein (einfache Prozentrechnung). Der Anteil ist die schon berechnete Zeit durch die Gesamtzeit. Man könnte das zwar auch gleich aus dem Client entnehmen, aber das wäre bei weitem nicht so genau.

Dann gilt noch folgendes:

rt = t2 - t1

Das ist die Zeit, die der Client gelaufen ist (Endzeit - Anfangszeit).

progress = a2 - a1

Damit kann ich einfach ausrechnen, wieviele Modelle ich in der Zeit gerechnet habe.

Dann habe ich folgende Formel abgeleitet:

speed = progress/rt

Dann setze ich progress und rt in die Formel ein:

speed = (a2-a1)/(t2-t1)

Dann kann ich weiter einsetzen:

speed = ((t2/g2)-(t1/g1))/(t2-t1)

Dann noch die Gesamtzeit einsetzen:

speed = ((t2/(t2-r2)) - (t1/(t1+r1))) / (t2-t1)

Man sieht es hier nicht gut, aber da ist ein Doppelbruch. Ich habe es hier mit ein paar Leerzeichen angedeutet. Den habe ich noch aufgelöst, indem ich mit "(t2+r2)*(t1+r1)" erweitert habe:

speed = (t2*(t1+r1)-t1(t2+r2)) / (t2-t1)*(t2+r2)*(t1+r1)

Das kann man dann ausmultiplizieren und man erhält folgendes:

speed = ((t1*t2) + (r1*t2) - (t1*t2) - (t1*r2)) / ((t2-t1)*(t2+r2)*(t1+r1))

Wie man sieht fällt t1*t2 weg und man erhält folgendes:

speed = ((r1*t2) - (t1*r2)) / ((t2-t1)*(t2+r2)*(t1+r1)) M/s

Die Einheit von speed ist Modelle pro Sekunde vorausgesetzt man hat die Zeiten (t1,t2,r1,r2) vorher auch in Sekunden umgerechnet. Die gesuchte Einheit ist aber s/TS und nicht M/s. Wenn ich also den Kehrwert von speed bilde (Bruch umdrehen), dann erhalte ich s/M und brauche dann nur noch durch die Anzahl an Timesstemps dividieren:

M = 45 (Jahre/Modell) * 365,25 (Tage/Jahr) * 48 (Timestemps/Tag) = 788940 TS

Es gibt hier zwar eine kleine Ungenauigkeit, da in 45 Jahren nicht 11,25 Schaltjahre gibt, sondern entweder 11 oder 12 (bisher noch nicht überlegt), aber diese Ungenauigkeit ist weniger, als 0,05 Promille und kann daher ruhig ignoriert werden.

Ich habe also folgende Formel:

speed = (t2-t1)*(t2+r2)*(t1+r1) / ((r1*t2)-(t1*r2)) * 788940) s/TS
 
Zuletzt bearbeitet:
Original geschrieben von andr_gin
2.) Der Client arbeitet nicht immer ganz gleichmäßig. Er rechnet ein paar TS schneller und dann braucht er wieder für einen länger. Das ist regelmäßig (glaube alle 6 TS) und man sieht es an der geschätzten Zeit, die der Client noch brauchen wird.

Das kann ich mit dem CLI unter Darwin bestätigen:
(ja, es ist meine lahme Kiste)

2zw4_000161238 - PH 1 TS 034724 - 04/12/1812 10:00 - H:M:S=0083:47:55 AVG= 8.69 DLT=35.75
2zw4_000161238 - PH 1 TS 034725 - 04/12/1812 10:30 - H:M:S=0083:47:58 AVG= 8.69 DLT= 3.61
2zw4_000161238 - PH 1 TS 034726 - 04/12/1812 11:00 - H:M:S=0083:48:02 AVG= 8.69 DLT= 3.65
2zw4_000161238 - PH 1 TS 034727 - 04/12/1812 11:30 - H:M:S=0083:48:06 AVG= 8.69 DLT= 3.81
2zw4_000161238 - PH 1 TS 034728 - 04/12/1812 12:00 - H:M:S=0083:48:09 AVG= 8.69 DLT= 3.55
2zw4_000161238 - PH 1 TS 034729 - 04/12/1812 12:30 - H:M:S=0083:48:13 AVG= 8.69 DLT= 3.65
2zw4_000161238 - PH 1 TS 034730 - 04/12/1812 13:00 - H:M:S=0083:48:50 AVG= 8.69 DLT=37.16


Vielleicht trägt es zur allgemeinen Aufklärung bei...
esquisse
 
wie lange muß man denn laufen lassen, bis die 6-TS-Schwankung so weit in den Nachkommastellen verschwunden ist, daß man sie vernachlässigen kann? das hängt auch vom Prozentsatz des bereits gerechneten Models ab, oder?

Übrigens, rechnet das CP-Model nicht mit 12*30=360 Tagen pro Jahr, und komplett ohne Schaltjahre? ich glaube, das stand mal irgendwo...
 
Weis net ob es schon gesagt wurde...

Dhrystone und Whetstone sind reine Integer/Float Benchmarks. Der Speicher spielt dabei erstmal überhauptkeine Rolle.

Dann messen beide Benchmarks unter anderem auch Overheat zB. durch Funktionsaufrufe oder Parameterauswertung, wesswegen man sich einen Kopf machen muss wie man die Benchmarks kompiliert (bei AMBiX ist ja auch ein Dhrystone und Whetstone dabei). Wenn man da alle Optimierungen anstellt bekommt man definitiv falsche Ergebnisse.

Und zu guter letzt gibts vom Dhrystone noch 2 verschiedene Versionen, wobei die 2. geringere Resultate liefert.
 
Original geschrieben von OBrian
wie lange muß man denn laufen lassen, bis die 6-TS-Schwankung so weit in den Nachkommastellen verschwunden ist, daß man sie vernachlässigen kann? das hängt auch vom Prozentsatz des bereits gerechneten Models ab, oder?

Übrigens, rechnet das CP-Model nicht mit 12*30=360 Tagen pro Jahr, und komplett ohne Schaltjahre? ich glaube, das stand mal irgendwo...

Ja ist wirklich so *kopfkratz
Ich habe mir immer eingebildet, dass ich einem einen 31.März gesehen habe. Das Excelsheet ist korrigiert. Die exe kommt wahrscheinlich morgen ;D
 
Zurück
Oben Unten