Bernd Leitenbergers Blog

Der PC in Zwanzig Jahren

Lange Zeit war es so, dass wenn man etwas über den PC in Zwanzig Jahren wissen wollte, man nur die Architektur der aktuellen Superrechner ansehen musste. Das passte auch in der Vergangenheit relativ gut. Hier einige Beispiele. Als PC-Gegenstück habe ich die x86-Architektur genommen. Es kann sein dass das eine oder andere Feature woanders zuerst erschien, aber die Architektur steckt eben in den aktuellen PCs:

Nicht nur in der Architektur, sondern auch in der Geschwindigkeit sind 20 Jahre ein guter Vergleichsmaßstab. So schnele wie eine CDC 600 war ungefähr ein 80836 – zwischen beiden liegen 20 Jahre. Die Pentium CPU erreichte 1995 die Performance der Cray 1. Seitdem ist es durch den langsameren Anstieg in den Achtzigern und Neunzigern bei den Supercomputern sogar besser geworden. Die letzte Cray erreichte 16 GFLOPS, das war im Jahre 1993, ein iCore 5 mit 4 Kernen und 3 GHz Takt erreicht bei Vektoroperationen 48 GFLOPS, wenn es um eine besonders sichtige Operation „Fused Add/Multiply“ geht, sogar 96 GFLOPS.

So gesehen müssen wir uns nur Supercomputer von heute anschauen, um zu wissen was uns in wenigen Jahrzehnten bevorsteht. Die bestehen heute aus Zehntausenden normaler Prozessoren mit Hundertausenden von Kernen, inzwischen auch durch Grafikkartenbeschleunigern ergänzt. Ich muss sagen, das ich an der Vision für die Zukunft in 20 Jahren bisher meine Zweifel hatte. Sicher wir haben die Gamer, die geben heute schon 100 bis 1000 Euro für eine Grafikkarte aus, deren leistungsfähige mehrere Tausend einzelne Recheneinheiten haben. Es gibt also schon heute eine Parallele zu den Supercomputern mit vielen Kernen. Was die Gamer aber gerne vergessen: Nur in 20% aller PC steckt eine Grafikkarte und ich würde wetten die Zahl der PC’s bei denen es eine High-End Grafikkarte ist beträgt nur wenige Prozent. Deiser Prozentsatz ist seit über einem Jahrzehnt konstant.  Es erschien mir unverständlich warum dieser seit Jahren konstante Anteil nun  plötzlich so wachsen sollte. Zudem sieht man es an der Prozessorentwicklung. Als Intel 2005 die Mehrkernprozessoren einführte, kündigte die Firma an, dass es nun alle zwei Jahre doppelt so viele Kerne geben würde. Seit 2005 gab es 5 Zweijahreszyklen so sollte man 2^5 x 2 Kerne = 64 Kerne heute haben. Stattdessen beträgt im Desktopsegment die Maximalzahl nur 6 Kerne. Lange zeit waren es nur 2 bis 4.

Doch für 2017 Jahre sind 12 oder 20 Kerne angekündigt und zwar für die Desktop (icore) Serie – Server haben heute schon bis zu 36 Kerne pro Chip. Dahinter steckt Intels Einsicht, dass sie die Core Mikroarchitektur kaum noch steigern können. Sie wurde 2006 eingeführt. Seitdem wurde sie nur marginal verbessert. Man bekam mehr Leistung vor allem indem man durch die Stromsparmechanismen wieder den Takt hochtreiben konnte. Doch Broadwell oder Skylake erreichen nicht die hohen Takte von Haswell, stattdessen gibt es bei Broadwell erst mal 6 Kerne in der iCore Serie und bei Skylake sind noch mehr angekündigt. Man betreibt  seit einigen Jahren auch viel mehr Aufwand um die integrierte Grafikeinheiten aufzurüsten, die haben tatsächlich in jeder Genration doppelt so viele Recheneinheiten bekommen.

