211service.com
Multicore-Prozessoren verursachen Software-Kopfschmerzen
Jahrzehntelang bedeutete die Verbesserung der Prozessorleistung, die Taktrate eines Chips zu erhöhen. Der Nutzen war für die Benutzer sofort offensichtlich: Anwendungen liefen schneller. Ein schnellerer Chip verbraucht jedoch mehr Strom und entlädt die Batterien in mobilen Geräten. Folglich wechselten die Chiphersteller zu energiesparenden Multicore-Designs, bei denen mehrere stromsparende Prozessoren auf einem einzigen Chip kombiniert werden, um die Leistung eines einzelnen, schnelleren Prozessors zu replizieren (siehe Design für Mobilität ) .
Leider werden Anwendungen auf Multicore-Systemen nicht automatisch schneller, wenn Kerne hinzugefügt werden. Es muss Software geschrieben werden, um die parallele Verarbeitungsleistung zu nutzen. Und Programme zu schreiben, die über mehrere Kerne effizient und stabil laufen, ist schwierig. Wenn wir dieses Programmierproblem nicht lösen, sagt Prith Banerjee, Senior Vice President of Research bei Hewlett-Packard, werden Benutzer keinen Geschwindigkeitsvorteil in neuen Mikroprozessoren sehen. Banerjee fügt hinzu: Dies ist ein sehr grundlegendes Problem.
DATENSCHUSS
8,2 Gigahertz Der aktuelle Geschwindigkeitsrekord für einen Desktop-Mikroprozessor, der von Enthusiasten erreicht wurde, die einen Chip übertakteten, der auf drei Gigahertz ausgelegt war. Um ein Schmelzen des Chips zu verhindern, wurde dieser mit flüssigem Stickstoff gekühlt.Eine vielversprechende potenzielle Lösung besteht darin, menschliche Programmierer so weit wie möglich aus der Schleife herauszunehmen: Anstatt einzelne Programmierer zu erarbeiten, wie sie ihre Anwendungen über zwei, vier oder mehr Kerne laufen lassen, könnten die chaotischen Details den Compilern überlassen werden Software, die verwendet wird, um höhere Programmiersprachen in den Maschinencode umzuwandeln, den ein Computer verstehen kann. Alle großen Software- und Chiphersteller arbeiten zusammen mit vielen akademischen Forschern daran, Compiler zu entwickeln, die solche Aufgaben bewältigen können. Das größte Hindernis besteht darin, dass es schwierig ist, die Teile eines Programms zu identifizieren, die nicht von anderen Teilen abhängig sind, damit ein Kern nicht untätig bleibt, während er auf ein Datenelement wartet. Entwickler einfach davon zu überzeugen, sauberere Programme mit klar definierten Schnittstellen zwischen Codeblöcken zu schreiben, würde die Arbeit viel einfacher machen, sagt Wen-mei Hwu, Professorin für Elektro- und Computertechnik an der University of Illinois. Aber er schätzt, dass es fünf Jahre dauern wird, bis sich Multicore-freundliche Compiler und passende Programmierpraktiken in der Computerindustrie verbreiten.