Frage von ToniKim, 31

Dual Core, Quadro Core, usw. ist es bei Prozessoren so wie mit Pferden in einer Kutsche, die Kutsche kann nicht schneller als das schnellste Pferd sein?

Was nützen die ganzen Kerne, ist nur ein schnellere Kern nicht besser?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von TeeTier, 14

Es wird immer gern behauptet, dass eine Software mehrere Kerne unterstützen muss, um eine Effizienzsteigerung zu erleben. Das ist aber Quatsch.

Selbst wenn du auf deinem Computer ausschließlich Software instlliert hast, die nur auf maximal einen Kern laufen bzw. einen einzigen Thread ausführen, wirst du von umso mehr Kernen profitieren.

Leider haben die meisten Desktop-Prozessoren nur höchstens olle 8 Kerne, und "richtige" Xeons mit weit mehr als 20 Kernen sind eher die Ausnahme.

Wie komme ich nun auf den Trichter, dass Single-Prozess-Software von Mehrkern-Hardware massiv profitieren wird?

Guck dir einfach mal die Prozessliste deines Betriebssystems an, dann weißt du warum. Im Schnitt sind weit mehr als 60 Prozesse aktiv, und das Betriebssystem verteilt diese Last sehr clever auf alle vorhandenen Kerne.

Das heißt, selbst wenn jeder dieser 60 Prozesse nur in einem Thread lebt, wird dank des Prozess-Schedulings vom Betriebssystem die Last bei z. B. acht Kernen nahezu linear verteilt, und die Ausführungszeit sinkt (inkl. Scheduling-Overhead) auf knapp 13% bis 14%.

Für dich macht sich das darin bemerkbar, dass dein Rechner bei nahezu jeder Aufgabe einfach viel viel schneller reagiert.

Natürlich gibt es noch viele andere Programme, die extra für Mehrkernsysteme geschrieben wurden (Webserver, 3D-Anwendungen, Audio-Software, wissenschaftlich / mathematische Programme, ...), aber deren einzelne Subprozesse bzw. Threads profitieren auch nicht mehr und nicht weniger von einer CPU mit mehreren Kernen, wie ein parallel ausgeführtes Word, Excel, Outlook oder ein einfacher Texteditor.

Das heißt, schon 2 Kerne werden selbst einen ollen Bürorechner massiv beschleunigen, auch wenn darauf nur hauptsächlich so primitive Dinge wie die Terminplanung oder Kundenverwaltung stattfinden. Genau der selbe Rechner wird noch wesentlich schneller arbeiten, wenn er 8 Kerne zur Verfügung hat.

Viele Leuten (interessanterweise auch Informatikern) ist oft nicht klar, dass ein Prozess, ein Thread, ein ausgeführtes Programm, usw. technisch gesehen alles das gleiche ist. (mit Ausnahme von Green-Threads und von der Speicherverwaltung mal abgesehen)

Und da - wie gesagt - ein modernes Betriebssystem IMMER zich Prozesse laufen hat, wird man bei der Arbeit damit IMMER von mehreren Kernen profitieren. Je mehr, desto besser. Und wohlgemerkt völlig egal, welche Software man einsetzt, einfach weil im Hintergrund sowieso unglaublich viel Aktivität herrscht.

Wenn ich die Wahl zwischen 32 Kernen mit je 1 GHz und einem einzigen Kern mit 32 GHz hätte, dann würde ich mich SOFORT für ersteres entscheiden. Wer noch nie parallele Systeme entwickelt hat, kann das vermutlich nicht nachvollziehen, aber Ersteres wird vermutlich viele hundert mal schneller reagieren als Letzteres, da es an allen Ecken Flaschenhälse gibt, und Kontextwechsel verdammt teuer sind!

Um bei deinem Vergleich mit den Pferden und der Kutsche zu bleiben: Ein Ein-Kern-System ist ein Pferd mit einer Kutsche. Aber ein Acht-Kern-System sind acht Pferde, die jeweils ihre eigene Kutsche ziehen ... die Endgeschwindigkeit bei einer Reise von A nach B wird fast identisch sein, aber in der selben Zeit kann man acht mal mehr Güter / Personen transportieren.

Von daher sind mehr Kerne wesentlich sinnvoller als ein höherer Takt. Die einzige Ausnahme stellen Programme dar, die nur linear laufen können und nicht parallelisierbar sind. Solche Software stellt aber klar die Minderheit. :)

PS: Computerspiele sind oft schwer parallelisierbar. In so einem Falle wäre ein Quadcore mit 5 GHz vermutlich deutlich besser geeignet, als ein Achtkerner mit 2.5 GHz.

