Reklama
aplikuj.pl

Jak uczynić komputery bardziej niezawodnymi?

Komputery, jak wszystkie urządzenia, są zawodne. Zawodność komputerów nie oznacza przy tym tylko możliwości trwałego fizycznego uszkodzenia którejś z części, ale przede wszystkim błędy w obliczeniach. Każdy, kto bawił się kiedyś w podkręcanie procesora czy układu graficznego wie, że układ scalony doprowadzany do granic swoich możliwości technicznych notorycznie myli się w obliczeniach – powoduje to niestabilne działanie systemu operacyjnego czy programów, a w przypadku układów graficznych widoczne na ekranie „artefakty”, czyli nieprawidłowo wyrenderowane fragmenty obrazu.

Niestety, dążenie do jak największej miniaturyzacji tranzystorów, choć napędza od dziesięcioleci postęp, sprawiając że wydajność obliczeniowa komputerów rośnie w skali logarytmicznej, sprawia również, że urządzenia pracują coraz bliżej barier wyznaczanych przez prawa fizyki. W nowoczesnych układach scalonych łatwiej o błędy powodowane przez drobne niedoskonałości w procesie produkcyjnym, stopniową degenerację delikatnych konstrukcji, czy po prostu zjawiska kwantowe.

Jako że komputery nigdy nie były w pełni niezawodne, od dziesięcioleci znamy i implementujemy zarówno programowe jak i sprzętowe mechanizmy odpowiedzialne za korekcję błędów. Jednak jak pokazują właśnie przykłady układów o umyślnie podniesionym zegarze – nie zawsze to wystarcza. Dlatego amerykańscy badacze postanowili opracować zupełnie nowy model programowy mający na celu zapewnienie większej pewności wykonywanych obliczeń.

Global View Resilience, bo tak nazywa się to nowe podejście, ma nawet nie tyle uchronić komputery przed popełnianiem błędów, (przy stanie obecnej techniki wydaje się to zadaniem zupełnie niewykonalnym), co uodpornić programy na pomyłki, zapewnić im stabilne funkcjonowanie i możliwość uzyskania poprawnych wyników niezależnie od wad sprzętu.

GVR poza standardowym zapisywaniem wyników pracy na kolejnych etapach obliczeń umożliwia także uelastycznienie mechanizmów korekcji błędów oraz pozwala programowi na samonaprawę w trakcie działania. Aplikacja może także decydować, które jej elementy są kluczowe z punktu widzenia poprawności końcowych wyników i poddawać je bardziej rygorystycznej kontroli.

Jako że najbardziej podatne na akumulację błędów są największe maszyny, składające się z setek czy tysięcy procesorów i wykonujące wielogodzinne obliczenia, badacze testowali swoje rozwiązanie na superkomputerze Midway znajdującym się w Research Computing Center na University of Chicago. Obecnie maszyna ta zawiera łącznie 10400 rdzeni procesorów oraz 1,5PB pamięci masowej. W eksperymencie uczeni umyślnie powodowali błędy w programach i sprawdzali jak uruchomione programy sobie z nimi poradzą.

Obecnie system GVR używany jest już eksperymentalnie w niektórych superkomputerach należących do amerykańskiego rządu, jednak autorzy uważają, że niedługo przyjdzie pora na centra danych największych firm, jak Google czy Facebook, a po nich w końcu i na urządzenia konsumenckie, z telefonami komórkowymi włącznie. Cóż, patrząc jak szybko telefony z procesorów jednordzeniowych przeniosły się na ośmiordzeniowe, to kto wie, czy na starość nie przyjdzie mi używać komórki z 10400 rdzeniami i 1,5PB pamięci masowej.

[źródło i grafika: phys.org]