Lothar Jung schrieb:
Die Verteilung der Tasks erfolgt über das Betriebssystem dem Shaduler.
2, 4 ,30 Threads sind die Kapazität die das Betriebssystem dann entsprechend bereitstellt.
Wenn du 2, 4, 30 Threads für das entsprechene Programm (die Engine, über das GUI als Option wählbar) bereitstellst.
Wenn du nichts eigens bereit stellst, teilt das Betriebssystem die geforderte Leistung auf alle Kerne auf (wenn's Leistungen sind, die Multithreading können und machen).
Schau doch endlich in den Hardware- Monitor, der dir nicht nur die Gesamtleistung der CPU sondern die Aufteilung der Leistung auf die einzelnen Kerne anzeigt.
Also nicht den Windows Task Manager, der das Aufschlüsseln der Leistung einzelnen Cores nicht angibt, sonden einen der vielen frei herunterladbaren, die das können, Leistung über die Zeit pro einzelnem Core.
Lothar Jung schrieb:
Wenn die GUI pondern zulässt und die Engine darauf eingestellt ist, wird gepondert.
Ob Ceres während der Berechnung von SF trotzdem pondert, siehst Du an der GPU-Belastung mit nvidiainspector.
Pondert denn jetzt Ceres oder nicht.
Ceres pondert nicht, wenn er sie es nicht soll. Sagt man ihm ihr ihm hingegen übers GUI, dass es (pondern) soll, dann ja, dabei bedient es sich aber anders als Programme, bei denen man die Thread- Anzahl einstellen kann, aller Kerne, die vorhanden sind, in frei wechselndem Ausmaß, wobei (so ziemlich, je nachdem, wie lange du zuschaust) alle immer wieder weit über 50% kommen, nicht alle gleichzeitig, aber alle immer wieder abwechselnd.
Dass auch bei anderen Programmen immer wieder einzelne Kerne 1, 2, 3 Prozent anzeigen und andere aber eben gleichmäßig viel mehr, das ist etwas anderes und normal. Es geht eben nur genau darum, Multithreading- Programme miteinander zu vergleichen.
Da gibt's welche, bei denen kann man eine bestimmte Zahl von Threads einstellen, dann kann man sich (mehr oder weniger) drauf verlassen, die auch wirklich nur mit 2 Threads rechnen, bei Ceres kann man das nicht einstellen, ich argwöhne daher, wenn ich mir die CPU- Leistung pro Kern so anschaue, es bedient sich so vieler Threads, wie ihm ihr ihm gerade angemessen scheinen. Man könnte wieder sagen heimlich, eigentlich ist es mir persönlich aber eher unheimlich, nämlich dahingehend, dass die brav die eingestellten Threadanzahl einhaltenden anderen Engines, wenn sie gleichzeitig rechnen, auch in den paar Threads, auf die sich beschränken, was hergeben müssen von der Leistung, die gerade derselbe Kern erbringen soll und muss, von dem Ceres mal gar nix und mal soviel Leistung abzapft, wie es für die Threads, die gerade nützlich zur Berechnung sind, haben will, und wie der eine arme Kern dann halt gerade noch hat.
Natürlich auch in der Analyse, weil du mal gejubelt hast, man habe mit GPU und CPU zwei Schachrechner in einem PC, das stimmt für LC0, für Ceres nicht, wenn man außer Ceres noch ein weiteres anderes Schachprogramm gleichzeitig laufen lassen will und die Leistung einzelner Threads gezielt auf die vorhandenen Kerne verteilen. Unfair ist es ja nur dann, wenn man mit Pondern dem einen A-B-Programm eine bestimmte Threadzahl zuteilt geringer als die, die es maximal nutzen könnte, und von Ceres einfach hofft, es werde sich auf die restlichen "freien" Threads beschränken, tut's aber nicht, kritisiert es dafür