Betrachten Sie zwei Computer mit unterschiedlichen Hardware- und Softwarekonfigurationen. Wenn auf jeder Plattform genau derselbe serielle Navier-Stokes-Code ausgeführt wird, dauert es x- und y-Zeit, um eine Iteration für Computer 1 bzw. 2 auszuführen. In diesem Fall ist die Iterationszeitdifferenz zwischen Computer 1 und Computer 2.
Was könnte die Größe von ? Ein offensichtlicher Kandidat ist die CPU. Meine Hauptfrage ist, ob es andere Faktoren gibt, die Δ in derselben Reihenfolge wie der Hardwareunterschied zwischen CPUs beeinflussen könnten .
performance
iterative-method
navier-stokes
Isopycnale Schwingung
quelle
quelle
Antworten:
Diese Liste ist bei weitem nicht vollständig, aber hoffentlich gibt ihre Größe einen Hinweis auf das Ausmaß möglicher Faktoren. Ich gehe davon aus, dass Sie den Code aus dem Quellcode auf der Plattform Ihrer Wahl kompilieren.
Software
Hardware
Zentralprozessor
Erinnerung
Festplatte
Dies alles ignoriert die kleinen Tricks und Funktionen, die verschiedene Hersteller einschließen, um ihren Chips einen Vorsprung auf dem Markt zu verschaffen. Das große Problem ist jedoch, dass viele spärliche lineare Algebra-Bibliotheken speichergebunden sind. Bei einer Multiplikation mit einer spärlichen Matrix werden viele Daten ohne viele tatsächliche Flops verschoben.
quelle
-march=native
oder die Option icc / ifort verwenden, mit-xHOST
der Optimierungen angewendet werden, die für die zugrunde liegende Architektur spezifisch sind.Zweitens schließt Ihre Frage Unterschiede in der Software ausdrücklich aus. Nach meiner Erfahrung können die Leistungsprämien für eine sorgfältige Optimierung große Faktoren sein. Vergessen Sie also nicht, Softwareprobleme zu berücksichtigen, während Sie Hardwareprobleme in Betracht ziehen. Schließlich kann die Hardware nur die Anweisungen ausführen, die Sie ihr geben, und wenn Sie weniger geben, wird sie früher beendet.
Um dies nicht zu sehr zu erweitern, gibt es für jedes Problem eine zählbare Unendlichkeit von Programmen, die es lösen. Unter diesen brauchen einige weniger Zeit als alle anderen, und das ist eine Untergrenze. Gehen Sie nicht davon aus, dass sich ein Programm an oder sogar in der Nähe dieser Untergrenze befindet, wenn es nicht sorgfältig abgestimmt wurde.
Dieser Link erklärt ausführlich die unorthodoxe Methode, die ich verwende.
quelle