Superprocesor

Wydajność komputerowej konfiguracji zależy od jej "serca" czy może raczej "mózgu", jakim jest procesor. Czy zatem warto inwestować w droższe układy wielordzeniowe, czy też raczej stawiać na klasyczną wieloprocesorowość?

Wydajność komputerowej konfiguracji zależy od jej "serca" czy może raczej "mózgu", jakim jest procesor. Czy zatem warto inwestować w droższe układy wielordzeniowe, czy też raczej stawiać na klasyczną wieloprocesorowość?

Cały rozwój technologii informatycznych da się sprowadzić do czterech megatrendów: wirtualizacji, sieciowości, mobilności i miniaturyzacji. Bliższa analiza tych zjawisk kończy się jednak swego rodzaju zaskoczeniem - to ostatnie z tych zjawisk warunkuje trzy pozostałe. "Lokomotywa" ENIAC-a nie mogła się ruszyć z miejsca, podczas gdy telefon komórkowy można już nosić w kieszeni. W końcu popularna komórka jest specjalizowanym urządzeniem, w którym znajdziemy odpowiedniki typowej konfiguracji komputerowej: procesor, pamięci, interfejsy, klawiaturę i ekran.

Konsekwencją mobilności informatyki jest łączenie się urządzeń elektronicznych we wszechobecnej sieci (evernet) o znacznie większym zasięgu niż miałoby to miejsce w przypadku mniejszej liczby dużych konfiguracji. To z kolei owocuje wirtualizacją także na poziomie metainformatycznym: mamy wirtualne organizacje, globalizację i społeczeństwo informacyjne. Wirtualizacja sprowadza się bowiem do zastępowania materii informacją, co tworzy zupełnie nowy rodzaj cywilizacji.

W przypadku miniaturyzacji mamy do czynienia nie tylko ze sferą urządzeń makroświata, lecz także ich fizycznych właściwości w mikroświecie, co opisuje prawo Moore'a. W szczególności dotyczy ono mikroprocesorów, czyli "serca" nie tylko każdego komputera, ale nieomal całego współczesnego rozwoju technologicznego. Technologia informatyczna ma bowiem charakter dyfuzyjny, tzn. jej znaczenie objawia się praktycznie w każdym innym obszarze technologicznym: od zastosowań medycznych czy wytwórczych do agrotechnicznych bądź rozrywkowych i od transportu czy edukacji do bankowości bądź energetyki.

Pikospinotronika

Tak więc od pierwszych z lat 70., zawierających kilkaset tranzystorów, przeszliśmy 3 dekady później do kilkuset milionów tranzystorów (np. Itanium 2 - 410 mln). Jednak ze względu na różnice architektur współczesnych mikroprocesorów i tych wcześniejszych, warto korzystać z innego parametru warunkującego gęstość upakowania elementów na chipie, mianowicie minimalnego wymiaru technologicznego. Obecnie dla następcy Pentium M - Preslera wynosi ona 65 nanometrów. W ten sposób niepostrzeżenie przeszliśmy de facto od mikroelektroniki do nanoelektroniki. Dodajmy, że od lat przekraczamy również kolejne, niewidzialne granice naszej wyobraźni, poza którymi nie będzie można już wytwarzać coraz "gęściejszych" mikroprocesorów z uwagi na występowanie efektów kwantowych.

Najpierw tą granicą miało być 0,25 µm (250 nm). Później przesunięto ją do 150 nm i dalej, do coraz mniejszych wartości. Być może kiedyś zostanie ona pozornie osiągnięta, gdyż tak się dzieje dla określonego typu technologii wytwarzania układów scalonych. Nie ma wszakże powodu, by powątpiewać, że również poradzimy sobie z kolejnym przejściem: od nano- do pikoelektroniki. Co prawda należy spodziewać się, że "rozdzielczość" elektronu okaże się zbyt "gruboziarnista" i trzeba będzie przejść do struktur jeszcze mniejszych, np. jego właściwości, takich jak spin. W takim wypadku pikoelektronika będzie tak naprawdę pikospinotroniką.

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ć. W informatycznym cyklu rozwojowym sprzęt pełni rolę pierwotną w relacji do oprogramowania, zaś software'owe narzędzia muszą powstać wcześniej niż tworzona za ich pomocą 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. Ewolucja informatyki przebiegająca właśnie według 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.

