DGL
https://delphigl.com/forum/

NBody C++ Simulation in 4 verschiedenen Programmierstile
https://delphigl.com/forum/viewtopic.php?f=14&t=11614
Seite 1 von 1

Autor:  TAK2004 [ Di Sep 26, 2017 11:59 ]
Betreff des Beitrags:  NBody C++ Simulation in 4 verschiedenen Programmierstile

Dateianhang:
release.jpg
release.jpg [ 90.58 KiB | 48676-mal betrachtet ]


Beim überfliegen hätte ich folgende Optimierungsvorschläge.
Mutex für die Queue entfernen und zu einer lock-free-queue machen, dass erhöht den Durchsatz bei oversubscription und ist generell schneller.
Hier mal meine Multiple Producer-Single Consumer implementierung.
Header
Source
Erstelle für jeden Thread eine eigene Queue, die Page größe aligned ist(default 4096). Damit sorgst du dafür, dass der Kern, auf dem der Thread läuft, nicht beim einfügen und entfernen sich mit anderen Kernen synchronisieren muss, da sie auf den gleichen Speicherblock arbeiten.
Beim Benchmark empfehle ich dir den ersten Frame zu ignorieren und ein 51. hinzu zu fügen, um Cold-Cache Proleme aus zu klammern.

Zum Code kann ich sagen, einfach zu lesen :)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/