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

In einem Gespräch mit dem Inquirer(öffnet im neuen Fenster) hat Intels Mobilchef Mike Bell Kritik an der Thread-Verwaltung von Android geübt. Insbesondere der Thread-Scheduler sei nicht auf Mehrkern-CPUs ausgelegt, meint der Intel-Manager. Dafür hat der Chiphersteller auch eigene Tests durchgeführt, die gezeigt haben sollen, dass sich die erzielbare Rechenleistung durch das Hinzufügen eines weiteren Kerns sogar verringern kann.
.jpg)
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.