Obietnica osobistych superkomputerów

W zeszłym tygodniu Intel ogłosił projekt badawczy, który sprawił, że geekowie skakali z radości: pierwszy programowalny superkomputer teraskalowy na chipie. Firma zademonstrowała pojedynczy chip z 80 rdzeniami lub procesorami i pokazała, że ​​te rdzenie można zaprogramować tak, aby przetwarzały liczby z szybkością biliona operacji na sekundę, co określa się mianem teraflopu. Chip jest wielkości dużego znaczka pocztowego, ale ma taką samą szybkość obliczeń jak superkomputer, który w 1996 roku zajmował około 2000 stóp kwadratowych i pobierał około 1000 razy więcej energii.





Nie tak super: Superkomputer z 1996 roku (u góry po lewej) zdolny do obliczania jednego biliona operacji na sekundę zajmował około 2000 stóp kwadratowych i zużywał 500 000 watów. Niedawno Intel zaprezentował 80-rdzeniowy układ badawczy (na dole po prawej), który osiąga ten sam współczynnik obliczeniowy, ale jest wielkości dużego znaczka pocztowego i zużywa około 65 watów.

Ten układ badawczy jest jednym z pierwszych kroków Intela w kierunku technologii masowo wielordzeniowej, mówi Nitin Borkar, kierownik ds. inżynierii i kierownik projektu laboratoryjnego w firmie Intel. Celem, jak mówi, jest wykorzystanie tego chipa do testowania technik, które mogą sprawić, że technologia wielordzeniowa będzie szybsza, bardziej energooszczędna i, co najbardziej zniechęcające, łatwe do zaprogramowania. Techniki te zostaną wykorzystane w przyszłych produktach, które mogą pojawić się, jeśli wszystko pójdzie dobrze, w ciągu pięciu do dziesięciu lat.

Ale prawie wszyscy inżynierowie w branży komputerowej zgadzają się, że tworzenie komputerów konsumenckich z setkami rdzeni nie będzie łatwe. W rzeczywistości wielu nie jest nawet pewnych, czy można to zrobić. Największym wyzwaniem będzie znalezienie sposobu na całkowitą modernizację oprogramowania, tak aby aplikacje mogły korzystać z wielu rdzeni. Obejmuje to nauczanie programistów, jak pisać kod dla maszyn wielordzeniowych – zadanie znane jako programowanie równoległe – oraz opracowywanie nowych narzędzi, które pozwalają im kodować dokładnie i wydajnie.



Naukowcy i wizjonerzy już zastanawiają się, jak najlepiej wykorzystać te chipy superkomputera. Intel uważa, że ​​rozpoznawanie, wydobywanie i synteza ( RMS ) aplikacje będą miały kluczowe znaczenie. Łącznie, technologie te mogą umożliwić tłumaczenie języka w czasie rzeczywistym za pomocą telefonów komórkowych, wyszukiwanie wideo w czasie rzeczywistym za pomocą wypowiadanych słów lub obrazów oraz lepsze systemy rekomendacji dotyczące zakupów, planowania posiłków, a nawet opieki zdrowotnej.

Aby te aplikacje stały się rzeczywistością, branża komputerowa doświadczy pewnych problemów, mówi David Patterson , profesor informatyki na Uniwersytecie Kalifornijskim w Berkeley. (On i jego koledzy mają stronie internetowej która organizuje dyskusje i zapewnia białą księgę i filmy na ten temat). Jesteśmy na wczesnym etapie tej gigantycznej zmiany, mówi Patterson. Opisuje kierunek, w którym branża zdecydowała się pójść – rezygnując z jednordzeniowych procesorów o ograniczonej wydajności na rzecz technologii wielordzeniowej – niczym przepustka „Zdrowaś Maryjo” rzucona podczas meczu piłki nożnej. Producenci chipów umieszczają coraz więcej rdzeni w chipie, ale inżynierowie oprogramowania nie są pewni, czy będą w stanie nadążyć. To ekscytujący czas dla badaczy, mówi Patterson, jeśli uda nam się wymyślić, jak złapać przepustkę.

Ponieważ częstotliwość zegara – miara szybkości procesora – jednordzeniowych układów scalonych stale rosła przez dziesięciolecia, programiści mogli uniknąć wyzwania związanego z programowaniem równoległym, mówi John Shalf , informatyk w Lawrence Berkeley Laboratory w Berkeley, CA. Ich programy działałyby szybciej, gdyby po prostu czekali 18 miesięcy na pojawienie się nowej generacji chipów, mówi. Ale około 2002 roku stało się jasne, że te jednordzeniowe układy zużywają zbyt dużo energii i nie będą w stanie utrzymać wzrostu prędkości. Dlatego branża zdecydowała się zmienić taktykę: zamiast próbować uzyskać większą prędkość z jednego procesora, producenci chipów po prostu dodali kolejny procesor. Teraz, gdy nie możemy podkręcić częstotliwości zegara, musimy stawić czoła równoległości, mówi Shalf, a najlepszym sposobem na scharakteryzowanie reakcji branży jest powszechna panika.



