Viele Prozesse vertragen kleine Ungenauigkeiten

Rechenfehler machen Programme stromsparender

Um Strom zu sparen, müssen Computerprogramme ungenau rechnen. Dieser Gedanke steht hinter EnerJ, einem Programmiersystem von Forschern der University of Washington (UW). Der Trick ist dabei, dass viele gängige Berechnungen Fehlertoleranz erfordern - was EnerJ energiesparend ausnutzt und trotzdem die Sicherheit der Programme gewährleistet.

Bei vielen Prozessen auf Computern fallen geringe Abweichungen nicht ins Gewicht, teils würden Programme sonst gar nicht funktionieren. "Eine Bilderkennung muss mit kleinen Problemen klarkommen, beispielsweise einem Staubfleck", erklärt UW-Doktorand Adrian Sampson. Wenn gezielt in Kauf genommene Rechenungenauigkeiten praktisch zusätzliche virtuelle Flecken verursachen, sollte der Algorithmus auch das verkraften - kleine Detailfehler beeinträchtigen also das Programm letztlich nicht. Ähnliches gilt beispielsweise auch bei Video- und Audio-Streaming sowie oftmals in Games.

Bei solchen Programmteilen kann EnerJ die Ausführung energiesparender machen. Das geschieht softwareseitig beispielsweise dadurch, dass das System kleine Rundungsfehler in Kauf nimmt und weniger Genauigkeitsprüfungen durchführt - den Prozessor also einfach weniger belastet. Zudem ist es möglich, manche Berechnungen bei geringerer Betriebsspannung der Transistoren auszuführen. Dadurch steigt zwar die Zahl zufälliger Rechenfehler. Ist ein Prozess gegen solche Fehler aber unempfindlich, überwiegt klar der Vorteil des geringeren Stromverbrauchs.

"Wenn man sich pro 100.000 Operationen einen Fehler leisten kann, kann man schon viel Energie sparen", sagt Ceze. Die Forscher schätzen, dass allein die rein softwareseitigen Tricks ihres Systems 30 bis 50 Prozent an Stromersparnis bringen. Simulationen haben zudem gezeigt, dass EnerJ-gesteuerte Hardware im Schnitt ein Viertel bis ein Fünftel weniger Energie verbraucht. Das wollen sie jetzt in Labortests auch praktisch nachweisen. Durch Kombination beider Aspekte hält das Team jedenfalls Einsparungen von etwa 90 Prozent für möglich.

Freilich gibt es auch Prozesse, die wirklich exakte Berechnungen erfordern - beispielsweise die Verschlüsselung beim Online-Banking. EnerJ löst dieses Problem, indem es Programmcode zweiteilt. Getrickst wird dann nur bei unempfindlichen Prozessen. Teile, die höchste Präzision zwingend erfordern, werden auch normal ausgeführt. "Wir stellen sicher, dass keine Daten vom ungenauen Teil in den exakten übergehen", betont Sampson. Damit ist sichergestellt, dass es nicht zu kritischen Fehlberechnungen kommt. (pte/hal)