Parę tygodni temu Intel ogłosił, że jeden z zespołów badawczych stworzył mikroprocesor, który osiągnął wydajność obliczeniową jednego teraflopa, zużywając przy tym 62 waty energii. By uzmysłowić sobie, z jakim skokiem technologicznym mamy do czynienia, trzeba prototypową konstrukcję porównać z pierwszym teraflopowym komputerem. A był nim zbudowany 11 lat temu na zamówienie Sandia National Laboratory superkomputer ASCII Red. Maszyna ta zajmowała powierzchnię 250 metrów kwadratowych, konsumowała 500 kilowatów prądu (plus dodatkowe 500 kilowatów na klimatyzację pomieszczenia) i składała się z 10 tys. procesorów Intel Pentium Pro.
Prototypowy procesor Intela zajmuje kilka centymetrów kwadratowych. Niezwykłą wydajność osiągnięto w modny ostatnio sposób: w jednej obudowie zamknięto kilkadziesiąt procesorów, które nazywa się w takim przypadku „rdzeniami”. Już jakiś czas temu inżynierowie projektujący układy scalone zauważyli, że nie są w stanie w nieskończoność zwiększać wydajności obliczeniowych swoich konstrukcji, tak jak robili to przez ostatnich 30 lat, czyli „podkręcając” częstotliwość pracy układu (to te wszystkie gigaherce, którymi ekscytują się maniacy komputerowi). Intel, który jak żaden inny producent radził sobie ze zwiększaniem prędkości, wpadł we własną pułapkę. Okazało się bowiem, że przy 5 GHz wewnątrz układu zachodzą bardzo dziwne zjawiska, w których rezultacie trudno określić, co jest sygnałem, a co szumem spowodowanym przez wysoką temperaturę. Słowem – zero przestaje różnić się od jedynki, więc procesor działa, ale nie liczył prawidłowo…
Gigahercowa droga została zamknięta. I to nawet wcześniej, niż zamknęła ją prędkość światła, która nakłada górne ograniczenie na długość połączeń wewnątrz układu scalonego. W czasie jednego taktu zegara w procesorze pracującym z prędkością 3 GHz światło przebywa dystans 10 cm. Skrócenie tego dystansu trzykrotnie, czyli zwiększenie częstotliwości pracy do 10 GHz, mogłoby sprawić, że sygnał elektryczny nie zdąży dotrzeć z jednego krańca procesora do drugiego w ciągu jednego cyklu pracy, a to znaczy, że procesor nie byłby w stanie pracować.
ROBOTA DLA RDZENI
Dlatego inżynierowie od kilku lat szukali innych rozwiązań zwiększających wydajność. Sięgnęli po metodę wypróbowaną wiele lat temu w superkomputerach, gdzie do pracy zaprzęganych jest mnóstwo mikroprocesorów, które wykonują obliczenia równolegle. Tak powstały procesory wielordzeniowe, które są najnowszym hitem rynkowym. Najdroższe konstrukcje dostępne w sklepach mają cztery rdzenie, a konsole do gier wyposażono w procesory dziewięciordzeniowe.
Prototyp Intela to rozwinięcie tej idei – tyle, że tam mieści się aż 80 oddzielnych procesorów na jednym kawałku krzemu o wymiarach 20 x 40 mm. Zysk jest oczywisty tylko z pozoru. Umieszczenie dwóch czy czterech rdzeni w jednym mikroprocesorze ma sens, bowiem współczesne komputery stosunkowo łatwo są w stanie wykorzystać ten potencjał. Zwróćmy uwagę, że prawie każdy z nas, pracując na komputerze wykonuje kilka czynności naraz: ja, pisząc ten tekst, mam włączony edytor tekstu, w tle działa program pocztowy, komunikator internetowy i antywirus, a przeglądarka internetowa czeka w pogotowiu. Przy tym system operacyjny zarządza ruchem sieciowym, broni dostępu do komputera za pomocą firewalla. Jak widać, jest tu sporo pracy i dwa czy cztery procesory miałyby co robić.
Co innego jednak 80. Wyobraźmy sobie plac budowy. Oczywiście, że jeden pracownik będzie wolniej przenosił tysiąc cegieł niż dwóch albo czterech. Ale jeśli ustawimy na placu budowy 80 robotników i każemy im przenosić z miejsca na miejsce tysiąc cegieł, to nie jest wcale oczywiste, że zrobią to 80 razy szybciej niż jeden. Zaczną bowiem wchodzić sobie w drogę, potrącać się, co bardziej krewcy będą tracić czas na wyzywanie się i ustalanie hierarchii, kto jest ważniejszy. Podobnie czterech majstrów znacznie sprawniej poradzi sobie z budową domku jednorodzinnego niż 80. A komputer biurkowy to raczej domek jednorodzinny, a nie wielka budowa z tysiącami robotników.
Znalezienie pracy dla 80 rdzeni mikroprocesora to już poważne wyzwanie logistyczne. Na razie znakomicie radzą sobie z tym jedynie naukowcy, którzy potrafią zaprząc do pracy nie marnych 80 mikroprocesorów, lecz dziesiątki tysięcy. Wykorzystują je do różnych obliczeń: prognoz pogody, symulacji działania związków chemicznych czy modnego ostatnio sekwencjonowania DNA. Ale na co dzień zwykły zjadacz komputera nie prognozuje pogody i nie sekwencjonuje DNA. Dlatego popularne systemy operacyjne (z Microsoft Windows w różnych odmianach na czele) nie potrafią obsługiwać tak wielkiej liczby procesorów. Na szczęście zanim nowy procesor Intela trafi na półki sklepowe (a nie ma wątpliwości, że firma w tym kierunku będzie rozwijać swoje produkty), programiści będą mieli czas na nauczenie się nowego stylu pisania aplikacji.
PRZETWARZANIE W DOMU I ZAGRODZIE
Możliwości drzemiące w procesorze są ogromne. Programy biurowe i przeglądarki Internetu na nich raczej nie skorzystają, ale w dzisiejszych czasach robimy coraz więcej zdjęć, coraz więcej filmów. Popularne stają się kamery wysokiej rozdzielczości HDTV czy przenośne odtwarzacze filmów w stylu iPoda. Obróbka takich materiałów cyfrowych wymaga czasu i dużej mocy obliczeniowej. Nowy projekt Intela wychodzi naprzeciw rosnącym potrzebom obliczeniowym także zwykłych ludzi.
Dziś przerobienie filmu pełnometrażowego na potrzeby iPoda trwa około godziny. Teraflopowy procesor Intela skraca ten czas do pół minuty. A filmy to akurat doskonała pożywka dla równoległego prowadzenia obliczeń, bowiem można dzielić je na wiele kawałków i każdy fragment skierować do oddzielnego procesora. Nie można zapomnieć o graczach, którzy od zawsze byli motorem postępu technologii komputerowych. To dla nich projektowane są najwydajniejsze komputery i najszybsze karty graficzne. Najpotężniejszy obecnie procesor produkowany seryjnie – dziewięciordzeniowy IBM Cell – sprzedawany jest w konsolach do gier Sony PlayStation 3. Wprawdzie IBM zapowiada również serwery pracujące z tym mikroprocesorem, ale to jeszcze dzięcioł na dachu, a Sony Play- Station 3 można już kupić. Warto zaznaczyć, że jeden Cell ma wydajność „zaledwie” 0,2 teraflopa, czyli piątą część wydajności prototypowego Intela.
Oczywiście zwiększanie wydajności procesora ma też wpływ demoralizujący na programistów. Nie zajmują się oni bowiem optymalizacją swoich programów pod kątem wydajności, lecz wymyślaniem następnych nowych wodotrysków. Doskonale widać to na przykładzie Windows Vista, która odsyła całkiem sprawne komputery na emeryturę, nie oferując użytkownikom jakiegoś znaczącego skoku jakości. A przecież Vista to system operacyjny, czyli swego rodzaju podkładka pod inne programy. To na jej grzbiecie aplikacje mają korzystać z zasobów komputera. Ale jeśli zasoby są pożerane przez system operacyjny, dla programów wiele miejsca nie zostaje. Na szczęście teraflopowy procesor Intela wymusi na programistach nowy sposób programowania. Oznacza to, że będą musieli przynajmniej przejrzeć jakieś stare zakurzone procedury, tkwiące w kodzie źródłowym systemu operacyjnego od dziesiątków lat, pod kątem zgodności z nowym stylem budowy sprzętu, czyli superkomputerem na biurku.
W MNOGOŚCI SIŁA
W prototypie teraflopowego procesora inżynierowie Intela zmieścili bardzo ciekawą funkcjonalność. Rdzenie składające się na mikroprocesor można włączać i wyłączać w dowolnej chwili. Wyłączony rdzeń nie grzeje się, więc odpowiednio rozkładając pracę można obniżyć temperaturę pracy procesora. A temperatura jest największym wrogiem tranzystorów. Co gorsza, to swoista spirala. Wyższa temperatura zwiększa opór elektryczny, przez co procesor się jeszcze bardziej nagrzewa, więc rośnie opór… Zmniejszenie temperatury przez selektywne wyłączanie rdzeni sprawi, że procesor będzie znacznie oszczędniejszy. Laptop wyposażony w taki układ znacznie więcej czasu wytrzyma na bateriach; wyłączając bezużyteczne rdzenie będzie można obniżyć zużycie prądu do kilku watów.
Niskie zużycie prądu to nie jedyna zaleta giganta. Ponieważ procesor składa się z 80 jednakowych klocków, projektowanie stało się bardzo proste, a to radykalnie skraca czas przygotowania projektu i uruchomienia produkcji. Ogromna powtarzalność w obrębie jednego gotowego procesora może też prowadzić do poważnego obniżenia kosztów produkcji (choć to akurat ma nikły wpływ na finalną cenę produktu). Mikroprocesory produkowane są bowiem na ogromnych waflach krzemowych o średnicy kilkudziesięciu centymetrów.
Teoretycznie taki wafel wycinany z ogromnego monokryształu powinien mieć strukturę doskonałą. W praktyce zdarzają się pewne niedoskonałości, które niestety wychodzą dopiero po zakończeniu całego procesu produkcji. Awaria jednego tranzystora, wywołana takimi zanieczyszczeniami, mogła spowodować, że cały mikroprocesor stawał się bezużyteczny. Teraz w osiemdziesięciordzeniowym mikroprocesorze awaria tranzystora może zablokować jeden rdzeń, ale 79 pozostanie. Układ można nadal sprzedać jako pełnowartościowy, tyle że wolniejszy. W ten sposób znacznie większa część układów pochodząca z jednego wafla krzemowego trafi na sklepowe półki. Czysty zysk (przynajmniej dla producenta).
NIE TYLKO LICZENIE
Niejako odpryskiem gigantycznej wydajności procesora teraflopowego jest kwestia dostarczenia mu pożywki do obliczeń. Na cóż przydałoby się 80 rdzeni, jeśli nie dostawałyby na czas potrzebnych im danych? A przerobienie w ciągu minuty filmu DVD na postać strawną dla iPoda oznacza ni mniej ni więcej, tylko konieczność przepuszczenia w ciągu minuty całego tego filmu – czyli jakichś 4 GB danych! – przez mikroprocesor. Dlatego niezbędnym elementem projektu procesora jest magistrala danych. Tu znów inżynierowie sięgnęli po wypróbowany koncept – w superkomputerach węzły obliczeniowe połączone są siecią komputerową. Taką samą sieć, tylko w miniaturce, zaprojektowano w nowym układzie. Dlatego mówienie o prototypie, że jest superkomputerem w jednym układzie scalonym, jest jak najbardziej uprawnione. Choć procesor wciąż pozostaje prototypem i wiele lat upłynie, zanim ruszą na nim Windowsy (albo Linux, jak kto woli), to jedno jest pewne: nadchodzi era superkomputerów domowych. Co przyniesie – zobaczymy.
Marcin Bójko