FrazPC.pl - Programy - Pogoda - Gry - Hosting


Aktualności Programy Artykuły GSM RTV Board
Intel Pineview | HTC HD2 | Westmere | Profil | Loguj | Stats |


Artykuły



22-12-2009


Technologie – Intel Single-chip Cloud Computer

Technologie – Intel Single-chip Cloud Computer

Chmura w jednej kości

Cloud computing, czyli przetwarzanie w chmurze, to jeden z najważniejszych obecnie trendów w rozwoju branży informatycznej. Pod tym pojęciem kryje się jednak wiele znaczeń – od programowych, poprzez sposoby prowadzenia pracy, na sprzętowych systemach rozproszonych skończywszy. Teraz do "chmurowego przetwarzania" dołączył Intel, który drugiego grudnia oficjalnie zaprezentował 48-rdzeniowy procesor Single-chip Cloud Computer (SCC).
 
Europejska premiera nowego układu miała miejsce w ośrodku badawczym Intela w Brunszwiku (Braunschweig) w Niemczech. Uczestniczyło w niej kilkudziesięciu dziennikarzy z całej Europy (w tym ekipa FrazPC). Na konferencji zaprezentowano nie tylko sam układ i jego możliwości, ale również założenia i osiągnięcia dotyczące długofalowego programu badawczego w ramach, którego ten prototypowy wielordzeniowy procesor powstał. Z przedstawionych informacji wynika, że układ SCC łączy w sobie najistotniejsze założenia projektu Terascele i procesora Polaris (patrz: http://www.frazpc.pl/artykuly/611/Terascale/projekt/przyszlosci) oraz kości graficznej Larrabee, nad którą prace zostały niedawno zarzucone (http://www.frazpc.pl/news/28289-Larrabee_usmiercony).
 
Cloud computing – co to takiego?
 
Zanim przejdziemy do omówienia architektury i możliwości układu SCC, parę słów warto poświęcić na wyjaśnienie "zjawiska i technologii cloud computingu". Najczęściej pod pojęciem przetwarzania w chmurze rozumie się pracę z danymi w zdecentralizowanym środowisku, w którym przetwarzane informacje mogą znajdować się (i się znajdują) w różnych miejscach – część danych na jednym serwerze, część na innym, zapytania przetwarzane są prze jeszcze inną maszynę itd. Najlepszym przykładem klasycznego, rozumianego w ten sposób cloud computingu jest korzystanie z Gmaila, edycji dokumentów za pośrednictwem Google Apps czy np. blogowania w systemie Wordpress lub korzystania z Facebooka. Innymi słowy, przetwarzanie w chmurze jest to architektura usług, w których przetwarzanie danych i różne obliczenia nie odbywają się na komputerze użytkownika, ale są obsługiwane przez wiele serwerów.


Diagram przedstawiający chmurę cloud computing. Źródło: Wikipedia

Nieco inaczej cloud computing definiuje np. firma Google. Według niej definicja ta ma nieco bardziej sprzętowy charakter i cloud computing w tym wypadku to setki komputerów i serwerów z wielordzeniowymi procesorami połączone siecią o wysokiej przepustowości. Podobnie zresztą przetwarzanie w chmurze rozumie IBM czy Amazon. Firmy te udostępniają własną ogromną infrastrukturę informatyczną, której moc obliczeniowa nie jest w pełni wykorzystana, na potrzeby klientów. Innymi słowy, według takiej definicji cloud computing to możliwa do wykorzystania rozproszona moc obliczeniowa, na którą składają się setki rozrzuconych po całym Świecie wieloprocesorowych i wielordzeniowych serwerów.
 
W podobnie "sprzętowy" sposób cloud computing rozumie firma Intel. Dla niej przetwarzanie w chmurze to współpracująca ze sobą sieć wielordzeniowych procesorów, które w zależności od potrzeb skupiają się na takich bądź innych zadaniach. Moim zdaniem w tym wypadku znacznie lepszym określeniem byłoby jednak użycie terminów dynamic grid computing lub dynamic cluster computing, które co prawda jest znacznie mniej "medialne", ale za to dużo lepiej oddają istotę problemu.


Dzisiejsze, sprzętowe rozumienie sieci cloud computing. Źródło: Intel

Miniaturyzacja cloud computingu
 
Wróćmy jednak do układu SCC. Zaprezentowany przez Intela w Brunszwiku procesor Single-chip Cloud Computer, znany również pod kodową nazwą Rock Creek to 48-rdzeniowy eksperymentalny układ wykorzystywany do badań związanych z rozwojem nowych technologicznych koncepcji sprzętu i oprogramowania. Ten wykonany w 45-nanometrowym procesie układ jest konfigurowalnym wielordzeniowym procesorem o strukturze klastra w którym dwa rdzenie wyposażone w przełącznik sieciowy (o którym za chwilę) stanowią jeden node (węzeł) – co ciekawe, każdy rdzeń może uruchamiać własny system operacyjny. Taką, zbliżoną, klastrową organizacją architektury określaną często angielskim terminem cluster-on-a-chip charakteryzowały się również, wspomniane przeze mnie na początku układy – graficzny Larrabee i 80-rdzeniowy Polaris.


Układ Intel Polaris związany z projektem badawczym Terascale. Źródło: Intel


Architektura układu Larrabee. Źródło: Intel

W skład pojedynczego node’u układu SCC, nazywanego tutaj kafelkiem (ang. tile), wchodzą dwa procesorowe rdzenie, z których każdy ma własną pamięć podręczną cache L2, jeden wspólny dla obu rdzeni bufor wiadomości oraz jeden router zapewniający komunikację z pozostałymi dwurdzeniowymi kafelkami.


Budowa układu Single-chip Cloud Computer (SCC). Źródło: Intel

Kafelki i banki
 
Kafelki połączone są ze sobą w większe grupy. Układ podzielono na sześć części (banków) złożonych z czterech kafelków każdy. Całość tworzy siatkę (ang. mesh), w której każdy bank jest połączony z innymi bankami w siatce. Dzięki temu zwiększono przepustowość i niezawodność systemu, a także zmniejszono liczbę kolizji przesyłanych pakietów, ponieważ sygnał może być przesyłany różnymi ścieżkami, a obciążony bank po prostu może zostać ominięty. Co więcej, dzięki temu łatwiej zarządzać energią i wewnętrznym rozkładem częstotliwości pracy układu – każdy bank jest niezależnie zasilany, przez co dla mniej obciążonych części procesora SCC można zmniejszyć napięcie zasilania lub nawet całkowicie wyłączyć nieużywany bank, co wpływa na zmniejszenie zużycia energii i ilość wydzielanego ciepła. Co więcej, wewnątrz każdego banku, każdy z czterech kafelków może być niezależnie taktowany zegarami o różnej częstotliwości. Dzięki temu zaawansowanemu systemowi zarządzania energią złożony z 48 rdzeni procesor Intel SCC pobiera zaledwie od 25 do 125 watów.


Mechanizm zaawansowanego zarządzania częstotliwością zegara i napięcia zasilającego zastosowanego w układzie SCC. Źródło: Intel


Zarządzanie energią w 48-rdzeniowym procesorze Intel Rock Creek.

Zastosowane w procesorze Rock Creek rdzenie zgodne są z architekturą IA-32. Tak naprawdę, jak udało nam się nieoficjalnie ustalić, są to nieznacznie zmodyfikowane rdzenie klasy Pentium. Cały procesor Single-chip Cloud Computer wyposażony został, tak jak widać to na rysunku powyżej, w cztery dwukanałowe kontrolery pamięci DDR3.
 
Architektura routerowa
 
Pomysł wykorzystania routerów do wymiany danych zaczerpnięto wprost z architektury Polarisa, którą określa się też nazwą RIB (Router Interface Block). Inżynierowie już wtedy zorientowali się, że wydajność w układach o tradycyjnej architekturze SMP (Symetric Multi Processing) mające więcej niż 16 rdzeniami przestaje wzrastać liniowo podczas dodawania kolejnych rdzeni. Ponieważ SCC ma tych rdzeni 48, dlatego zdecydowano się od razu zaprojektować ten układ w architekturze RIB.


Wymiana danych w układzie SCC. Źródło: Intel

Przepływność sieci routerowej, podobnie jak w Polarisie wynosi 32 GB/s. Również i tutaj routery sterowane są programowo. Dzięki temu osiągnięto bardzo dużą elastyczność w przekazywaniu zadań obliczeniowych z kafelka do kafelka – jest to szczególnie istotne w chwili, gdy jednocześnie przetwarzane są różnorodne zadania.


Monitorowany na bieżąco przepływ danych między poszczególnymi rdzeniami w układzie SCC.

MPI i JavaScript
 
Zademonstrowane dziennikarzom w Brunszwiku dwie platformy wykorzystujące płyty główne Copper Ridge wykorzystywały do pracy dwóch różnych modeli komunikacji międzyprocesorowej – udało się to zrobić właśnie dzięki możliwości dowolnego programowania routerów.


Demonstracyjne platformy testowe dla procesorów Single-chip Cloud Computer.


Płyta główna o kodowej nazwie Copper Ridge z 48-rdzeniowym procesorem Intel SCC.

Pierwsza z nich wykorzystywała model MPI (Message Passing Interface) czyli interfejs transmisji wiadomości. Ten protokół komunikacyjny stosowany jest przy przesyłaniu komunikatów między wątkami w programach równoległych, które uruchomione zostały na kilku procesorach lub komputerach. MPI jest obecnie najczęściej wykorzystywanym modelem w komputerowych klastrach oraz superkomputerach. Ponieważ jest bardzo dobrze udokumentowany oraz istnieje do niego cała masa bibliotek z których można korzystać w wielu językach programowania (m.in. C, C++, Ada, Fortran) nic dziwnego, że inżynierowie z Intela postanowili go wykorzystać w projekcie SCC. Na platformie testowej wykorzystującej model MPI uruchomiono obliczenia związane z wizualizacją fraktali, a ściślej, zbioru Mandelbrota. Jak można się domyślić obliczenia realizowane były bardzo szybko, a każdy procesor odpowiadał za kalkulacje związane ze ściśle określonym fragmentem obrazu.


Obliczenia wizualizacji fraktali (zbiór Mandelbrota) wykonywane na procesorze SCC. Do komunikacji międzyukładowej wykorzystano model MPI.

Na drugim komputerze do międzyprocesorowej komunikacji wykorzystano JavaScript z rozproszonym między kafelki przetwarzaniem wątków (technologia web worker threads). Demonstracja ta miała na celu zobrazowanie idei implementacji kilku serwerów w pojedynczym układzie półprzewodnikowym (jednoukładowa farmy serwerów JavaScript – JavaScript Server Farm on a Chip). Oprogramowanie obciążające wirtualne serwery w układzie SCC dotyczyło obliczeń fizyki zachowania się ubrań. Aplikację w JavaScripcie uruchomiono w przeglądarce internetowej Firefox, która ma już od pewnego czasu zaimplementowaną obsługę wielowątkowości w aplikacjach webowych (właśnie web worker threads) pozwalającą zapytanie kierowane do serwera JavaScript rozproszyć na kilka lub kilkanaście maszyn.


Symulacja zachowania się ubrań z wykorzystaniem technologii web worker threads i JavaScriptu uruchomiona na procesorze SCC emulującym kilka serwerów web.

Ciekawa okazała się nasza rozmowa z przedstawicielami Intela na temat systemu operacyjnego. Na zdjęciach, we wszystkich oknach zauważyć można, że programy wywoływane są ze specjalnej mini dystrybucji Linuksa. Jednak to tylko pozory. Linuks uruchomiony jest na konsoli, która jest po prostu zwykłym pecetem. Wywołania dotyczące operacji wykonywanych przez układ SCC są realizowane zaś w jego wewnętrznym kodzie maszynowym, który przesyłany jest z linuksowej konsoli i pomocniczego peceta wprost do układu SCC. Obecnie dla układu SCC nie istnieje system operacyjny. Wszystkie programy realizowane są zaś na niskim poziomie, a kod i dane do pamięci przesyłane są z innej maszyny.


Krzem z 48-rdzeniowym procesorem Single-chip Cloud Computer (SCC).

Barrelfish
 
Zaimplementowanie takiego systemu operacyjnego jak Windows dla procesora SCC jest dość trudne. Intel wraz z Microsoftem i wieloma uczelniami wyższymi pracują nad różnymi systemami operacyjnymi, które można by było zastosować do obsługi procesora takiego jak Single-chip Cloud Computer. Jednym z takich systemów jest Barrelfish. Na konferencji wystąpił prof. Timothy Roscoe z ETH (Eidgenössische Technische Hochschule Zürich) w Zurychu, który wraz naukowcami i specjalistami z ośrodka Microsoft Research Cambridge pracuje właśnie nad Barrelfishem.


Wykład profesora Timothy Roscoe – logo projektu Barrelfish.

Barrelfish to system operacyjny bazujący na tak zwanym multikernelu. Multikernel działa w sposób rozproszony jednocześnie na wielu rdzeniach, a poszczególne jądra procesora są tutaj traktowane jako sieć niezależnych rdzeni (węzłów) – dokładnie tak jak ma to miejsce w systemach rozproszonych. Poszczególne węzły w Barrelfishu komunikują się między sobą za pomocą wiadomości, w podobny sposób jak w modelu MPI – jest on więc idealny dla procesora SCC.
 
Co ciekawe, eksperymentalny system Microsoftu nie izoluje warstwy aplikacji od warstwy sprzętowej za pomocą sterowników. Barrelfish korzysta bowiem ze specjalnej bazy danych, w której zawarto wszystkie niezbędne niskopoziomowe informacje o wykorzystywanym w systemie sprzęcie. Nie występują tutaj też problemy z dostępem każdego rdzenia do współdzielonej pamięci. Potrzebne dane rozsyłane są odpowiednimi komunikatami przez sieć do potrzebującego danej informacji procesora, nie ma też problemów ze spójnością danych. Z punktu widzenia pamięci i urządzeń komputera wielordzeniowy układ pracujący pod kontrolą Barrelfisha traktowany jest jak jeden klasyczny jednordzeniowy procesor.

Autor: Marcin Bieńkowski

Komentarze (4)





Podobne Artykuły/Recenzje

06-07-2009 - INTEL: Czas 32 nanometrów (6%)
15-05-2009 - Technologia: Obliczenia prowadzone za pomocą kart graficznych (5%)
23-09-2009 - ATI Radeon 5870 / 5850 - Technologia (5%)
12-03-2010 - Technologia druku komputerowego (5%)
11-03-2009 - RFID - miniaturowy szpieg (3%)
24-04-2006 - PureVideo - technologia przyszłości (3%)
04-01-2010 - Technologie: 32 nanometrowe procesory Intela (3%)
09-02-2010 - Technologie: NVIDIA Fermi GF100 (3%)
18-09-2009 - Produkcja procesorów i półprzewodników - od piasku do procesora (3%)
18-01-2010 - Technologie: Architektura Fermi - NVIDIA GF100 (3%)
12-01-2009 - Technologia vPro - zarządzanie na odległość (3%)
29-05-2009 - Przydatne serwisy i usługi online - Wszystko na chmurce (3%)
24-10-2003 - Konferencja Intel (3%)
29-04-2004 - Intel Pentium 4 3.2GHz Prescott (3%)
30-12-2005 - Ekstremalny kwartet - INTEL PENTIUM EE (3%)
29-12-2003 - Intel Pentium 3.2 GHz Extreme Edition (3%)
11-09-2008 - Intel Developer Forum Fall 2008 (3%)
31-10-2008 - Architektura procesorów: Intel Core i7 (Nehalem) (3%)
22-05-2009 - INTEL CORE I7 920 (D0) - Zapowiedź zmian (3%)
07-09-2009 - INTEL PENTIUM DUAL CORE E6300 (3%)

___________________________
Więcej artykułów



Redakcja serwisu FrazPC.pl nie ponosi odpowiedzialności za ewentualne szkody powstałe
w wyniku użytkowania jakichkolwiek materiałów ukazujących się na łamach FrazPC.pl.
Copyright © FrazPC.pl 1997-2010
| Online: 3050 | Online w dziale: 178 | Odsłony: 609,577,444 | Czas generacji strony: 0.0058 s |