Samodzielne komputery

Zainteresowanie naukowców IBM przetwarzaniem autonomicznym było w dużej mierze rezultatem realizacji projektu badawczego związanego z konstruowaniem superkomputera Blue Gene. Kiedy rozpocznie on pracę (prawdopodobnie nie wcześniej niż w 2004 r.), jego moc obliczeniowa ma przewyższać tę, którą łącznie posiada 500 obecnie najpotężniejszych komputerów na świecie. Ten superkomputer będzie wyposażony w blisko milion procesorów. Skala przedsięwzięcia wymusiła zmianę myślenia o konstruowaniu komputerów. Przy takiej liczbie procesorów wiadomo że z przyczyn naturalnych każdego dnia będzie psuło się kilka z nich. Łatwo sobie wyobrazić, że ich lokalizacja i wymiana rychło zaczęłyby przypominać zmagania sprzed pół wieku z Eniakiem, ogromnym komputerem lampowym. Każdego dnia kilka lamp psuło się, a konieczne naprawy zajmowały większość czasu, tak że na obliczenia zostawało go stosunkowo niewiele.

Blue Gene ma kosztować ok. 100 mln USD, dlatego byłoby rozrzutnością, by uszkodzenie ułamka procenta jego zasobów (w ciągu roku) miało powodować jego stałą niedyspozycję. To właśnie było inspiracją do powstania idei SMASH. Blue Gene zaprojektowano przy założeniu, że jego poszczególne elementy w sposób nieprzewidywalny mogą w dowolnej chwili ulec uszkodzeniu, całość zaś ma jednak nadal funkcjonować. To istotnie nowy paradygmat przy podejściu do projektowania komputera. Załóżmy, że będą problemy i wystąpią błędy, wyposażmy za to komputer w umiejętność radzenia sobie z tymi zjawiskami. Dlatego Blue Gene dysponuje prymitywną formą samokontroli. Niezależne układy kontrolują pracę procesorów, wbudowana w oprogramowanie logika pozwala na takie przekierowanie pracy, by w razie awarii procesora inne układy przejęły jego za- dania. Jest to w pewnym stopniu realizacja idei przetwarzania autonomicznego - Blue Gene koncentruje się na zadaniu, które ma wykonać i jednocześnie sam potrafi poradzić sobie z awarią konkretnego procesora. Strategia i implementacja zlewają się w jedno.

Można spekulować, jak takie nowe podejście mogłoby zmienić sposób wytwarzania oprogramowania komercyjnego. IBM pracuje już nad autonomicznym oprogramowaniem przeznaczonym dla instytucji finansowych na potrzeby obsługi serwisów internetowych. Generalnie chodzi o zdolność systemu do samodzielnego radzenia sobie z występującymi problemami. Przykładowo, gdy spada wydajność, komputer automatycznie sprawdza, czego brakuje: mocy procesora czy pamięci? Próbuje dokonać wyboru działań, dzięki którym spadek wydajności będzie możliwie niski. Specjaliści z IBM prowadzą prace nad serwerem, który będzie sam decydował o przydzieleniu najszybszej pamięci zadaniu uznanemu za najważniejsze w danej chwili. W pewnym sensie dzięki temu komputery zaczęłyby działać w ukierunkowaniu na cel, same decydując o optymalnej drodze jego osiągnięcia.

IBM u jednego z dużych klientów przeprowadził już testy z oprogramowaniem dokonującym automatycznego rozkładu pracy między wiele serwerów. Okazało się, że pracę, którą do tej pory wykonywało 20 administratorów, mógł przejąć jeden człowiek.

