Wie behandeln verschiedene Linux-Distributionen mehrere Cores und Multi-Threading?

7356
Jonathan

Ich stelle fest, dass ich mich mit dieser Frage bereits als "unvorbereitet" für Hochleistungsarbeitsplätze bezeichnet habe, aber was auch immer, man muss irgendwo anfangen!

Ich würde gerne wissen, wie verschiedene Linux-Distributionen mit mehreren Kernen und Multithreading umgehen, um herauszufinden, welche für eine HPC-Workstation am besten geeignet ist.

Standardmäßig weiß ich, dass Linux mehrere Kerne nutzt, aber hat jemand Verweise auf den Umgang mit Multi-Kernen (auf Englisch, dh ich möchte den Quellcode nicht lesen;)) sowie Leistungsvergleichsdiagramme ( re: Kernauslastung im Laufe der Zeit, Thread-Verteilung, Kompilierzeiten usw.). Ich verstehe, dass Anwendungen auch für die Multi-Core-Unterstützung optimiert werden müssen, aber der erste Schritt besteht darin, das Betriebssystem optimal zu nutzen.

Oder irre ich mich, und ist Linux in dieser Hinsicht inhärent gleich, unabhängig von der Verteilung, und stattdessen wird die Leistung ausschließlich auf der Anwendung basieren?

7
Diese Frage könnte genauso gut betitelt werden. "Beginnen Sie einen Flammenkrieg, über den die Linux-Distribution am besten ist." Um die Frage zu beantworten, brauchen wir etwas mehr als nur "Hochleistung". Ist Ihre Frage wirklich "Unterscheiden sich Distributionen darin, wie sie mit Multithreading umgehen?" dann DIESE Frage stellen, nicht diese. frabjous vor 14 Jahren 1
Ich habe nicht vor, einen Flammenkrieg zu beginnen :( Ich hasse sie genauso wie die nächste praktische Person. Ich werde meine Frage umformulieren. Jonathan vor 14 Jahren 0
Ich dachte, die Frage sei ziemlich gut gestellt worden, dann bin ich alles Wissenswerte und interessiert mich nicht für das Flammen. Es ist eine Frage, die ich gerne beantwortet sehen würde ... invert vor 14 Jahren 0
wez, die Frage hat sich geändert, seit ich meinen Kommentar geschrieben habe, und viel zum Besseren! (Ursprünglich war es so etwas wie "Welche Linux-Distribution ist am besten für Hochleistung?") frabjous vor 14 Jahren 0

4 Antworten auf die Frage

5
Nick

Es wird geringfügige Unterschiede zwischen den Verteilungen geben. Ubuntu verwendet möglicherweise XYZ-Scheduler und Fedora verwendet ABC-Scheduler. Dies führt zu einer Verbesserung um X%. Das größere Problem ist jedoch die Anwendungsunterstützung. Sie können eine Single-Core-CPU oder eine 12-Core-CPU haben, aber wenn die Anwendung Single-Threading ist, erhalten Sie die gleiche Leistung. In dieser Situation würde ich alles verwenden, was mir auf längere Sicht angenehmer war.

Ich dachte, der Scheduler sei Teil des Kernels. Sicher, jemand könnte es ändern, aber das scheint eine Menge Arbeit zu sein. Distros haben oft subtil unterschiedliche Userpace-Sachen, aber wie viele ändern tatsächlich den Kernel selbst? cHao vor 14 Jahren 2
@cHao - Es gibt verschiedene Scheduler, die Sie dem Kernel mitteilen können. ta.speot.is vor 14 Jahren 0
Ihre Antwort ist sehr hilfreich, danke, aber ich mag die Quellen, die Taspeotis unten gibt. Danke an alle für ihre Hilfe! Jonathan vor 14 Jahren 0
@cHao - Der Kernel verfügt über mehrere Planungsoptionen, weil das, was für einige CPU-Anordnungen und -Aufgaben optimal ist, für andere nicht optimal ist. Bei den meisten Standardkernen sind sie alle kompiliert, sodass Sie als Boot-Time-Option zwischen diesen wechseln können. Die meisten Desktop-Distributionen verwenden standardmäßig diejenige, die zum Zeitpunkt der Veröffentlichung dieser Distribution allgemein gehalten wird Desktop-Verwendung. David Spillett vor 14 Jahren 0
3
ta.speot.is

Wie behandeln verschiedene Linux-Distributionen mehrere Cores und Multi-Threading?

Die Planung von Prozessen hängt wirklich vom Kernel ab. Siehe a, b, c und d . Ja, einige dieser Links enthalten Quellcode. Aber es ist nicht wirklich vermeidbar, wenn man sich mit etwas so niedrigem Niveau beschäftigt.

Dies sind großartige Quellen, danke! Jonathan vor 14 Jahren 0
Das ist richtig, die meisten (wenn nicht alle) Distributionen verwenden einen Multicore-ready-Kernel. Der Kernel ist jedoch nicht der einzige Teil des Betriebssystems. Leider sind in den meisten Anwendungen auch die Systemdienstprogramme voll mit veraltetem Single-Core-Code. Manchmal gibt es parallele Versionen von ihnen, und es liegt an der Verteilung, sie unter den Single-Core-Versionen auszuwählen. Im Extremfall könnte ich mir eine Distribution vorstellen, die in ihren Repos nur Multicore-Code erlaubt. Ich denke jedoch, dass es an den wichtigsten Teilen des Systems fehlen würde. Es ist traurig, wenn man bedenkt, dass die ersten Intel Core Duos vor 12 Jahren veröffentlicht wurden. Maciek Łoziński vor 6 Jahren 0
1
harrymc

Linux-Distributionen sind seit Jahren im Kernel via SMP Multi-Core und Multi-Thread.

In diesem Fall ist nicht die Verteilung wichtig, sondern der Kernel. Und da alle großen Distributionen heute auf demselben Kernel basieren, wählen Sie einfach Ihre Wahl.

Diese Website sollte bei der Entscheidung zwischen Linux-Distributionen helfen: Vergleich der Linux-Distributionen .

Danke für die Antwort. Ich benutze Linux jetzt seit fast einem Jahrzehnt, daher habe ich die allgemeinen Unterschiede zwischen den einzelnen Distributionen sehr gut im Griff. Ich hatte vor allem gehofft, mich auf Multi-Core-Aspekte und Leistungskennzahlen zu konzentrieren. Aber ich habe Probleme, wie ich sagen soll, was ich will. Prost! Jonathan vor 14 Jahren 0
In diesem Fall bleiben Sie bei dem, was Sie am besten wissen. harrymc vor 14 Jahren 0
0
Rich Homolka

Obwohl die meisten Distributionen den Stock-Kernel verwenden, gibt es einige, bei denen Unterschiede bestehen, die sich auf bestimmte Computeranforderungen auswirken. Redhat ( http://www.redhat.com/mrg/realtime/ ) und SUSE ( http://www.novell.com/products/realtime/ ) verfügen beide über Echtzeit-Kernel, die sich auf die Zeitplanung der Threads auswirken.