Wie wichtig ist die Auswahl des Betriebssystems für die Leistung von wissenschaftlichem Computercode?

8

Es ist allgemein üblich zu sagen, dass Linux aus guten Gründen schneller ist. Aber wie wichtig ist die Auswahl des Betriebssystems für die Leistung des wissenschaftlichen Computercodes, wie im Titel angegeben? Bei Dingen, an denen das Betriebssystem direkter beteiligt ist (z. B. Spielen oder Rendern von Videos), kann es sicher einen Unterschied geben. Aber wenn ich einige Codes in MATLAB ausführe, PDEs in Julia löse oder mit CUDA eine lineare Algebra auf einer GPU mache: Gibt es tatsächlich einen messbaren Leistungsunterschied zwischen Windows, MacOS und Linux?

Ich frage mich, ob jemand Benchmarks durchgeführt hat, um festzustellen, ob ein solcher Unterschied besteht. Möglicherweise gibt es Unterschiede bei der Verwendung von Software wie MATLAB aufgrund von Unterschieden bei den verwendeten Compilern? Oder sind CUDA-Treiber für ein Betriebssystem messbar schneller als für das andere? Oder stören Betriebssysteme manchmal sehr ähnlich wie das WDDM CUDA-Problem ?

Hinweis: Ich weiß, dass es andere Gründe für die Auswahl eines Betriebssystems gibt, die über den Rahmen dieser Frage hinausgehen. Ich wundere mich speziell über die Leistung.

Chris Rackauckas
quelle
6
Die Leistungsunterschiede zwischen Betriebssystemen bestehen normalerweise in der Prozessplanung, der Festplatten- und Netzwerkleistung (die Dinge, die ein Betriebssystemkern behandeln würde). Da wissenschaftlicher Computercode normalerweise CPU- oder speichergebunden ist, macht er wahrscheinlich nur einen kleinen Unterschied. Für CUDA und Grafik wäre es auch eine Frage, wie viel Aufwand der Anbieter in seine Treiber für jedes Betriebssystem steckt, aber für rechnergebundenen Code wäre es wahrscheinlich auch nicht zu wichtig.
Kirill
Ich gehe davon aus, dass dies der Fall ist, aber ich frage mich, ob jemand einige Experimente durchgeführt hat, um sicherzustellen, dass dies der Fall ist. Ich kann ein Triple-Boot für Windows / MacOS / Linux einrichten und dieselben Skripte vergleichen, um festzustellen, ob dies der Fall ist. Wenn dies jedoch bereits jemand anderes mit einem Multi-Boot getan hat, muss diese Zeit möglicherweise nicht investiert werden.
Chris Rackauckas
2
In Erwägung, was @Kirill erwähnt hat, können verschiedene Betriebssysteme unterschiedliche Steuerungsgranularitäten für die Verwaltung von beispielsweise Prozesspriorität oder NUMA-Knoten (z. B. Steuerung der Speicher- und CPU-Affinität) aufweisen, was sich wiederum auf die Anwendungsleistung auswirken kann.
Njuffa
Während Sie klargestellt haben, dass andere Gründe für die Wahl des Betriebssystems vermieden werden sollten - was in gewisser Weise verständlich ist -, sollten Sie die Stabilität des Betriebssystems als Antwort zulassen. Wenn das OS1 nach 20 Stunden bei 99% der Berechnung abstürzt und alle Berechnungen wiederholt werden müssen, können Sie es als weniger leistungsfähig betrachten als eine etwas langsamere, aber stabile Berechnung unter OS 2.
Jan Hackenberg

Antworten:

2

Grundsätzlich sollte es kaum Unterschiede geben, da die zugrunde liegenden Toolkits normalerweise ähnlich, wenn nicht gleich sind: Bibliotheken, Compiler (und Hardware). In der Praxis kann die Verwendung von "dünnen" Knoten zu Verbesserungen führen. Dies ist keine grafische Benutzeroberfläche, keine E-Mail im Hintergrund oder einer der vielen anderen Prozesse, die ein Betriebssystem möglicherweise hat, um die Benutzererfahrung zu verbessern. Es kann einfacher sein, ein 'Server'-Betriebssystem unter Linux direkt von einer Standard-Distribution aus einzurichten, was zu einem viel schlankeren Computer für die Ausführung eines Gleitkomma-intensiven Codes führen kann. Selbst dann wären die Vorteile nicht sehr auffällig, solange außer dem laufenden Code keine Benutzeraktivität vorhanden ist.

user21387
quelle
2

Ich erinnere mich, dass ich vor zwei oder drei Jahren Statistiken über die Betriebssystemverteilung für die Liste der 500 schnellsten Computer weltweit gelesen habe. Linux / Unix-basierte laufende Computernummer war 498, Windows-basierte 2 und kein MacOS. Leider bin ich nicht wieder zur Statistik gekommen. In dem SuperComputer-Artikel von Wikipedia heißt es nur:

"Obwohl die meisten modernen Supercomputer das Linux-Betriebssystem verwenden, hat jeder Hersteller sein eigenes spezifisches Linux-Derivat, und es gibt keinen Industriestandard, was teilweise darauf zurückzuführen ist, dass die Unterschiede in den Hardwarearchitekturen Änderungen erfordern, um das Betriebssystem für jedes Hardware-Design zu optimieren." .

Auch wenn dieser Artikel nicht die Nummern der Distribution enthält, gibt er Linux-basierten Computern zumindest einen klaren Trend. In einem Bereich, in dem jede Leistung zählt (und das Geld, das für die Anpassung des Systems an die Supercomputerspezifikation benötigt wird, höchstwahrscheinlich nicht, daher gehe ich nicht davon aus, dass die Open-Source-Natur hier der Hauptvorteil ist).

Auf einer eher normalen Workstation verfügt Linux tendenziell auch über ein besseres Ressourcenmanagement, z. B. eine geringere Speichernutzung, und ist tendenziell stabiler. Dies ist jedoch eine persönliche Erfahrung von mir ohne Statistiken und sollte nicht ohne Bestätigung verallgemeinert werden (Win 7 gegen Ubuntu 14.04).

Jan Hackenberg
quelle