Ok, ich kenne das klassische Argument für die Vermeidung von Quad-Cores. Auf Anwendungsebene wurden die meisten Anwendungen nicht für mehrere Kerne geschrieben. Die meisten Desktop-Programme benötigen nicht einmal eine Parallelisierung.
Auf Betriebssystemebene scheint es jedoch offensichtlich, dass das Betriebssystem Prozesse auf die verschiedenen Kerne aufteilt. Wäre das nicht ein Argument für mehr Kerne? Hilft das nicht in vielen Situationen viel? Sie haben ein paar CPU-intensive Aufgaben zu erledigen - diese Prozesse überfrachten möglicherweise jeweils 100% ihrer Kerne, aber ich kann immer noch im Internet surfen und SuperUser-Fragen zu meinem letzten Kern stellen ... richtig?
computer-building
multi-core
Doug T.
quelle
quelle
Antworten:
Das Betriebssystem kann einen einzelnen Single-Thread-Prozess nicht auf mehrere Kerne aufteilen (obwohl es möglicherweise ändert, auf welchem Kern eine Anwendung ausgeführt wird, aber das ist eine andere Frage), es kann jedoch mehrere Prozesse ausführen, von denen jeder auf seinem eigenen Kern ausgeführt wird. Ja, wenn Sie mehrere prozessorintensive Anwendungen im Hintergrund ausführen, ist es wahrscheinlich, dass Sie immer noch einen Ersatzkern haben, der nur wenig oder gar nichts tut, was Sie zum Ausführen anderer Anwendungen verwenden können.
quelle
Der Grund dafür ist, dass das Betriebssystem nicht bestimmen kann, welche Teile des Prozesses parallel ausgeführt werden dürfen und welche nicht. Wenn ein Programm nicht für die Ausführung auf parallelen Kernen ausgelegt ist, können Routinen in der Anwendung vorhanden sein, die so ausgelegt sind, dass sie gleichzeitig nacheinander ausgeführt werden. Dies kann zu allen möglichen Problemen führen (z. B. wenn zwei Routinen denselben Speicherblock verwenden, aber nicht zur selben Zeit ausgeführt werden sollen).
Das Betriebssystem kann für mehrere Prozesse mehrere Kerne verwenden, da dies sowieso der Fall ist. Die Verteilung einer Einzelkernanwendung auf mehrere Kerne führt jedoch zu unerwartetem Verhalten.
quelle
Wenn es darauf ankommt, spielt es keine Rolle, ob ein Prozessor zu 1% oder zu 95% ausgelastet ist (solange er zu 95% stabil ist und keine Spitzenwerte aufweist), werden die Programme so lange mit der gleichen Geschwindigkeit ausgeführt wie es trifft nicht 100%. Unbenutzte CPU-Zyklen werden einfach verschwendet.
Aus diesem Grund verfügt Windows 7 (auf kompatiblen Prozessoren) über eine Technologie, die als "Core-Parken" bezeichnet wird und nicht verwendete Kerne auf Ihrem Computer deaktiviert, um Strom zu sparen.
Single-Thread-Anwendungen werden automatisch auf alternative Kerne übertragen. Ich bin mir nicht sicher, welche Technologie dahinter steckt, aber ich weiß, dass sie recht gut funktioniert.
quelle
Ihre anfänglichen Gefühle sind richtig - es gibt eine negative Neigung zu mehreren Kernen, und es ist nicht wirklich alles, was verdient ist.
Früher, als die meisten Benutzer ihren Desktop-PC nur für einfache Textverarbeitung verwendeten, gab es möglicherweise einen Streit. Heutzutage gibt es jedoch Browser mit mehreren Registerkarten, von denen jede ihren eigenen Prozess ausführt (verchromt, dh für Registerkarten wird eine Trennung auf Prozessebene vorgenommen), sowie Videodecoder in Webseiten und zusätzliche Aufgaben, die sich leicht wie im laufenden Betrieb auslagern lassen Beim Rendern von Effekten, auch bekannt als CSS3, kann sogar der Browser alleine einen Grund für viel mehr RAM und ein paar Kerne rechtfertigen.
Hinzu kommt, dass einige Benutzer möglicherweise auch auf diesem PC spielen oder Tools wie Garageband, Imovie, Handbremse und mehrere Kerne verwenden. Dies kann ein großer Vorteil sein.
Es ist nicht richtig anzunehmen, dass Sie einen Kern maximal ausnutzen müssen (dh 100% CPU-Auslastung auf einem einzelnen Kern), damit ein anderer Kern nützlich ist. Weil wir hier von Parallelität sprechen. Der Taskwechsel innerhalb einer CPU führt normalerweise eine Reihe von Vorgängen aus, bevor der Stack auf einen anderen Prozess umgestellt wird. Nicht alle dieser Tasks sind CPU-gebunden, sodass Sie keinen CPU-Spitzenwert sehen, obwohl der Kern gesperrt ist.
Grundsätzlich haben Sie recht, aber wie viele Kerne sind am effizientesten? 2? 4? 12? Dies würde höchstwahrscheinlich von den Benutzergewohnheiten abhängen ... Ich neige dazu, 2-4 für die meisten Benutzer, aber ich rate nur.
quelle