Ist Ubuntu für Multicore-CPUs optimiert?

33

Nutzt Ubuntu Multicore-CPUs (wie es Windows 7 tun soll)?

Mit anderen Worten, ist Multitasking so optimiert, dass Benutzer die Vorteile von 4+ Core-Prozessoren nutzen können?

Paul
quelle
7
Das Wort "optimiert" macht in diesem Fall keinen oder wenig Sinn. Der Linux-Kernel unterstützt Multicore-CPUs, daher auch Ubuntu. Die "Optimierung" ergibt sich aus dem Qualitätsniveau dieser "Unterstützung".
gd1
2
Wenn Sie die höchste Leistung wünschen, können Sie die 64-Bit-Version von Ubuntu ausführen, die bei einigen Aufgaben möglicherweise schneller ist.
Anonym
@Anonymous Wäre das nicht so, weil es mehr RAM verbrauchen kann? 32-Bit kann nur so viele GB RAM (einschließlich aller Grafikkarten usw.) verwenden, benötigt jedoch spezielle CPUs und Betriebssysteme.
Anonymous Penguin

Antworten:

45

Ja, Ubuntu ist seit vielen Jahren für Multicore-CPUs optimiert.

Einige Hintergrundinformationen :

"Version 2.0 (des Linux-Kernels) wurde am 9. Juni 1996 veröffentlicht. Es gab 41 Veröffentlichungen in der Reihe. Das Hauptmerkmal von 2.0 war die SMP- Unterstützung ( dh symmetrische Mehrfachverarbeitung in einem einzigen System) und die Unterstützung für mehrere Prozessortypen . "

imbaer
quelle
4
Grundsätzlich hatte Linux SMP vor dem Abacus. Es hat sogar SSMP2-Unterstützung, aber wir werden nie wissen, was das ist, bis die Technologie Linux einholt.
Luis Alvarado
Natürlich besser als Windows! ;)
Paul
2
@Michael K, der Windows NT-Kernel bietet seit langer Zeit eine gute SMP-Unterstützung. Ob die Anwendungen intelligent genug sind, um mehrere Prozessoren oder Kerne richtig auszunutzen, ist eine völlig andere Frage.
Mircea Chirea
25

Ubuntu ist ein Betriebssystem, eine Linux-Distribution. Ein Betriebssystem besteht aus mehreren Softwarekomponenten wie einem Kernel, Bibliotheken , Diensten / Daemons, Anwendungen usw.

Ubuntu verwendet den Linux-Kernel , der symmetrisches Multiprocessing (SMP) und mehrere Kerne verwendet. Es lässt sich sehr gut von Low-End-Single-CPU-Single-Core-Systemen bis hin zu High-End-Supercomputer-Clustern mit Tausenden von Multi-Core-CPUs skalieren.

Ubuntu wird mit Hunderten von Bibliotheken ausgeliefert, von denen einige Multithread- und thread-sicher sind, andere jedoch nicht. In einigen Fällen ist es sinnvoll, mehrere Threads zu verwenden, in anderen Fällen ist es nicht anwendbar, im Allgemeinen möglich oder nicht sinnvoll.

Ubuntu wird mit Hunderten von Anwendungen ausgeliefert, einige sind für die Verwendung von Multi-Core-CPUs codiert, andere nicht. In einigen Fällen ist es sinnvoll, die Anwendung als solche zu codieren, in anderen Fällen ist dies nicht möglich. Nicht alle Anwendungen, die mehrere Kerne verwenden könnten oder sollten, tun dies.

Beispiel: Für ein Spiel ist es sinnvoll, Multi-Core für Grafik, Audio, Netzwerk, Physik usw. zu verwenden. Für einen Taschenrechner, ein Screenshot-Tool, ein Suduko oder einen Menü-Editor ist es jedoch nicht sinnvoll, Multi-Core-fähig zu sein.

Anonym
quelle
"handelssicher"? Meinten Sie thread-safe?
Flimm
10

Der Kernel von Ubuntu unterstützt seit langer Zeit mehrere CPUs. Es spielt keine Rolle, ob seine Multi-Core- oder Multi-CPU-Prozessoren in einem System perfekt gehandhabt werden.

Eine Sache, die Sie beachten müssen: Nur weil ein System mehrere CPUs / Kerne unterstützt und diese in einem System vorhanden sind, bedeutet dies nicht, dass Ihre Anwendungen automatisch schneller ausgeführt werden. Man erfährt heutzutage oft das Gegenteil, es ist eine Marketing-Sache.

Damit eine Anwendung mehrere CPUs / Kerne gleichzeitig nutzen kann, muss sie erstellt werden, um die Prozesslast auf diese CPUs / Kerne zu verteilen.

Dh: Nehmen wir an, Sie führen etwas so Einfaches wie wordpadWindows aus und öffnen eine große Textdatei damit. Die Ladezeit ist dieselbe, entweder Sie haben 1 CPU oder 1 Million CPUs (für CPUs mit gleicher Busgeschwindigkeit und ähnlicher Architektur) ofc).

Dasselbe gilt für den Linux-Kernel und die Ubuntu-Distribution. Wenn eine Anwendung für einen einzelnen Thread erstellt wird, sind keine weiteren CPUs erforderlich.

Eine Sache, die die Betriebssysteme heutzutage tun, um die Anwendungslast über mehrere CPUs / Kerne zu optimieren, ist die Fähigkeit, einen Prozess auf einem Kern auszuführen, der nicht so stark wie der andere belastet ist, wodurch die Last ausgeglichen und sichergestellt wird, dass mehrere Kerne vorhanden sind Auslastung ist optimal. In der Praxis bringt die Verwendung dieser Technik nur geringe Geschwindigkeitsverbesserungen mit sich.

Wenn Sie wirklich möchten, dass Ihre Kerne leuchten, müssen Sie eine hohe CPU-Auslastung mit Programmen durchführen, die symmetrische Multiprozessor-Funktionen unterstützen , z. B. Videobearbeitung.

Bruno Pereira
quelle
1

Ja, es funktioniert perfekt für mich und ich habe mehrere Prozessoren und Hyper-Threading. Ich habe vergessen, was das bedeutet, aber ich bin mir ziemlich sicher, dass jeder Prozessor mehrere Threads ausführen kann, was mit der Tatsache zusammenfällt, dass jeder Prozessor mehrere Threads hat 2 Adern, scheint ein Problem zu sein. Das einzige Problem, auf das ich bisher gestoßen bin, ist, dass Programme auf Ubuntu dazu neigen, es einzufrieren. Ich habe das seltener gemacht, indem ich die Speicherkapazität verringert habe, da ich 6 GB RAM habe.

barfuß138
quelle
Der Kommentar, den Sie zu hängenden Programmen machen, könnte in einer Frage dazu besser platziert sein. Wenn Sie keine passenden Fragen zu hängenden Programmen finden, können Sie diese selbst stellen und dann beantworten - das ist bei askubuntu in Ordnung. Ich schlage nicht vor , dass Sie die Kommentare hier entfernen - nur, dass Sie das erlernte Wissen an einer Stelle weitergeben, an der es möglicherweise leichter zu finden ist.
John S Gruber