Club MLSNET

Der Treffpunkt für IT-Interessierte

Cashback Total!

Geld verschenken?
Nicht mit uns!

Werde auch Du Mitglied von Shoop.de, Deutschlands bestes Cashbackportal, mit über 2000 Partnershops, 700.000 Mitgliedern und den besten Raten am Markt!

Mit Shoop bekommst Du Geld zurück für jeden Online-Einkauf!

Mit Shoop.de wird smart gespart!

Cashback-Systeme sind Bonusprogramme, die die Treue von Kunden zu ihren Lieblingsshops belohnen.

Doch es gibt einen besonderen Unterschied zu herkömmlichen Treueprogrammen: Anstatt bei Einkäufen Punkte zu sammeln, die dann für Prämien eingetauscht werden müssen, sammeln Kunden bei jedem Einkauf bares Geld!

Das Shoop.de Portal haben wir selber getestet und können es nur empfehlen!

Wieviel mal besser ist Quad-Core?

Quad-Core-Prozessoren sind Prozessoren, die vier Kerne enthalten. Sie werden auch Vierkern-Prozessoren genannt.

Durch die Einführung von Quad-Core-Prozessoren hat sich ein neuer Flaschenhals aufgetan. Zum Beispiel die Festplatte.

Während sich in den letzten Jahren bei den Schnittstellen einiges getan hat, hat die Prozessorleistung durch Multi-Core-Prozessoren extrem schnell aufgeholt.

Inzwischen bekommen die Programme die Daten gar nicht schnell genug geliefert, wie sie vom Prozessor verarbeitet werden könnten.


Laufen typische Anwendungen oder Spiele mit vier Kernen schneller als mit zwei?

quad core prozessor

In der Regel nein. Damit Anwendungen und Spiele wirklich von vier Kernen profitieren, müssen sie dafür programmiert sein. Das werden aber nur rechenintensive Anwendungen, wie 3D-Raytracing, wissenschaftliche Spezial-Anwendungen oder Programme und Tools für die Bildbearbeitung. 

Rechnen viele Anwendungen parallel, dann kann ein Quad-Core-Prozessor durchaus was bringen. Dazu müssen das Betriebssystem und die Programme die Unterstützung mitbringen, denn nur dann wird auch der Arbeitsspeicher passend adressiert.

Ohne Multi-Core-Unterstützung gibt es Probleme und Einbußen bei der Geschwindigkeit.  Wer keine Multi-Threading-Software nutzt, der profitiert auch nicht von Quad-Core-Prozessoren. Und es gibt kaum Einsatzgebiete für Quad-Core-Prozessoren in den üblichen Personal Computern. Deshalb machen Achtkern-Prozessoren für den Desktop oder Notebooks kaum Sinn.

Es mangelt einfach an Anwendungen und Software, die Multi-Core-Prozessoren sinnvoll nutzen können. Privat und geschäftlich genutzte Desktop-Systeme kommen mit einem Doppelkern-Prozessor vollkommen aus. Die sind sparsamer und deutlich billiger.

Multi-Core / Mehrkern-Prozessoren

Parallelrechentechnik und Multi-Core-Prozessortechnik sind Prinzipien, die seit Anfang der 90er Jahren in Supercomputern Einzug gehalten haben. Diese Systeme sind bis heute Multi-Prozessor-Systeme. Die dort verwendeten Verfahren finden ihren Weg auch in Personal Computer. Statt mehrere Prozessoren wird die Parallelisierung direkt im Prozessor vorgenommen.

Das bedeutet, dass in einem Prozessor mehrere Prozessor-Kerne eingebaut sind. Man bezeichnet diese Prozessoren als Multi-Core- oder Mehrkern-Prozessoren. Rein äußerlich unterscheiden sich Multi-Core-CPUs nicht von Single-Core-CPUs. Innerhalb des Betriebssystems wird der Multi-Core-Prozessor wie mehrere Einheiten behandelt.

