Smartphones: Android fehlen laut Intel Optimierungen für Mehrkern-CPUs

Intel , das im Gegensatz zu vielen anderen Herstellern von Smartphone -SoCs noch keine Dual- oder Quad-Cores anbietet, beklagt den Thread-Scheduler von Android . Die Software würde mit mehreren Kernen manchmal sogar bremsen, sagt Intel.
/ Nico Ernst
69 Kommentare News folgen (öffnet im neuen Fenster)
Intel-Chef Paul Otellini mit Atom-Smartphone (Bild: Nico Ernst/Golem.de)
Intel-Chef Paul Otellini mit Atom-Smartphone Nico Ernst/Golem.de

Insgesamt, so Mike Bell, sei Android nicht auf die effiziente Verwaltung von mehreren Threads ausgelegt: "Vieles von dem, womit wir uns beschäftigen müssen, gibt es noch gar nicht, zum Beispiel Thread-Scheduling und Thread-Affinität. Zudem wird vieles andere einfach gestoppt, wenn das Betriebssystem einen einzelnen Task ausführt."

Solche Probleme mit einem Betriebssystem sind nicht neu, auch die Threadverwaltung von Windows nutzte anfangs Mehrkern-CPUs nicht richtig aus. Besonders fiel das bei Windows Vista auf, bei dem manche Anwendungen insbesondere bei Intels Hyperthreading gebremst werden konnten. Das liegt an der besonderen Funktionsweise des Mechanismus, der die Funktionseinheiten eines physikalischen Kerns dem Betriebssystem wie zwei Cores darstellt.

Dabei sind die logischen Kerne 0 und 1 den Rechenwerken auf demselben realen Core zugeordnet. Ein Dual-Core mit Hyperthreading verfügt so aus Sicht des Betriebssystems über die Kerne 0, 1, 2 und 3. Wenn nun beispielsweise ein Programm drei Threads ausführt, werden diese am besten auf den Kernen 0 und 2 sowie einem der beiden Cores 1 oder 3 bearbeitet. Die Kombination 0, 1, 3 ist dagegen ungünstig, weil so zwei Threads auf virtuellen Kernen laufen.

Intel macht ARM-Anbietern Vorwürfe

Darauf muss das Betriebssystem Rücksicht nehmen, was im Fall von Windows dazu geführt hat, dass Intel zusammen mit Microsoft die Funktion SMT Parking entwickelt hat, die in den Thread-Scheduler von Windows 7 eingebaut wurde. Sie sorgt dafür, dass neue Threads zuerst auf den physikalischen Threads gestartet werden, im Falle des genannten Beispiels auf den Kernen 0 und 2. Ebenso wurde bei Windows 7 die Thread-Affinität gesteigert, das Betriebssystem sortiert Threads weniger oft von einem Kern zum anderen um.

Solche Optimierungen will nun Intel auch für Android vorantreiben. Schon jetzt ist das für Intel dringend nötig, obwohl die bisherigen Smartphone-Atoms (Medfield) nur mit einem Kern ausgestattet sind. Sie arbeiten aber schon mit Hyperthreading, was Intel offenbar auch bei künftigen Dual- und Quad-Cores beibehalten will. Noch 2012 sollen die ersten Dual-Medfields erscheinen.

Mike Bell macht dabei aber auch den Herstellern von Mehrkern-SoCs Vorwürfe: "So, wie das jetzt umgesetzt ist, nutzt Android mehrere Kerne nicht so effizient aus, wie es das könnte. Ich glaube ehrlich gesagt, ein Teil dieser Arbeit könnte von den Herstellern der SoCs geleistet werden, aber die haben sich darum bisher nicht gekümmert."

Natürlich ist bei solcher Kritik an der Konkurrenz immer ein großer Teil Marketing im Spiel. Im Falle von Intel darf man dem Unternehmen aber durchaus unterstellen, sich mit der Architektur von Android besonders genau beschäftigt zu haben. Damit das mobile OS, das für ARM-CPUs entworfen wurde, überhaupt auf den x86-Prozessoren von Intel läuft, musste der Chiphersteller es an die eigene Architektur anpassen und den Code dabei eingehend analysieren.

Auch das Projekt Linaro zeigt, wie viel Raum für Optimierungen in Android noch vorhanden ist. Vor kurzem zeigte Linaro(öffnet im neuen Fenster) , wie sich die Leistung des 0xBenchmarks anhand von eigenen Anpassungen fast verdoppeln lässt. Dabei ging es jedoch weniger um viele parallel ausgeführte Threads, sondern eher um effizientere Compiler. Ein mit dem aktuellen GCC 4.7 kompiliertes Android 4.0 soll bis zu 30 Prozent schneller laufen als das offizielle Ice Cream Sandwich von Google.


Relevante Themen