Thread Performance-Strafe

423
gatorback

Simulationen werden von der Befehlszeile aus aufgerufen. Eine Dual-Core-Box (4 logische CPUs oder Threads) kann (scheinbar) 4 Simulationen gleichzeitig ausführen.

Gibt es einen Denkprozess oder eine Messung, um den Leistungsnachteil für zwei Simulationen pro Kern zu ermitteln? Idealerweise könnte man messen.

-1

1 Antwort auf die Frage

0
Hennes

Es gibt keine klare Antwort darauf, denn es hängt von vielen Dingen ab.

  • Wenn Ihre Berechnungen rein an die CPU gebunden sind, sehen Sie wahrscheinlich einen großen Sprung zwischen 2 Kernen / 2 Stufen auf 2 Kernen / 4 Stufen. Der theoretische Gewinn kann in sehr speziellen Fällen 100% betragen.
  • Wenn die Berechnungen rein speichergebunden sind (z. B. würde bereits ein Profil die maximal zur Verfügung stehende Bandbreite für den Speicher verwenden), haben Sie überhaupt keine Verstärkung.

Es wird komplexer, wenn Sie Cache-Treffer hinzufügen (doppelt so viele Simulationen sind tatsächlich die Hälfte des pro Simulation verfügbaren CPU-Caches), das terminale Verhalten der CPU usw.

Angesichts einer Vielzahl von Programmen in einem typischen System ist es vernünftig, einen etwa 1/3 Geschwindigkeitszuwachs zu beanspruchen, indem Hypertreading auf einer Intel / AMD-CPU aktiviert wird. Das ist also im Allgemeinen von Vorteil. Der Effekt variiert jedoch je nach Programm und es gab Situationen, in denen tatsächlich ein Geschwindigkeitsverlust von 40% gemessen wurde. Daher ist die einzige praktische Antwort, sie in Ihrem spezifischen Setup zu testen.