Je nach Anzahl der Kerne gibt es abgewandelte Bezeichnungen, die darauf hindeuten, wie viele Kerne im Prozessor integriert sind. -Dual-Core / Zweikern-Prozessor -Triple-Core / Dreikern-Prozessor -Quad-Core / Vierkern-Prozessor -Hexa-Core / Sechskern-Prozessor -Octa-Core / Achtkern-Prozessor -...

Seit der Einführung von Doppelkern-Prozessoren hat sich die Computer-Infrastruktur entscheidend weiterentwickelt, wodurch Multi-Core-Prozessoren immer sinnvoller werden. So sind SATA-II-Festplatten in der Lage per Native Command Queuing (NCQ) Zugriffe in ihrer Reihenfolge zu verändern und dadurch Datenanforderungen von mehreren Prozessorkernen zu bearbeiten.

multicore prozessor

Ebenso PCI Express (PCIe), auf dem mehrere Datentransfers parallel ablaufen können.

Anstatt die Taktrate weiter zu steigern, ist man auf die Mehrkern-Technik ausgewichen, die in einem Prozessor mehrere Kerne zusammenschaltet. Das bedeutet, moderne Prozessoren haben nicht nur eine Recheneinheit, sondern mehrere.
Es könnte sein, dass irgendwann für jede laufende Anwendung oder Prozess ein eigener Prozessorkern, also eine Recheneinheit zur Verfügung steht. Allerdings bringt dieses Potential nur etwas, wenn mehrere laufende Anwendungen mehrere Prozessorkerne gleichzeitig beschäftigen können. E
s braucht also Software, die das ganze koordiniert und eine Hardware, die das unterstützt. Dazu gehört das Verteilen der Berechnungen auf mehrere Prozessorkerne.

Man nennt das auch die "Automatische Parallelisierung". In 3D-Software wird die Parallelrechentechnik schon länger verwendet.

Doch typische Anwendungen, durch die parallele Rechenleistung gefordert wird, gibt es für den Desktop-Computer nicht. Die meisten Desktop-Anwendungen brauchen in der Regel keine parallelisierte Rechenleistung über einen längeren Zeitraum.
Nur manchmal hat man das Gefühl, dass ein Mehrkern-Prozessor eine Geschwindigkeitssteigerung hervorruft. Die ist darauf zurück zu führen, dass mehrere Programme tatsächlich parallel laufen können.
Im Optimalfall nutzen mehrere leistungshungrige Anwendungen unterschiedliche Prozessorkerne. Zum Beispiel im Hintergrund (Dienste) oder Vordergrund laufende Programme.

Durch mehrere Prozessorkerne entsteht eine Art Leistungsreserve, durch die Anwendungen Eingaben immer bereitwillig entgegennehmen, auch wenn im Hintergrund irgendwelche Prozesse Rechenleistung verbrauchen.  Prozessoren mit mehr als zwei Kernen haben es jedoch schwer sich bei der normalen Nutzung zu beweisen.

Denn mehr als zwei Kerne bedarf Anwendungen, die ihre Berechnungen selber auf mehrere Prozessorkerne verteilen können. Während ein Dual-Core-Prozessor noch durch das Betriebssystem bedient wird, bedarf es bei mehr als zwei Kernen der Unterstützung durch die Anwendungen. 

Die Vorteile der ersten Dual-Core-Prozessoren waren ein geringerer Takt und weniger Energieverbrauch pro Kern und somit weniger Aufwand beim Kühlen. Das heißt, weniger Stromverbrauch bei gleichzeitiger Leistungssteigerung.

In Multi-Core-Systemen werden viele Aufgaben in Threads aufgeteilt. Diese Threads werden parallel von mehreren Prozessorkernen abgearbeitet. Dazu müssen das Betriebssystem und die Programme "threaded"- oder "multi-threaded"-fähig sein. Mit Hyper-Threading hat Intel die Software-Branche schon früh zur Realisierung von Multi-Threading-Anwendungen motiviert.  Auch wenn durch die wachsende Verbreitung von Computern mit Multi-Core-Prozessoren Multi-Threading-Anwendungen attraktiver werden, ändert sich die Software nur sehr langsam.

