Außerdem ist nicht jeder Kern einer CPU gleich schnell, bei einer bestimmten Aufgabe. Manche können besser Rechnen (+ -) dafür machen die anderen allgemeinere Sachen besser.
??? Halte ich momentan für Quatsch. Hast du dazu irgendwelche Quellen?
In Zukunft mag das vll. irgendwann passieren (zumal die GPU jetzt ja mit drauf wandert, aber die wird ja noch nicht als CPU Kern behandelt. AMD Bulldozer geht vll. ein wenig in die Richtung ist aber noch nicht draußen) aber noch nicht jetzt.
ist definitiv kein quatsch. kann ich aus eigener erfahrung bestätigen. und die unterschiede sind drastisch (teilweise einige prozent). bei meinem quad q6600 z.B. ist kern 3 IMMER der langsamste wenn ich sachen aufteile. falls du es nicht glaubst liefere ich dir in ca. einer stunde eine routine, mit der du das nachvollziehen kannst, in dem mehrere threads gestartet werden und jedem thread per SetThreadAffinityMask ein einzelner kern zugewiesen wird. Dann auslasten und danach lässt sich schön erkennen, welcher kern wieviel geleistet hat.
Dann ist ein PC ein dynamisches System ... was du jetzt mißt, das kann in wenigen Minuten ein anderes Ergebnis liefern.
Teile einfach deine Aufgaben in kleinere Teile auf, laß die rechnen und wenn jemand schneller fertig ist, dann holt der sich halt nochein Teil.
das ist richtig, unterscheidet sich meiner meinung nach aber nur minimal und für meine zwecke völlig ausreichend. Das mit dem "wenn fertig, neue aufgabe holen" will ich in meinem fall halt unbedingt vermeiden, da die eigentliche berechnung, wenn ersteinmal gestartet dezentral stattfindet und erst nach erledigen der aufgabe die daten wieder zusammengeführt werden.
wie auch immer, ich schreibe wie gesagt gerade an einer funktion, die soetwas messen soll.
ich werde sie dann hier posten, vielleicht hilft sie anderen leuten als grundgerüst.
viele grüße