Uśpione moce

Imponujący rozwój informatyki budzi czasami jakościowy niedosyt. Jedną z przyczyn tego stanu rzeczy są niewykorzystane możliwości, tkwiące w środkach technicznych i ludziach.

Imponujący rozwój informatyki budzi czasami jakościowy niedosyt. Jedną z przyczyn tego stanu rzeczy są niewykorzystane możliwości, tkwiące w środkach technicznych i ludziach.

Ilościowo mierzalny, szybki a nawet gwałtowny rozwój informatyki jest niekwestionowanym faktem. Ale pogodowy pomiar temperatury nie jest tożsamy z jej odczuwaniem jako zimno lub ciepło. Czy zatem "odczuwalne" tempo rozwoju IT jest równie wykładnicze jak empiryczne prawo Moore’a? Tu pojawiają się wątpliwości, a nawet rozczarowania.

Skoro możliwości sprzętu komputerowego zwiększają się w tak zawrotnym tempie, skoro producenci oprogramowania oferują jego coraz nowsze wersje, dlaczego mamy często wrażenie, że te moce nie są w pełni wykorzystywane? Czy nasze wymagania są zbyt wysokie, czy też mamy do czynienia z innymi, systemowymi zjawiskami, których naturę warto badać?

Przyjrzyjmy się bliżej łańcuchowi tworzenia wartości w informatyce:

sprzęt -> oprogramowanie -> aplikacja -> korzystający z niej człowiek.

Niewątpliwie, gros sprzętu komputerowego większość czasu pozostaje w uśpieniu. Skąd takie twierdzenie? Czy komputery są zbyt szybkie?

Przeciętny komputer, czy to w domu, czy to w biurze, wykorzystywany jest zaledwie przez kilka godzin na dobę. Ale nawet wtedy, gdy ktoś z nim pracuje, to nie znaczy od razu, że bezustannie zaangażowana jest pełna moc konfiguracji. Niewiele jej potrzeba, aby zapoznawać się z treścią korespondencji mejlowej w domu. Niewiele potrzebuje jej biurowy analityk, mozolnie wklepując przez pół godziny excelowe makra i formułki, aby potem w parę chwil "przepuścić" przez nie tabelaryczne dane. Oczywiście są sytuacje, gdy tej mocy jest za mało, powinniśmy dysponować także pewnymi rezerwami – nie zmienia to jednak pokazanych wcześniej typowych sytuacji. Z drugiej strony, obserwujemy pochód architektur wieloprocesorowych, i to na kilku płaszczyznach.

Po pierwsze, mamy do czynienia z klasyczną wieloprocesorowością w jednym komputerze (takowe pojawiały się już w latach 60.). W tym samym czasie funkcjonują też rozbudowane konfiguracje wielokomputerowe (amerykański system obrony rakietowej SAGE). Po drugie, mamy też przetwarzanie w konfiguracjach rozproszonych (distributed processing), np. systemy kratowe (grid computing). W ten sposób powstały systemy wielokomputerowe umożliwiające realizację takich projektów jak SETI@home (analiza kosmicznych sygnałów radiowych), Folding@home (badania struktur białkowych) czy MoneyBee (prognozowanie kursów giełdowych). I wreszcie, przechodzimy od mikroprocesorów jednordzeniowych (core) do wielordzeniowych. Czy jednak w ogóle potrzeba nam coraz wydajniejszych procesorów? Pytanie można by zbyć wzruszeniem ramion – spróbujmy jednak poważnie na nie odpowiedzieć: tak.

W informatycznym cyklu rozwojowym sprzęt pełni rolę pierwotną w relacji do oprogramowania, zaś softwarowe narzędzia muszą powstać wcześniej niż tworzona nimi aplikacja. Trudno tworzyć partytury dla orkiestr, złożonych z nieistniejących instrumentów. Podobną niemożliwością jest pisanie konkretnych programów dla komputerów przyszłości. Zatem rozwój sprzętu musi wyprzedzać rozwój informatycznego oprogramowania.

Rozwój informatyki, przebiegający właśnie wedle schematu sprzęt-oprogramowanie-zastosowania, wymaga owego "zapasu mocy". Bez niego, posługując się porównaniem motoryzacyjnym, nie da się dokonać informatycznego przyspieszenia w odpowiednim momencie. Dodajmy, że przetwarzanie klastrowe (clustering) możliwe jest zarówno w konfiguracjach internetowych, jak i lokalnych. W tym ostatnim przypadku można nawet znaleźć "uśpione moce" dosłownie na złomie.

Zupa na gwoździu

Dowiedli tego pracownicy wydziału Computational Physics and Engineering w National Laboratory Tennessee (USA), w którym w połowie lat 90. potrzebny był superkomputer do badań klimatycznych. Cena urządzenia przekraczała ramy budżetowe przedsięwzięcia, więc uczeni wykorzystali kilkadziesiąt wycofywanych z eksploatacji PC-tów 486. Uzupełniono je o grupę szybszych procesorów Pentium i kilka stacji roboczych Alpha (DEC/Compaq). W ten sposób, w ciągu kilku lat rozwijał się superklaster składający się z ponad 130 węzłów i osiągający wydajność porównywalną z posiadanym wówczas w laboratorium superkomputerem Intel Paragon o mocy 150 gigaflopów. Konfiguracji nadano wymowną nazwę StoneSouperComputer, nawiązując do opowieści o zupie na gwoździu, która w różnych wariantach przytaczana jest także w kontekście biznesowym.

W wersji znanej twórcom omawianego superkomputera, w biednej wiosce pojawia się zgłodniały wędrowiec, obiecując jej mieszkańcom ugotowanie smacznej zupy tylko przy użyciu wody i kamieni. Ci zgadzają się bez wahania, a przybysz przystępuje do dzieła, dodając mimochodem, że zupa będzie lepiej smakować, jeśli dodać do niej kapusty. W ten sposób w potrawie pojawiają się kolejne warzywa i przyprawy, a w efekcie zarówno wieśniacy, jak i pomysłowy kucharz najadają się do syta. Potwierdzony powstaniem "komputera z zupy na gwoździu" morał bajeczki jest taki, że kooperacja prowadzi do efektów wykraczających poza możliwości pozornie skromnych i rozproszonych środków. W opisywanym przypadku dotyczy to zarówno sprzętowego wymiaru poszczególnych składników klastra, jak i współpracy twórców superkomputera z ich przełożonymi (uzupełnienie konfiguracji o zakupione stacje robocze).

Dotykamy tu jednak kolejnego składnika rozważanego łańcucha rozwojowego: oprogramowania. Czy mamy go "za dużo“? Wcześniejszy przykład pracownika z arkuszem kalkulacyjnym nie daje jednoznacznej odpowiedzi, ale sugeruje wykorzystywanie bardziej zaawansowanych możliwości tkwiących w pakietach softwarowych. Z kolei twórcy superkomputera "ze złomu" potrzebowali specjalnego oprogramowania dla obliczeń współbieżnych i na szczęście byli w stanie napisać taki algorytm. Często jednak w przeciętnej sytuacji moce softwaru pozostają w uśpieniu. Z reguły oprogramowanie potrafi znacznie więcej niż nam potrzeba, względnie nie jesteśmy w stanie skorzystać z wielu jego przydatnych funkcji, z uwagi na niewystarczającą wiedzę.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200