Das Problem: Multi-Threading-Anwendungen sind sehr viel komplizierter in der Programmierung. Dazu kommen neue und ungewohnte Fehlerquellen hinzu.  Die Parallelisierung von Software stellt die Programmierer vor eine große Herausforderung. Erschwerend kommt hinzu, dass die meisten Anwendungen keiner Parallelisierung bedürfen. Vor allem deshalb, weil sie die meiste Zeit sowieso auf Nutzereingaben warten. Typische Anwendungen, die durch Parallelisierung deutliche Vorteile haben sind Bildbearbeitung und Videoverarbeitung. Aber auch nur dann, wenn Funktionen ausgeführt werden, die erheblich Rechenleistung anfordern. 

Wenn Multi-Core-Prozessoren für viele Anwendungen keinen wirklichen Vorteil bringen, werden die Programmierer eher auf die Nutzung von Multi-Threading verzichten. Billige Software nutzt in der Regel kein Multi-Threading. Und auch wenn ein Programm Multi-Threading verwendet, bedeutet das nicht, dass es das mit allen Funktionen tut.

Zwei oder mehr Prozessorkerne in einem Prozessor unterzubringen ist in etwa so, wie in ein Auto mehrere Motoren einzubauen. Ob das Sinn macht, hängt eben stark von der Nutzung und Anwendung ab. Wer nur in der Stadt herumfährt, der wird nie die Leistung von zwei Motoren brauchen.  Doch Intel und AMD propagieren unaufhörlich den Wechsel zur parallelisierbaren Programmierung. Denn beide sind nicht in der Lage die Taktrate ihrer Prozessoren auf über 4 GHz zu erhöhen. Und die Software-Entwickler werden diese Entwicklung mitgehen, wenn sie mit Ihren Programmen keine Geschwindigkeitsprobleme bekommen wollen. 

Trotz Multi-Core-Prozessoren kommt es immer noch auf die Rechenleistung eines einzelnen Kerns an. Das haben auch Intel und AMD erkannt und deshalb in ihre Mehrkern-Prozessoren eine Übertaktungsautomatik eingebaut. Wenn mehrere Kerne nichts zu tun haben, dann werden sie abgeschaltet und ein Kern übertaktet. Und zwar so lange und so hoch, bis der eine Kern zu heiß wird. Dann wird dieser Kern wieder heruntergetaktet.

multi threading

Multi-Core-Standards

Es ist denkbar, dass in einem Mehrkern-Prozessor-System verschiedene Aufgaben auf einzelnen Prozessorkerne verteilt werden. Eine Anwendung könnte darin bestehen, dass Ergebnisse anderer Programme aus dem gemeinsamen Speicher abgerufen werden. Der Vorteil besteht darin, dass die Abhängigkeit zwischen den Programmen reduziert wird.

Erfordert eine Aufgabe sehr viel Rechenleistung und wird deshalb ein Prozessorkern sehr stark beansprucht, dann sind andere Aufgaben davon nicht betroffen. Sie haben ihren eigenen Prozessorkern.  Damit ein solches Szenario möglich ist, muss das auf der Software-Seite unterstützt werden. Sowohl beim Betriebssystem, als auch bei den Anwendungsprogrammen.

Dabei besteht die Frage, wie bekommt man die volle Leistung aus einem solchen System heraus?  Dazu muss man sagen, dass wir noch am Anfang der Multi-Core-Software-Entwicklung stehen und es einfach noch an einer Multi-Core-Standardisierung mangelt. Das heißt, es fehlen Software-Standards, die Mehrkern-Prozessoren vollständig unterstützen.

Multi-Threading, also die prozessinterne Kommunikation, ist durch POSIX gut definiert. POSIX ist eine Sammlung offener APIs, die von der IEEE für Betriebssystemdienste spezifiziert wurde. Der Standard definiert Schnittstellen zur Thread- und Prozesssteuerung. POSIX befindet sich in Linux, Unix und in einer Reihe Embedded-Betriebssysteme.

 Multi-Threading ist in Programmiersprachen wie Java oder Ada integriert. Mit OpenMP existiert eine Software-Bibliothek mit der Entwickler parallele Anweisungen in C- und C++-Code integriere können. Doch leider reicht keine dieser Implementierungen an POSIX heran.