Bardzo okrojoną wersją przetwarzania autonomicznego jest ROC (Recovery Oriented Computing), czyli w swobodnym tłumaczeniu komputerologia nakierowana na przetrwanie. "Błędy w oprogramowaniu zawsze się zdarzają. I nie można tego kontrolować. Tymczasem praktycznie całe dostępne dzisiaj oprogramowanie działa według nierealistycznych założeń, że błędy uda się wyeliminować. Tutaj rodzi się istotne pytanie, na ile zmieniają się zasady, gdy celem staje się utrzymanie funkcjonowania systemu?" - zastanawia się prof. Armando Fox zajmujący się problematyką ROC na Stanford University. Do tej pory skupiano się głównie na wydajności, gdy tymczasem od tego, jak szybki jest procesor, jak duży dysk, znacznie istotniejsze są stabilność i gwarancja pracy systemu informatycznego.

Wspólna wizja

Często o dojrzałości danej dziedziny można wyrokować poprzez ocenę języka, którego używa się do jej opisu. Według tego kryterium przetwarzanie autonomiczne jest jeszcze teorią młodą, nie ma bowiem wspólnie uznawanych terminów i pojęć używanych do jej opisu. Wszyscy są jednak zgodni, że trzeba pracować nad tym, by komputery były bardziej świadome swoich funkcji i możliwości, by były w stanie wykrywać pojawiające się problemy i jeśli nie są one poważne, samodzielnie sobie z nimi radzić bez udziału człowieka.

#Nieuchronna zmiana#
#Rozmowa z Paulem Hornem, szefem Działu Badawczego IBM#
Samodzielne komputery

Paul Horn, szef Działu Badawczego IBM

$Jak ważnym kierunkiem rozwojowym dla IBM jest przetwarzanie autonomiczne?$ To element o znaczeniu strategicznym. Przetwarzanie autonomiczne obejmie ogromną część tego, czym dzisiaj w ogóle zajmuje się IBM. Dla naszych wszystkich laboratoriów badawczych to wspólny temat prac. Zresztą problem przerasta pojedynczą firmę, liczymy na szeroką współpracę całej branży. Potrzebują tego użytkownicy. $Co zatem jest najważniejszym praktycznym celem?$ Kluczowa kwestia dotyczy potanienia usług informatycznych. W jaki sposób rozwijać biznes, tak aby nie musiała gwałtownie wzrastać liczba zatrudnionych informatyków? Na przykład nasz dział usług globalnych rozrasta się w tempie kilkunastu tysięcy nowych pracowników rocznie. Wszyscy cierpimy z powodu zwiększającej się złożoności środowiska informatycznego, które wciąż rozbudowujemy. Tak naprawdę potrzebujemy rozwiązań, które wyręczyłyby nas w zarządzaniu tą złożonością. W informatyce prawdziwą przeszkodą do dalszego funkcjonowania prawa Moore'a może stać się właśnie rosnąca złożoność. $Kiedy i w jaki sposób produkty wyposażone w możliwości przetwarzania autonomicznego powinny pojawić się na rynku?$ Jeszcze tego nie wiemy. Może będzie to elementem oprogramowania, może częścią naszych globalnych usług. Wymaga to jeszcze sporo pracy. Zaczynamy współpracować na szeroką skalę z akademickimi ośrodkami naukowymi, sponsorując ich projekty. Nie ukrywam, że chcemy skierować główne kierunki prac badawczych właśnie w stronę przetwarzania autonomicznego. Prace badawcze potrwają jeszcze 5-10 lat. Musimy wiele zdziałać w takich dziedzinach, jak sztuczna inteligencja, teoria automatów i kontroli, cybernetyka, autonomiczne agenty, zdolne do samonaprawy układy itd. $Czego można się spodziewać najpierw?$ Pojawienia się rozwiązań z inteligentnej warstwy pośredniej - middleware. Powinna ona w znacznie większym stopniu działać autonomicznie, być żywym środowiskiem, w którym mogą funkcjonować różne rozwiązania. Middleware powinno się zajmować "transkodowaniem", czyli takim przekształcaniem danych, by zyskiwały one postać odpowiadającą konkretnemu urządzeniu, którym posługuje się użytkownik. W pewnym sensie taką warstwą pośrednią powinien stać się Internet.

TOP 200