Tylko taka sytuacja gwarantuje bowiem użytkownikowi odpowiedni komfort: świadomość, że każda jego potrzeba może być zaimplementowana programowo. Z kolei programista wie, że idee, które chce implementować, są wykonalne i to z pożądaną szybkością, bo do dyspozycji jest odpowiednie zaplecze sprzętowe. Owszem, nie należy przy tym zapominać o rachunku ekonomicznym, ale technicznie musi być nas stać na twierdzenie, że możliwe jest niemal wszystko. Tym różni się nasza epoka od czasów Charlesa Babbage'a - ówczesny rozwój musiał być wolniejszy od aktualnego, gdyż najwspanialsze nawet idee napotykały nieprzekraczalne bariery ich fizycznej realizacji.

Procesor-hybryda

Nadal będzie malała szerokość scalonej ścieżki i rosła częstotliwość taktowania mikroprocesorowego zegara. A co z tak podstawowym parametrem (zresztą z uwagi na hybrydowość elektronicznych architektur niejednoznacznie definiowalnym) jak "bitowość"? Czy po mikroprocesorach 4-, 8-, 16-, 32- i 64-bitowych pojawią się masowo 128- czy 256-bitowe? W każdym razie sceptyków nie brakowało przy przechodzeniu od architektur 16-bitowych do 32-bitowych czy później w kolejnym kroku - do 64 bitów. Także w przyszłości trzeba się liczyć z takimi głosami, nie stanowią one jednak większości i nie są w stanie zablokować postępu, źródeł sceptycznego podejścia do bitowości można upatrywać też w kampaniach marketingowych.

Działy marketingu liczą po prostu na to, że informatyczny decydent wywodzi się raczej z pionu ekonomicznego niż technicznego, jest raczej finansistą niż inżynierem; zapewne po stosownych szkoleniach, na których zaprezentowano mu bez szerszych komentarzy wiele prezentacji z hasłami typu: "procesor CISC jest lepszy niż RISC", "najnowocześniejsze są obiektowe bazy danych" czy "kupuj systemy klasy ERP, a nie MRP". Po tym wystarczy już tylko zaprojektować odpowiednie "nalepki" dla nowoczesnych towarów. W ten sposób można próbować sprzedawać produkt, składający się z dwóch tabelek i makra w Excelu jako "system planowania produkcji ERP". Dekadę temu, kiedy nastała moda na epatowanie użytkownika obiektowością w bazach danych, zdarzyło mi się trafić na materiały reklamowe typowej relacyjnej , której producent zapewniał, że mamy do czynienia z obiektową bazą danych, ponieważ "operuje ona obiektami, takimi jak tabele". No cóż, na tej zasadzie można by było "udowodnić", że obiektowa jest baza danych... bez bazy danych, tzn. zwykły, nieuporządkowany plik o dostępie sekwencyjnym, zawierający nieindeksowane obiekty.

Jednak klasyczna bitowość straci na znaczeniu najpóźniej w tym momencie, gdy przejdziemy od bitu do kubitu (q-bit, quantum bit), czyli bitu kwantowego, względnie bitu wielowymiarowego. Jednocześnie obserwujemy ekspansję architektur wieloprocesorowych i to w różnych obszarach. Po pierwsze, mamy do czynienia z klasyczną wieloprocesorowością w jednym komputerze. Takowe pojawiały się już przed dziesiątkami lat (Burroughs D-825, 1962 r.). Po drugie, mamy też przetwarzanie w konfiguracjach rozproszonych (distributed processing), np. systemy kratowe (grid computing), co jest objawem megatrendu sieciowości w informatyce. W ten sposób powstają 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. Mamy tu więc do czynienia z mieszanymi, hybrydowymi rozwiązaniami, zarówno w odniesieniu do pojedynczych procesorów, jak i ich zestawów.