PPS: Außerdem benötigen neuere Prozessorarchitekturen oftmals deutlich weniger Microcode zur Ausführung von Befehlen, und fast immer erledigen neuere Prozessoren eine Aufgabe bei gleichem Takt effizienter (im Bezug auf Energieverbrauch und / oder Zeit).

PPPS: Wenn du das mal ausprobieren willst, installiere mal in einer VM ein Betriebssystem deiner Wahl, und weise einmal 2, einmal 4 und einmal 8 Kerne zu. Du wirst merken, dass die Geschwindigkeit (auch gefühlt) eine deutlich andere ist, auch wenn du nur primitive Ein-Thread-Software testest! :)

Kommentar von TeeTier ,

Kleine Anekdote: Ein Kumpel von mir arbeitet in der Entwicklung von neuartigen Chipdesigns bei einer großen japanischen Firma, und die haben schon vor ca. 8 Jahren Prozessoren entwickelt, die mit einem Takt jenseits der 200 GHz laufen. (in Worten ZWEIHUNDERT Gigahertz; also knapp 40 mal schneller, als heutige Spitzenmodelle)

Das sind zwar nicht mal annähernd x86- oder ARM-artige Architekturen gewesen, und sie dienten nur als Grundlagenforschung, aber im Großen und Ganzen war das Ergebnis, dass es - abgesehen von den ganzen technischen und gerade physikalischen Problemen - wohl am besten ist, wenn man sich weiterhin auf eine Vervielfachung der Kerne und der Bus-Architektur konzentriert.

Bei so extrem hohen Taktraten ist es (zumindest im Moment und für die nächsten zich Jahre) unmöglich, CPUs zu entwickeln, die mehrere Milliarden Transistoren besitzen, und damit auch nur in die Nähe der Leistungsfähigkeit von gängigen Modellen kommen.

Als Entwickler kann ich aber sagen, dass es eine schöne Herausforderung ist, und auch großen Spaß macht, herkömmliche Algorithmen zu parallelisieren oder gar neue zu entwickeln. :)

Antwort
von Parhalia, 17

Ich finde das schon einen sehr schönen Vergleich. Erörtern wir ihn demnach mal.

Was würde Dir ein einziges schnelles Pferd nützen, wenn Du ihm  statt eines leichten "Rennkarrens" einen fett beladenen Lastkarren ansschnallst . Es wird sehr schnell überlastet  sein und ermüden.

Im Umkehrschluss nützen Dir aber auch zwei starke ( aber langsame )  Ochsen vor einem leichten "Sulki" nichts, wenn Du mit wenig Gegen- / ( hier Zug- ) Last vorankommen willst.

Somit ist und bleibt es wichtig, was Du für welche Aufgaben und Lasten vor welchen Karren spannst.😉

Antwort
von DerLappen, 17

Also viele Kerne bringen nur etwas, wemm die gewüschte Software diese auch unterstützt.

Spiele profitieren aktuell fats nur von einer besseren Singlecoreleistung, da die aktuelle Softwareschnittstelle Directx11 nur einen Prozessorkern mit der Grafikkarte kommunizieren kann und alle anderen Prozessorkerne hoffen müssen, dass das Spiel welches man grade spielt die Prozessorlastigen Aufgaben möglichst gut auf mehrer Kerne verteilen kann, was seltn der Fall ist.

Fast genauso sieht mit der restlichen Software aus. Die meisten professionellen Video und Photobearbeitungsprogramme sind auf mehrere Kerne optimiert. Allerdings darf man nicht vergessen, dass lle aktuellen AMD Prozessoren über eine sehr schlechte Songlecoreleistung verfügen. Das liegt daran, dass bei AMD aktuell 2 Kerne sich einen Zwichenspeicher teilen, was zu Leistungsverlust führt. Intel hast dieses Problem nicht, weswegen Intelprozessoren in den meisten Spielen aktuell besser abscnheiden.

Antwort
von scorpionking95, 24

Nein, da die Arbeit bei mehr Kernen auf die jeweilige Anzahl verteilt werden kann und die Arbeit so Parallel bearbeitet wird und damit schneller als nacheinander verarbeitet werden kann.

Antwort
von Jewi14, 10

Es wurden dir schon gute Antwort genannt. Auf eins möchte ich noch hinweisen. Vor ca. 8-10 Jahren stand man vor dem Problem, dass Singel-Prozessoren immer höher getaktet wurden und damit immer mehr Wärme produzierten.

So viel Wärme, dass irgendwann die Prozessoren sich selbst "zerlegt" hätten. Daher war es nötig, auf mehrere, aber geringer getaktet zu setzen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten