Alles Core oder was?

Dual CoreSeit einigen Wochen gibt es den ersten Quadcore Prozessoren von Intel – noch im hochpreisigen Segment. Bis 2008 erwartet man, dass er den Dual Core im normalen Preissegment ersetzt und selbst die Celeron Prozessoren werden dann Dualcores sein. Ende 2008, wahrscheinlich aber eher 2009 kommen dann Prozessoren mit 8 Kernen.

Die Frage ist: wem nützt dies? Nun mehrere Prozessoren an ein und dieselbe Aufgabe zu setzen ist nichts neues. Großrechner und Supercomputer bestehen seit langem aus vielen Prozessoren. Die größten aus über 10.000 Stück, wobei diese dann auch mehrere Recheneinheiten auf dem Chip haben können.

Allerdings gibt es einen Unterschied und zwar in den Anwendungen die abgearbeitet werden. In Supercomputern sind es vorwiegend Simulationen: Simulationen haben eine Eigenschaft: Es wird ein und dieselbe Rechenvorschrift mit vielen verschiedenen Daten durchgeführt. Nehmen wir ein Klimamodell: Es zerlegt die Erde in lauter kleine Quadrate, und in der Vertikalen in Höhenschichten. Typisch sind 300 km Maschenweite für ein Quadrat und etwa 20 Atmosphärenschichten. Für jedes dieser Elemente wird dann berechnet wie die Wechselwirkung von Erde, Wasser, Sonne und andere physikalische Einflüsse das Wetter beeinflusstm für einen bestimmten Zeitraum. Danach schaut man wie es in den Nachbarzellen aussieht und welche Übergänge es gibt durch Strömungen und berechnet mit diesen neuen Ausgangswerten den nächsten Zeitschritt. Nun ist klar, dass diese Aufgabe hochgradig parallel ist: Man könnte im Prinzip für jede Zelle einen Prozessor beschäftigen, da er nur am Ende seiner Aufgabe sich mit den nächsten Umgebungsprozessoren über Datenaustausch synchronisieren muss.

Wenn sie eine Webpräsenz, aber keinen eigenen Webserver haben, dann sind sie Kunde einer anderen Parallelität. Auf einem Rechner mit einigen Prozessoren läuft ein Webserver wie z.B. Apache, der pro gehosteter Website einen Thread, also einen leichtgewichtigen Prozess startet. Der lauscht an ihrer IP und wenn jemand eine Seite haben will, dann wird er aktiv, fordert die Seite von der Festplatte oder dem RAM Cache an, wickelt das Protokoll ab und sendet sie dann zu ihrem Benutzer. Dies ist eine andere Art von Parallelität: Die Aufgabe wechselt dauernd, entsprechend dem Inhalt der Website (manche mit aktiven Inhalten, andere ohne, Bilder oder keine, langsame oder schnelle Anbindung) aber jeder Thread ist von dem anderen unabhängig. Üblich sind etwa 100 Threads pro CPU, Tendenz steigend.

Wie sieht es dagegen auf dem Desktop aus? Natürlich gibt es hier Anwendungen die viel Performance brauchen. Manches Hintergrundprogramm wie der Virenscanner braucht auch viel Performance. Wenn man 2 Cores hat, kann man flüssiger arbeiten wenn eine Anwendung viel Rechenleistung braucht. Bei 4 oder 8 Anwendungen sieht es anders aus. Ich kenne wenige Benutzer die so viele rechenintensive Anwendungen haben und wenn sie auf die Idee kommen, diese gelichzeitig zu starten wirkt sich dann bald die Festplatte als Flaschenhals aus – irgendwo müssen die Daten ja herkommen. Wenn mein Computer blockiert ist, so sind es meist Anwendungen die viel von der Festplatte lesen – und die werden so nicht schneller.

Es wird Anwendungen geben, die davon profitieren. Spiele können das Rendern der Szene zwischen den Prozessoren aufteilen, tun dies heute aber noch nicht besonders gut, obwohl diese Technologie lange angekündigt war. Es lohnt sich heute mehr in eine bessere Grafikkarte zu investieren als in einen besonders teuren Prozessor, zumal diese für diesen Job spezialisiert ist und ihn noch schneller kann als ein Prozessor (Topmodelle haben bis zu 256 Recheneinheiten auf der Grafikkarte, da sieht ein Dualcore mit 2 Kernen und etwa 8 Einheiten recht schwach dagegen aus) Dann gibt es noch den Job der Videokodierung und Bearbeitung – doch wie viele Leute machen das wirklich?

In gängigen Anwendungen wie Office Paketen, Browser oder Grafik kann man sicher das eine oder andere parallelisieren. Eine Rechtschreibprüfung beim Eingeben, ein Abholen von RSS Feeds neben dem Surfen, ein Filter der im Hintergrund ein Bild verfremdet – doch fast alle diese Dinge brauchen schon heute wenig Rechenleistung und für Office und Internet braucht man schon heute keinen besonders schnellen Rechner.

Das Problem ist nicht neu: Praktisch alle Erweiterungen welche die x86 Architektur bekam, brauchten Jahre, bis sie allgemein eingesetzt wurden. So gibt es seit 3 Jahren einen 64 Bit Modus, und Vista ist nun auch 64 Bittig zu haben – doch was gibt es an Anwendungen dafür? Da der Takt nicht mehr gesteigert werden kann (Spitze sind nun 2.6 GHz, Einkerne haben schon 3.8 GHz erreicht) wird man eine höhere Geschwindigkeit aber nur durch mehr Kerne bekommen. Das erhöht den Druck auf die Softwarehersteller. Anderseits zeigt Microsoft mit seinem etwas seltsamen Benutzerkonzept bei Windows Vista dass man die Anforderungen der Benutzer auch konsequent ignorieren kann und dies über Jahre, wenn man eine gewisse Marktmacht hat.

Das zweite was natürlich dazu kommt ist, dass bei immer mehr Kernen der Verwaltungsaufwand exponentiell steigt, wie Gene Amdahl schon in den 60 er Jahren feststellte. Vereinfacht gesagt: In der Praxis müssen die Prozessoren sich austauschen: Um Daten auszutauschen, auf den anderen zu warten oder um den Cache und die Speicherbandbreite möglichst effizient zu nutzen. Das steigt bei immer mehr Prozessoren immer stärker an. Beim deutschen Wetterdienst rechnet man bei den Simulationen auf tausenden von Prozessoren nur mit 6-15 % der maximal verfügbaren Rechenleistung als Dauerleistung. Das sind doch sehr ernüchternde Zahlen.

Mal sehen was die Zukunft bringt….

One thought on “Alles Core oder was?

  1. hmm…
    was ist mit dem Windoof Xp X64?
    mit dem arbeite ich gerade.
    es unterstützt auch 32bit progarmme aber alle laufen auch nicht.
    beispiel vierenscanner…
    der AMD x2 prozessor läuft aus dem 32bit windoof für meine spiele besser als der einkern prozessor….
    deswegen gibt es ja auch einenen patch von AMD.

    Ach und bevor ich es vergesse….
    ich wünsche dir ein schönes weihnachtsfest und schöne feiertage.

    mach weiter so mit deinem blog und der website….ich besuche sie ja nun schon seit jahren.

    sie steht bei mir in den favorieten unter wissenswert und das auch an erster stelle.

    gruss chris

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.