Wieloprocesorowa niewspółbieżność

A zatem superprocesor przyszłości, w zależności od celu, dla którego będzie produkowany i konfigurowany z mniejszych, gotowych "cegiełek", może być jednym z wielu wariantów systemu wielokomputerowego i wieloprocesorowego. W szczególności, niekoniecznie taka cegiełka musi być nastawiona na najwyższą, indywidualną wydajność, ale np. na zdolność do łatwego łączenia się w grupy i komunikowania się między sobą, tak aby uruchamiane na nich aplikacje nie wywoływały problemów mikroenergetycznych. Jednym z podstawowych dylematów projektanta mikroprocesorów jest bowiem zwiększanie ich wydajności przy minimalizowaniu poboru energii (chodzi o efekty cieplne). Zapewne warto skorzystać z tej reguły także w makroświecie, aby zwiększać produktywność w gospodarce, bez wzrostu zapotrzebowania na zwiększone dostawy surowców energetycznych, co może być problemem destabilizującym - nie tylko środowiskowo, ale wręcz politycznie.

Pamiętajmy jednak, że nawet najpotężniejszy układ wieloprocesorowy (Blue Gene/L zbudowano ze 131 072 procesorów Power PC 440) jest wart tyle, ile poziom współbieżności zadania - to zjawisko, z którym zetknął się każdy, kto próbował zwiększyć tempo kopania dołu metr na metr, zatrudniając większą liczbę kopaczy. Również dla superkomputera i zdefiniowanego zadania istnieje optymalna liczba procesorów. Zilustrujmy rzecz prostym przykładem. Przyjmijmy, że jeden procesor może wykonać określone zadanie w ustalonym, jednostkowym czasie. Gdyby problem dało się w 100% "zrównoleglić", to oczywiście czas potrzebny n procesorom byłby n razy mniejszy i wynosił 1/n. Niestety, w praktyce nie wszystkie fragmenty programu można sparalelizować. Przyjmijmy dalej, że 30% kodu trzeba wykonać sekwencyjnie i opiszmy ten czas współczynnikiem a = 0,3.

Zysk na czasie otrzymamy jedynie dla pozostałej części algorytmu: 1-a, proporcjonalnie do liczby użytych procesorów. Tak więc cały czas obliczeń T wyrazi się formułą: T = (1 - a )/n + a.

Podstawmy zatem do wzoru przyjętą wartość 0,3, dla przypadku gdy decydujemy się na dodatkowy procesor (n = 2); otrzymamy wówczas T = 0,65. Uzyskaliśmy spodziewane skrócenie czasu, ale zbadajmy teraz jak wygląda przyrost wydajności, którą można opisać odwrotnością czasu: 1/T = 1,538. Wniosek: drugi procesor przyniósł poprawę wydajności jedynie o 54%! Łatwo zauważamy hamujący wpływ współczynnika niewspółbieżności zadania, na przyrosty wydajności: im jest mniejszy, tym owe przyrosty są większe.

Zwróćmy z kolei uwagę, że nawet nieskończona liczba procesorów nie podniesie nam relatywnej wydajności powyżej granicy jaką jest 1/a. Dla 0,3 będziemy się zatem asymptotycznie zbliżać do poziomu 3,33 w stosunku do wydajności podstawowej. W takiej sytuacji użycie jednego, cztery razy szybszego procesora da lepszy efekt niż zastosowanie 1000 wolniejszych procesorów równoległych! Jasne jest też, że największe przyrosty wydajności uzyskuje się przy pierwszych, dodatkowych procesorach.


TOP 200