Es gibt natürlich einen Grund für die Dominanz von 2-4 Kernen. In der aktuellen ct‘ mit einem Prozessorratgeber lese ich (mal) wieder (zum wiederholten Male) von den faulen Programmierern die es nicht fertig bringen alle Kerne auszulasten. Ja so kann man schrieben wenn man als Journalist selbst nicht programmiert. Das Problem sitzt aber vor dem Monitor, nicht in der CPU. Ein Prozessor wartet bei einem PC, aber auch Tablett oder Smartphone die meiste Zeit auf die Aktion mit dem Anwender. Die ist nicht vorhersehbar, und meist nicht parallelisierbar. Wer einen Text eintippt der wird nur einen Prozessor beschäftigen. der muss dann die Buchstaben als Grafik ausgeben. Sicher es gibt etwas nebenher zu tun, wie Rechtschreibung prüfen oder die Seiten formatieren, doch das beschäftigt auch heute kaum einen Prozessor. Lediglich der Duden Korrektor kann viel Zeit beanspruchen, vor allem wenn man wie ich Bücher schreibt und er beim Laden alles durchkorrigiert. Doch gerade der ist so geschrieben dass er nur einen Thread benutzt (ein Negativbeispiel). Wenn man surft kann man eine Seite weitestgehend nur linear kodieren, das liegt an der Struktur von HTML, das keine festen Layouts  kennt sondern sich an Bildschrimgröße und Skalierung anpasst. Aus demselben Grund ist JavaScript nur für einen Thread ausgerichtet, es macht wenig Sinn verschiedene dinge gleichzeitig zu ändern, wenn das Layout von Anfang an nicht feststeht sondern erst wenn alle Elemente bearbeitet sind, erstellt werden kann. Natürlich kann ein Browser im Hintergrund Seiten laden und aufbereiten, doch das ist mehr eine Notlösung, denn der Anwender wird nur einem von vielen Links folgen.

Übrig für Mehrkerncpus bleiben eine Handvoll von Vorzeigeanwendungen, die schon vom Design her multitaskingfähig sind wie Grafik (jeder Bildpunkt kann einzeln bearbeitet werden) Video (ein Bild wird in viele kleine 8×8 Pxielblöcke zerteilt die alle gleich verarbeitet werden) oder Spiele (jedes Objekt kann einzeln gerendert und eingefärbt werden).

Seit einigen Monaten habe ich diese Haltung „Es gibt keinen Grund noch mehr Kerne pro CPU einzubauen“ geändert. Der Grund ist, das es in 20 Jahren meiner Ansicht wohl nur noch wenige Pcs geben wird, wie sie heute da sind. Nein ich meine nicht, dass sie dann von Tabletts oder Smartphones ersetzt sind. Sie sind nur Geräte mit anderer Eingabe Methode, aber haben das technisch genauso das gleiche wie ein PC macht. Nein ich denke in der Zukunft wird viel mehr Power in den Geräten stecken, die heute gerade auf den Markt kommen. Das sind die Virtual Reality Brillen. Die funktionieren heute noch als Krückenlösung mit Smartphones als Display. Im Prinzip kann man damit das heute umsetzen, was wir vor 20 Jahren in Star Trek als „Holodeck“ gesehen haben – man kann sich in einer virtuellen Realität bewegen. Zusammen mit einem Handschuh, der auch Feedback gibt, wenn man was anfasst kann das sehr real sein. Das kann man für Spiele nutzen, aber auch um einen Spaziergang durch das antike Rom zu machen oder Pairs zu besuchen ohne hinzufliegen. Virtual reality ist nicht neu. Es gibt es schon seit Jahrzehnten. Doch man brauchte entweder umgebaute Räume wo die Bilder an die wand projiziert werden oder wenn es Brillen gab, so waren sie niedrigauflösend und grob. Mit mehr Computerpowert kann man dies wirklich lebensecht gestalten. Und es ist eine Aufgabe, die hervorragend parallelisierbar ist.

Das zweite ist die Erprobung von Fahrzeugen im Straßenverkehr. Da gibt es jetzt die ersten Projekte. Die Aufgabe ist ja nicht trivial. Man muss in Echtzeit die Bilder von Kameras, aber auch anderer Sensoren analysieren, Straßengrenzen, Abstände, Menschen und andere Objekte feststellen und das Fahrverhalten anpassen. Der Computer hat es hier schwerer, als der Mensch. Denn wir nehmen nie die ganze Szene wahr. Wir konzentrieren und auf einen kleinen Punkt in der Mitte des Blickfeldes. der kann wechseln, wenn wir in der Peripherie Veränderungen wahrnehmen oder durch Geräusche unserer Aufmerksamkeit abgelenkt wird, aber wir nehmen den größten Teil des Gesichtsfeldes nicht aktiv wahr. Jeder kennt das: Fußgänger nimmt man erst wahr wenn sie auf die Straße gehen, auch wenn man sie schon vorher sieht, wenn ihr Kopf über die parkenden Autos ragt. Hier könnte ein computerbasiertes System deutlich sicherer sein. Auch diese Aufgabe braucht viel Rechenpower.

In solchen Geräten könnten in Zukunft die meisten der leistungsstarken Prozessoren stecken. PC’s würde es auch in der Zukunft geben, vielleicht nicht mehr als Desktop sondern angeschlossen an eine solche Brille. Aber die stärksten Prozessorkerne mit vielen Untereinheiten werden nicht mehr im klassischen PC stecken.

Die mobile Version verlassen