Oszczędność energii dzięki tolerancji na błędy

| Technologia
Krzysztof Lasoń, licencja GNU FDL

Systemy komputerowe na całym świecie zużywają coraz więcej energii. Dotychczasowe wysiłki zmierzające do ograniczenia jej konsumpcji skupiały się na efektywniejszym chłodzeniu oraz implementacji w układach scalonych trybów oszczędzania energii. Tymczasem uczeni z University of Washington uważają, że nowy model programowania, bardziej tolerancyjnego dla błędów, może zaoszczędzić nawet 90% energii.

Stworzyli oni system zwany EnerJ, który pozwala na uzyskanie 50-procentowych oszczędności energii w symulacjach komputerowych, a potencjalnie umożliwia redukcję jej zużycia nawet o 90%. EnerJ zostanie zaprezentowane podczas dorocznego spotkanie Programming Language Design and Implementation.

EnerJ wykorzystuje fakt, że w większość zastosowań można tolerować drobne błędy, gdyż nie pogarszają one wyniku pracy komputera. Na przykład w streamingu audio, wideo czy w grach niewielkie błędy są niezauważalne. „Jeśli możesz tolerować jeden błąd na 100 000 operacji, to jesteś w stanie zaoszczędzić sporo energii" - mówi Luis Ceze, jeden z autorów badań.

EnerJ to framework, który dzieli kod na dwa rodzaje. Pierwszy to taki, w którym potrzebna jest precyzja, jak np. algorytmy szyfrujące hasła. Drugi to taki, w którym drobne błędy nie przeszkadzają. EnerJ ma za zadanie szczelnie oddzielić oba rodzaje kodu i dopilnować, by błędy nie zdarzały się tam, gdzie ich nie powinno być.

Symulacje wykazały, że zastosowanie EnerJ pozwala na zaoszczędzenie średnio 25-30 procent energii. W przypadku jednego programu osiągnięto 50-procentową oszczędność. Zdaniem autorów już obecnie można zastosować EnerJ, by osiągnąć znaczne oszczędności. Jeśli natomiast użyjemy EnerJ wraz z odpowiednio zaprojektowanym sprzętem, zużyjemy 10-krotnie mniej energii niż obecnie.

W odniesieniu do urządzeń przenośnych oznacza to 10-krotne wydłużenie czasu pracy na bateriach.

EnerJ oszczędność energii błąd tolerancja