Co jest tak przerażającego w programowaniu równoległym? Na początek został zdegradowany do specjalistów w świecie obliczeń o wysokiej wydajności (HPC), którzy piszą oprogramowanie, które rozwiązuje określone problemy, które działają na maszynach z tysiącami i milionami rdzeni. Oprogramowanie może tworzyć modele zmian klimatu lub przewidywać fałdowanie się białek, ale zostało napisane do pojedynczego żmudnego zadania, a nie dla kaprysów konsumentów, którzy chcą rozmawiać z komputerem, oglądać filmy w wysokiej rozdzielczości i mieć oko na swoje. starzejący się rodzice w połowie kraju.

W szczególności programy równoległe muszą być napisane tak, aby zadania mogły być odpowiednio dzielone między procesorami. Jest to trudne, ponieważ nie wszystkie aplikacje mają naturalnie komponenty, które można rozdzielić; czasami, gdy są rozdzielone, zadania są realizowane w różnym czasie i tworzą wąskie gardła. Ponadto istnieją komplikacje ze współdzielonymi zasobami: jeśli aplikacja potrzebuje dostępu do danych w pamięci współdzielonej przez dziesiątki lub setki innych rdzeni, program może spowolnić lub zawiesić się. Co więcej, debugowanie programów równoległych może być koszmarem, ponieważ często błąd jest trudny do zduplikowania, co utrudnia znalezienie źródła problemu.

Ale nawet przy wszystkich wyzwaniach jest nadzieja, mówi Shalf. Badacze HPC opracowali portfolio równoległych algorytmów, które mogą być przydatne w konsumenckich programach równoległych. Ponadto na rynku dostępne są już produkty wielordzeniowe, które dostarczają wskazówek dotyczących najlepszych podejść z punktu widzenia architektury, a także z punktu widzenia programowania. Na przykład firma graficzna NVIDIA właśnie wypuścił komercyjny układ ze 128 rdzeniami, przeznaczony do renderowania grafiki dla aplikacji takich jak gry wideo. Wiele rdzeni jest ogólnego przeznaczenia, co oznacza, że ​​można je zaprogramować do wykonywania wielu różnych zadań związanych z grafiką. Alternatywą jest, aby rdzenie miały instrukcje na stałe w chipie.



Ponadto Intel, AMD i inne firmy współpracują z naukowcami akademickimi, próbując stworzyć ramy programowania równoległego, które można uzgodnić. Jedno podejście, które wygląda obiecująco, nazywa się pamięcią transakcyjną, mówi Krste Asanović , profesor informatyki na MIT. (Zobacz Kłopoty z komputerami wielordzeniowymi). Używając pamięci transakcyjnej, będącej kombinacją architektury chipowej i kodu, programiści będą mogli myśleć bardziej sekwencyjnie, tak jak robią to przy programowaniu systemów jednordzeniowych, i pozwolić systemowi zapewnić równoległość. Asanović mówi, że programiści piszą instrukcje, które zaczynają się i kończą w sposób liniowy, ale za kulisami działają równolegle. Takie podejście wymaga współpracy dostawców sprzętu oraz inżynierów oprogramowania, ponieważ sprzęt i oprogramowanie muszą ze sobą współpracować. Obie społeczności rozmawiają, mówi Asanović, ale nie ma zgody co do tego, jak to będzie wyglądać. Dodaje, że pamięć transakcyjna najprawdopodobniej będzie jedną z kombinacji podejść, które mogą ułatwić równoległe programowanie.

Jednak bez konsensusu co do tego, jak postępować z technologią wielordzeniową, branża komputerów konsumenckich może znaleźć się w martwym punkcie za około pięć lat, mówi Shalf. Jest jednak optymistą, ponieważ dziedzina obliczeń równoległych została wstrzyknięta z nowym poczuciem pilności wraz z pojawieniem się produktów dwu- i czterordzeniowych. W środowisku akademickim możemy się nie zgadzać przez lata, mówi, ale przemysł, z jego ekonomicznym imperatywem, ma sposób, by dość szybko znaleźć rozwiązanie.

ukryć