Eigener Mini Benchmark

Ph2 X4 920 @ 3,2GHz - XP x86: 59.5579 (14.469 und 21.3797)

kannst ja eventuell noch die zeiten messen ^^

könntest du das programm so schreiben, dass es mehrere Kerne nutzt?

Ich weiß das es nicht ganz einfach ist, ist aber bestimmt möglich :P

@ Dark Mo:

Sicher, dass es 14,1 und 21,3 waren? Das gibt zusammen ~35,4 und nicht 59.5^^

Heute Abend hab ich etwas Zeit, da kann ich dann noch die Zeit in (ms oder sek was wäre besser?) anzeigen lassen. Außerdem werde ich mehrere Threads verwenden, wodurch das Prog. Multi-Cores ausnutzt. Ich bin mir aber noch nicht sicher, wie ich das mache. Soll ich noch 2 weitere Tests machen und dann jeden Test auf 1 Kern laufen lassen oder einfach den selben Test auf einem weiteren Kern laufen lassen, was aber ziemlich wenig sinn machen würde, da dieser Kern dann nur belastet ist, aber eig. keinen Einfluss hat.^^ Ich kann die Rechnungen, die in den einzelnen Tests sind ja nicht aufteilen auf mehrere Kerne, das würde hier keinen Sinn ergeben.
Was noch gehen würde, wäre wenn ich jeden Test auf 2 Kernen laufen lasse und dann den Durchschnitt aus beiden Ergebnissen nehme um so genauere Ergebnisse liefern zu können.

Was meint ihr?
 
hab nochma geschaut: ich hab die "alten" highscores abgeschrieben ^^ hab grad nochma getestet:
attachment.php
also 34.

wegen multicore: am besten wärs vllt, wenn du noch die anzahl der kerne eintippen lässt. also das man die 1 drücken muss, dann die 4 und dann rödelts los (bei nem 4 kerner). dann erstellste soviele threads, wie angegeben wurde (vllt ne sicherung einbauen ala "nich höher wie 6" oder 8 oder so). kA wie man die kernanzahl automatisch auslesen kann *g* joa un dann 4 threads starten, die alle die selbe rechnung machen. als anzeige könnte man dann die ergebnisse pro thread aufzählen, deren gesamtpunkte und nen avg wert. da kann sich jeder seinen wert raussuchen, den er mag ^^ un die zeit vllt eher als ms oder? in ner sek kann der compi ja schon ne menge machen :D

vllt konnt ich dir ja bissl anregung geben :)
 
Also der Task Manager Screen von dir sieht deshalb so aus, weil Win7 die Last eines Kerns auf alle 4 verteilt. Trotzdem kann es nicht mehr als 25% werden.

Das mit dem MultiCore und der Zeit hab ich mir so gedacht:

Jeder Test besitzt 4 Threads, die jeweils den Test für sich ausführen. Dabei wird die benötigte CPU-Zeit für jeden Thread gemessen und der Durchschnitt wird ermittelt.
Dabei muss man wissen, dass die Punkte meines Benchs so gut wie immer gleich sind, auch wenn du nebenher Prime laufen lässt. Denn wenn man die "Zeit" mit clock() misst, wird nur die Zeit gemessen, die wirklich in diesem Teil gebraucht wurde, nicht die gesamte vergangene zeit, inder der Prozzi womöglich noch einige andere Dinge getan hat.
So btt..
Die reale Zeit wird vom ganzen Test gemessen, ergo also allen 4 Threads.
Die CPU-zeit wird, vorausgesetzt die Prozzis haben die selbe Architektur + Cache + Takt etc. immer etwa die selbe sein. Egal ob mit 100 oder 1 Kern. Allerdings braucht 1 Kern logischerweise mehr reale Zeit um die 4 Tests zu berechnen als mehrere Kerne.
Dann werden die Punkte berechnet und der nächste Test steht an.


Das bedeutet also, dass die Punkte am Ende von der CPU-Zeit und von der realen Zeit abhängen. In meinem Bench bewirkt die MultiCore Unterstützung dann eigentlich nur, dass die CPU-Zeit genauer gemessen wird, da, wie gesagt, ein Durchschnitt berechnet wird.
Die Zeit gebe ich dann am besten in ms und in Klammern in Sek an. (Natürlich nicht in gerundeten Sek sondern als Kommazahl. 3,65 Sek ist meiner Meinung nach lesbarer bzw. es ist einfacher sich etwas darunter vorzustellen als unter 3650 ms. Aber ich werde ja beides angeben :)

So, jetzt mache ich mich ans proggen^^

lg


Edit:

Das mit der Kernzahl eintippen ist ne eigentlich gute Sache, aber wenn man dann mehr Threads startet als der Prozzi Kerne hat bleibt die real benötigte Zeit nicht vergleichbar.
ggf. werde ich mir mal anschauen, wie man die kernanzahl bestimmen kann und dadurch die Threads starten.

Edit²: Warum ist dein HG 59P ?
War der schon Standard so eingestellt? Dann hab ich ausversehn nicht die leeren HG Dateien geuploadet sondern die in denen mein HG gespeichert war^^
 
Zuletzt bearbeitet:
joa das hab ich auch scho vermutet (mit den higscores ^^).

kernzahl eintippen war für mich eben insofern ne ganz gute lösung (vom augenschein her) weil die leute ja im performance wahn nur das beste wollen und richtige angaben machen - un eben weil ich ned weis wies automatisch geht :ugly: aber vllt kann man mit der manuellen eingabe auch schön veranschaulichen, wann zuviele threads nix mehr bringen, weil der (kommunikations...)aufwand zu groß wird ^^
 
Mein Q9650 @ 3,6 GHz meldet 54.3136!

@ LuXTuX schau mal auf die Punkte! ;)
 
Zuletzt bearbeitet:
AMD 64 X2 6000+ unter win7 64Bit
Punkte: 48.0321

AMD Athlon II 250 3Ghz unter Ubuntu Server Kernel2.6.32 64Bit
mit dem g++ compiliert gcc 4.4.3
Punkte: 0.0189287 :D
mit wine
Punkte: 71.3828
 
Zuletzt bearbeitet:
So, hab jetzt den Bench 1.2 mit folgenden Neuerungen im Startpost geuploadet:

- MultiCore Unterstützung mit 4 Threads pro Test
- Zeitmessung in Sek
- neues Punktesystem, echte Zeit fließt mit in die Berechnung ein


Ab Morgen bin ich dann eine Woche im Urlaub, also nicht wundern, wenn ich ab morgen nicht mehr antworte^^

Edit: Diesmal sind leere Highscore-Files dabei :)

Edit²: Da C++ von Haus aus kein Multithreading unterstützt, musste ich die WIN API nehmen. Der neue Bench dürfte daher nur auf Windows laufen.
 
Zuletzt bearbeitet:
Nein, da ist kein Rückschritt in der Performance.
Wie ich oben schrieb habe ich die reale Zeit noch in die Berechnung einfließen lassen.
Kann es aber auch wieder rausnehmen, wenn ihr wollt, aber dann bringt die Multi-Core Unterstützung nur genauere Ergebnisse. Das heißt, dass ein Einkerne genauso schnell wäre wie ein 4 Kerner - von der Punktzahl her. Da ein Ein-Kerner aber länger braucht um 4 Threads abzuarbeiten habe ich die real benötigte Zeit mit hinein genommen. Ohne die reale Zeit wird nur die benötige Anzahl an CPU Ticks gemessen - die ist bei selber Architektur, Cache und Takt bei einem Ein-Kerner genauso schnell wie bei einem Mehrkerner.

Was ich seltsam finde ist, dass eure Benchs so schlecht abschneiden. Bei euch benötigen sie wesentlich mehr reale Zeit. Schaut mal bei mir:

attachment.php


Ich werde die Zeitmessung nochmal überarbeiten und ggf. ne andere Funktion verwenden.
Aber ich lass mir was einfallen, wie mehr Punkte mit mehr Kernen rauskommen. Nur lassen sich die einzelnen Rechnungen nicht aufteilen, daher ist das etwas schwierig^^
 
So, hab jetzt die Funktion timeGetTime() benutzt.
Bei mir kommt ein leicht besseres Ergebnis raus wie vorher.
Berichtet mir wies bei euch läuft :)

attachment.php



Der neue Bench ist wieder im Anhang!
 
Irgendetwas scheint mit der realen Zeitmessung bei mir nicht zu stimmen.
Ihr habt bei der Zeit vergleichbare Ergebnisse, aber bei mir ist iwie der Wurm drin :Hmm:
warum das gerade bei mir so ist muss ich noch raus finden.
Solange habe ich den Multi-Bench jetzt wieder mit dem alten Punktesystem hochgeladen, also ohne dass die Zeitmessung mit ein fließt. Allerdings wird die zeit trotzdem angezeigt. Die Multi-Core Unterstützung bewirkt in diesem Fall jetzt nur, dass das Ergebnis genauer Berechnet wird, da eben ein Durchschnittswert aus allen 4 Threads ermittelt wird. Die Performance müsste die selbe sein, wie beim 1-Thread Bench.
 
Zurück