Abgesang auf die Multicores
Im Jahre 2005 führte Intel den ersten Prozessor mit zwei Kernen, einen Dualcore ein. Und die Firma kündigte an, dass sich alle 2 Jahre die Zahl der Kerne würde verdoppeln. Das ist eingetreten. Das Maximum liegt derzeit soweit ich weiß bei 12 Kernen auf dem Chip, wobei das noch die teuren Serverprozessoren sind. Bei den in Desktop PCs verbauten sind es immer noch 8 Kerne.
Nur hat das der Verbraucher noch nicht so verinnerlicht. Die meisten PCs haben heute Zweikernprozessoren, die Vierkerner haben inzwischen auch einen guten Marktanteil, doch Sechskern und Achtkernprozesoren nur einen kleinen. Der Verbraucher fragt also die neuesten Produkte kaum nach und beide Firmen produzieren auch laufend neue Zweikern und Vierkernprozessoren. Früher war es einfach so, dass die alten Chips ausliefen. Als der Pentium II herauskam, konnte man den Pentium I noch eine Zeitlang kaufen, doch es gab keine neuen Versionen. Das ist heute anders und dabei orientieren sich beide Firmen nach der Nachfrage. Warum ist die aber so verhalten?
Nun eigentlich sind Computer die mehrere Prozessoren oder zumindest mehrere Kerne enthalten, nichts neues. Ich weiß wir haben hier unter den Bloglesern einige Experten, die können dass noch genauer angeben, doch der älteste Rechner den ich kenne ist die Cyber 6600 von 1969. Seitdem haben zumindest alle Supercomputer mehrere Prozessoren und ich denke die meisten Großrechner auch. Heute geht die Zahl der Prozessoren bei den größten Rechnern in die Zehntausende. Man sollte annehmen, dass in den Vierzig Jahren die seitdem vergingen, die Software an diese Situation angepasst ist. Das ist sie auch – bei Servern oder Großrechnern. Dort gibt es zwei entscheidende Unterschiede zu dem PC: Entweder gibt es mehrere Nutzer oder man lässt ein Problem auf dem Rechner laufen, bei dem die Software ausgelegt ist für die Anzahl der Prozessoren.
Zum ersten: Das heute populärste Beispiel ist der Webserver. Nehmen wir diese Website. Viele Benutzer rufen HJTML-Seiten gleichzeitig ab. Jeder erzeugt einen Prozess, der von allen anderen unabhängig ist. Er kann daher auf einem Kern alleine laufen. Wenn es der Blog ist, so kommt noch eine Datenbankabfrage und etwas höhere Last durch PHO dazu, die auch einen Prozess erzeugt. Und auf derselben IP-Adresse sind mehrere Websites gehostet. Das bedeutet dass ein Mehrkernprozessor leicht auszulasten ist. Es gibt immer zig Prozesse die gleichzeitig aktiv und voneinander unabhängig sind. Bei Simulationen ist es oft so, das man die Gesamtsimulation in einzelne Teile unterteilen kann. Oder es nicht eine Simulation ist sondern viele die durchprobiert werden (z.B. um festzustellen ob ein Arzneimolekül in ein Enzym passt, muss man das Enzym vor jedem Test räumlich etwas drehen bzw. mögliche Positionen von Seitenketten untersuchen. Jeder einzelne Test kann daher auf einem Prozessor laufen.
Ein PC unterscheidet sich dadurch, dass man nicht vorhersehen kann, was der Benutzer gerade tut und wie viel Prozessorlast er erzeugt, bzw. wie viele unterschiedliche Programme gleichzeitig laufen. Die Zweikernprozessoren waren noch eine echte Erleichterung. Wann immer eine Anwendung sehr viel Rechenlast erzeugte stand bei einem Kern das System. wer einmal den Duden Korrektor auf einem Singlecoreprozessor einsetzte, der weis was ich meine. Es gibt immer einige Hintergrundprozesse die laufen und Rechenlast erzeugen – Videos ansehen, Surfen, Virenscan. Etwas ist immer los. Mit einem Zweikernprozessor sinkt so die Wahrscheinlichkeit, das das System ausgelastet ist.
Nun ist das bei mir nun sehr selten der Fall. (Dualcore AMD 5050e) Das bedeutet dass der Übergang auf vier oder noch mehr Prozessoren durchaus keine Arbeitserleichterung mehr bringt. Das liegt auch darin, dass bald andere Dinge zum Flaschenhals werden. Wenn mehrere Anwendungen auf die Festplatte zugreifen, dann wird bald diese die Geschwindigkeit begrenzen oder es ist die Internetverbindung beim Darstellen. Da macht es auch keinen Unterschied das bei Google Chrome jede Website einen Prozess erzeugt – schlussendlich ist sie in einem Sekundenbruchteil gerendert und dann liest der Anwender nur noch.
Was bleibt ist, dass nur noch wenige Gebiete bleiben wo mehrere Kerne von Vorteil sind, die üblichen Verdächtigen: Bildbearbeitung, Videoschnitt, Spiele. Doch wie viele setzen das ein und vor allem wie lange? Sicher es gibt viele Spieler, doch in 50% aller verkauften PCs steckt keine Grafikkarte und von dem Rest würde ich sagen in einem Großteil eine einfache. Selbst diese Kundschaft profitiert eher von einer schnellen Grafikkarte als von mehr Prozessoren, zumal selbst neueste Spiele mehr als zwei Kerne kaum nutzen. Bei Videoschnitt aber auch Bildbearbeitung ist es mittlerweile auch so, dass spezielle Treiber die Grafikkarte dafür einsetzen. Diese kann vor allem diese immer gleichartigen Aufgaben, die ja dort anfallen, viel schneller als Prozessor absolvieren, zumindest wenn man von der gleichen Preisklasse spricht. Bei Videodarstellung ist es ja schon so, dass dies der Chipsatz übernimmt und die CPU-Last so stark absenkt – Quadcores sind für Blue-Ray und HD-Videos überflüssig. Wenn es nicht zig verschiedene Varianten von Grafikchips geben würde, so denke ich würde sich auf die Lösung mit Grafikkarten vieles zu berechnen eher durchsetzen, doch vielleicht wird mal die Schnittstelle dafür standardisiert. Das würde dem Konzept zum Durchbruch verhelfen.
So gesehen sehe ich schwarz für eine große Nachfrage nach Mehrkern-CPU’s, zumal ja auch als neuer Markt die ganzen Tablett-PCs, Netbooks oder Webpads eher nach etwas stromsparenden, lüfterlosen nachfragt. Dieser Markt boomt und vielleicht wären Intel/AMD beraten eher stromsparende CPU’s mit nur einem oder zwei Kernen zu entwickeln. Ich vermute aber auch dann wird man mit auf das Stromsparen optimierten ARM Prozessoren nicht mithalten können, die in vielen der neuen Geräten stecken.
Was bleibt ist die „Turbo“-Lösung. Wer einen Vier- oder noch mehr Kernprozessor kauft kann bei den meisten Exemplaren ein Feature nutzen: Wenn nur einer oder zwei Kerne viel zu tun haben, so kann die CPU die anderen kurzzeitig abschalten und diese beiden höher takten, da dann die Hitze die praktisch die maximale Taktfrequenz diktiert nur von wenigen Kernen kommt. Doch dann würde ich eher einen höher getakteten Zweikernprozessor kaufen, da alleine dadurch, dass die Caches und Kerne ja synchronisiert werden müssen und Daten austauschen müssen, die maximale Taktfrequenz niedriger ist als bei zwei Kernen ist.
und was ist mit Grafikkarten? die sind 1. nur für den Zweck der Grafikausgabe da, und 2. enorm parallel ausgelegt, mit teilweise über 1000 parallelen Streamprozessoren und mehreren 100 Shadereinheiten…
Auch hier: 50% des Grafikchipmarktes werden von intel bestritten – nur onboard Grrafik, ich denke von den restlichen 50% die sich etwa 50:50 auf ATI und Nvidea verteilen ist ein großer Teil onboard und Einstiegsklasse. Die meisten brauchen also schon heute keine Gradikkarte mehr (früher war in jedem Rechner eine). Sie Zweckzuentfremden hat Grenzen.Es geht eben gut bei den „typischen Verdächtigen“: Videokodierung und Dekodierung, Bildbearbeitung weil man ein Bild in zig Teilbereiche aufteilen kann die man dann separat berechnet.
Doch das ist eben nicht hilfreich beim Surfen, Textverarbeitung, Tabellenkalkulation….
Die Sache ist einfach, dass heutige Rechner in jeder Hinsicht schon so extrem ueberdimensioniert sind, dass einfach kein Schwein mehr schnellere CPUs oder noch mehr Speicher braucht.
Der normale Computeranwender surft auf eBay, spielt Musik ab und schreibt Word-Dokumente.
Dafuer reicht ein Single-Core Pentium 3 mit 600 MHz und 512 MB RAM – vernuenftige Softwareausstattung (Windows XP, Office 2000, Google Chrome) vorausgesetzt…
Es faehrt ja auch nicht jede Hausfrau mit einem Ferrari zum einkaufen.
Dass die Spiele heute hauptsächlich die Graphikkarten auslasten, hängt weniger daran, dass ein Spiel eine 8-Kern CPU nicht auslasten könnte, sondern vielmehr daran, dass die Programmierer es wegen ihrer Fixierung auf die Graphik nicht tun.
In Sachen künstlicher Intelligenz hat sich im Mainstream des letzten Jahrzehnts praktisch gar nichts getan. Dabei zeigt sich an einigen Stellen, dass brutale Rechenkraft dort einiges bewegen kann – wenn man sie an der richtigen Stelle einsetzt. Die Go-Computer Programme werden zum Beispiel immer besser. Ich habe 2007 mit dem Go spielen angefangen und nach viel Aufwand und schnellem Fortschritt den besten Computerprogrammen gegen Ende dieses Jahres als fortgeschrittener Anfänger noch paroli bieten können.
Aber in dem Jahr kündigte sich die Misere schon an. Es erschienen die ersten auf Monte-Carlo basierten Programme, die sehr viel besser skalieren als ihre weitgehend algorithmischen Vorgänger (wie sie etwa beim Schach zum Einsatz kommen). Seit dem sind mir die Blechkisten in der Spielstärke gnadenlos davon gelaufen.
Ähnliches könnte, insbesondere bei Strategiespielen, auch in anderen Spielen umgesetzt werden, deren künstliche Dummheit heute nach wie vor in erster Linie von Skripten und asymmetrischen Regelwerken zu Gunsten der Blechkiste lebt.
Ich stimme Pragmatiker völlig zu, wenn er sagt, dass der normale Computeranwender eBay surft, Musik spielt und Word-Dokumente schreibt. YouTube und derartige Videostreams werden auch immer bedeutender.
Anwendungen werden zunehmend in die Cloud verlagert werden, der Browser ist der Dreh- und Angelpunkt zukünftiger Entwicklungen. Der Sprung von einem auf 2 Kerne hat sicher 30% Performance gebracht. Klar ist mein alter Dualcore etwas behäbiger als der aktuelle i7 im Notebook. Der i7 hat 4 Kerne und 8 Threads. Ich habe derzeit aber keine Anwendung, die das sinnvoll ausnutzt. Ich hatte mir nur gedacht, das alte Notbook hat 9 Jahre gedient, wenn der neu auch so lange hält ist er dann vielleicht nicht hoffnungslos unterdimensioniert wenn ein neues Betriebssystem in drei oder vier Jahren draufkommt.
Ich bin auf die nächste Intel Atom Generation gespannt. Das dürfte für für mich völlig ausreichend sein und hätte den Vorteil einer höheren Akkureichweite.
Das Problem mit den Intel Atoms ist, daß sie entweder gerade eben schnell genug sind, oder gerade eben nicht mehr schnell genug.
Für den normalen Büronutzer reichen sie, wenn man Windows XP oder älter einsetzen kann. Zum Videos anschauen sind sie dann zu langsam.
Hilfreich wäre wenn die Atoms bis auf 4GByte RAM aufgerüstet werden könnten.
Unter Linux muß man mit einem Atom die Finger von Gnome und KDE lassen, alle alten Tools sind unkritisch, nur zum Videos (PAL) anschauen reicht es nicht mehr.
Für Webserver reichen z.T. über 5 Jahre alte IBM x346 noch aus, das Limit ist regelmäßig die I/O Bandbreite, nicht die CPU Geschwindigkeit.
Für einen Desktop PC (und auch Server) wäre gelegentlich eine höhere Single Thread Performance hilfreich, aber da ist nun leider das Wärmelimit erreicht.
Und oft genug ist auch die Geschwindigkeit zum RAM das Problem.
@Andreas: Wenn Du die Ansprüche hast wie Pragmatiker (Pentium III, 600 MHz), dann sind Atoms mehr als schnell genug.
Echte Linuxer benutzen kein GNOME oder KDE Linux ist nur der Kernel und da arbeiten dann alle auf der Textoberfläche….
Echte Computernutzer kommen noch mit einer Siebensegment-Anzeige und Hexadezimal-Keyboad und einem KIM-1 aus…
Um das was man braucht kann man ewig diskutieren, weil jeder andere Maßstäbe hat oder andere Software einsetzt.
Ich habe sowohl zu hause, als auch auf der Arbeit als primären Arbeitsrechner noch einen 600 bzw. 700 MHz Pentium III.
Die Rechner sind unter Linux gerade eben noch schnell genug, aber Filme bzw. Flash geht nicht, und ich kann auch jeweils keinen aktuellen Firefox einsetzen.
Auf der Arbeit habe ich zwar einen neueren Rechner bekommen, aber der ist, da ich weder KDE noch Gnome nutze, nicht komplett eingerichtet. (Ich habe einfach die Zeit dafür nicht.)
Für Privat libäugle ich mit einem AMD Nettop oder Netbook, mit dem ich auch Videos schauen kann, oder alternativ einem Mac Mini, der wäre dann gleich fertig konfiguriert.
Das ist auch ein Punkt: wenn man seine Software aktuell halfen will, muss man irgendwann wechseln. Selbst wenn es nicht das Betriebssystem ist, so gibt es ja heute schon genügend Software die man schon aus Sichwerheitsgründen (um bekannte Lücken zu schließen) aktualisieren soll. Sei es Browser, Acrobat oder Flash-Plugin. Neue Software (und sei es nur ein Steuerprogramm) scheidet dann wenn der Rechner einige Jahre auf dem Buckel hat auch weitgehend aus.
Einfaches surfen benötigt sicher nur wenig Ressourcen. Aber viele Seiten nutzen heutzutage Flash und auch die Bilder sind viel Größer geworden. Ich habe bei mir z.B. meist 10 Tabs im Browser auf. Dann benötigt der Browser schon etwas mehr RAM. RAM ist bisher bei mir auch der limitierende Faktor. Unter 1GB macht bei einem aktuellen OS mit Standardanwendungen kaum noch Sinn.
Die CPU (P4M 2GHz) meines T43 ist für alles was ich mache ausreichend. Ein gescheiter Graphikchip finde ich in sofern von Vorteil, wenn die Ausgabe an externen Monitoren eine vernünftige Qualität haben soll. Im Dualbetrieb (1400×1050 intern + 1680×1050 extern) und aktivierten 3D Desktop ist der ATI-Chip des T43 schon an seiner Grenze.
Das ist übrigens auch ein Punkt wo die Graphik der CPU gut Arbeit abnehmen kann: Beim Windowmanagement. Sicher sind viele Desktopeffekte nur optische Spielerei, aber vernünftig konfiguriert und eingesetzt erleichtern sie die Arbeit und machen das Arbeiten deutlich flüssiger und intuitiver. Bspw. das Durchblättern von offenen Dokumenten, eine schnelle Übersichtsdarstellung der offenen Anwendungen um eine Gewünschte auszuwählen, der Wechsel von virtuellen Desktops, Transparenzen, Vorschau, uvm. Allerdings ist auch hierfür keine Megamonstergraphikkarte notwendig.
Tja, diese Website ist mit Sicherheit ressourcenschonend. Die Website selber ist nur in HTML, der Blog noch mit PHP, aber das erzeugt Last auf dem Server und nicht auf dem Rechner des Anwenders….