Systemy wieloprocesorowe
Transkrypt
Systemy wieloprocesorowe
Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Systemów Geoinformatycznych Aplikacje Systemów Wbudowanych Techniki zwiększające wydajność mikroprocesorów Systemy wieloprocesorowe Krzysztof Bikonis Gdańsk, 2016 Techniki zwiększające wydajność mikroprocesorów Przerwania • Przerwanie – sygnał powodujący zmianę przepływu sterowania, niezależnie od aktualnie wykonywanego programu i wykonanie przez procesor kodu jego obsługi • Przerwania dzielą się na: - Sprzętowe: - zewnętrzne – sygnał pochodzi z zewnętrznego układu - wewnętrzne – zgłaszane przez procesor dla sygnalizowania sytuacji wyjątkowych (np. dzielenie przez zero) • Programowe – z kodu programu wywołana jest procedura obsługi przerwania (najczęściej wykorzystywane do komunikacji z systemem operacyjnym) 2 Techniki zwiększające wydajność mikroprocesorów Bezpośredni dostęp do pamięci DMA • DMA ma za zadanie odciążyć procesor główny od samego przesyłania danych z miejsca na miejsce (np. z urządzenia wejściowego do pamięci), a procesor w tym czasie może robić co innego 3 Techniki zwiększające wydajność mikroprocesorów Pamięć podręczna CACHE procesora • Pamięć podręczna CACHE to mechanizm, w którym ostatnio pobierane dane dostępne ze źródła o dłuższym czasie dostępu i niższej przepustowości są przechowywane w pamięci o lepszych parametrach • Przyspiesza dostęp do relatywnie wolnej pamięci RAM • Charakteryzuje się bardzo krótkim czasem dostępu • Przechowuje dane, które będą w niedługim czasie przetwarzane 4 Techniki zwiększające wydajność mikroprocesorów Pamięć podręczna CACHE dysku twardego • Przyspiesza dostęp do bardzo wolnej pamięci masowej • Daje to możliwość przechowania danych w buforze i wysłania do kontrolera bez wykonywania cyklu dostępu do nośnika oraz wpływa pozytywnie na szybkość całego systemu 5 Techniki zwiększające wydajność mikroprocesorów Linia potokowa • Operacja obliczeniowa jest rozkładana na zbiór prostszych operacji elementarnych wykonywanych w kolejnych blokach • Bezpośrednio po zakończeniu pierwszego kroku, pierwsza porcja przetworzonych danych przekazana zostanie do drugiej itd. • W tym czasie na wejście pierwszego bloku mogą zostać podane nowe argumenty • W rezultacie procesor może wykonywać n instrukcji równocześnie CPU Sterowanie lokalne RAM blok1 blok2 blok3 blok4 6 Techniki zwiększające wydajność mikroprocesorów Zrównoleglenie • Zwiększenie szybkości działania pojedynczego procesora wcześniej, czy później napotka na barierę technologiczną • Choć nie wszystkie algorytmy sekwencyjne da się zastąpić równoległymi, istotnym podejściem do zwiększenia ogólnej wydajności jest wprowadzenie większej ilości procesorów do systemu • Ma to znaczenie w sytuacji, gdy od komputera oczekuje się między innymi interakcji z wieloma użytkownikami, lub wykonywania współbieżnie wielu aplikacji • Wprowadzenie współbieżności CPU1 wprowadza dodatkowe utrudnienia RAM CPU2 w projektowaniu oprogramowania oraz niedeterminizm CPU3 7 Techniki zwiększające wydajność mikroprocesorów • Proces – program w czasie wykonywania, wykonywanie musi przebiegać sekwencyjnie • W skład procesu wchodzi: - program - licznik rozkazów - stos - sekcja danych • Stany procesów: - nowy – proces został utworzony - wykonywany – są wykonywane instrukcje programu - oczekujący – proces czeka na zajście jakiegoś zdarzenia - gotowy – proces czeka na przydzielenie procesora - zakończony – proces zakończył wykonanie 8 Techniki zwiększające wydajność mikroprocesorów Diagram stanów procesu 9 Techniki zwiększające wydajność mikroprocesorów • Blok kontrolny procesu zawiera informacje o: - stanie procesu - stanie licznika rozkazów - stanie rejestrów procesora - informacje o szeregowaniu zadań przez procesor - informacje o pamięci zajętej przez proces - informacje o stanie wejściawejścia-wyjścia • Kolejki szeregowania procesów - kolejka zadań – zbiór wszystkich procesów w systemie - kolejka gotowych – zbiór wszystkich procesów umieszczonych w pamięci głównej, gotowych i czekających na wykonanie - kolejki do urządzeń – zbiór procesów czekających na określone urządzenie wejściawejścia-wyjścia 10 Techniki zwiększające wydajność mikroprocesorów Szeregowanie procesów • Szeregowanie długoterminowe - wybór procesów, które przejdą do kolejki gotowych - wykonywane rzadko (sekundy, minuty) - może być wolne • Szeregowanie krótkoterminowe - wybór następnego procesu do wykonania - przydział CPU - wykonywane często (milisekundy) - musi być szybkie 11 Techniki zwiększające wydajność mikroprocesorów Procesy można określić jako • zorientowane na urządzenia wejściewejście-wyjście • zorientowane na obliczenia Przełączanie kontekstu • przełączanie procesora do innego procesu wymaga przechowania stanu starego procesu i załadowanie przechowanego stanu nowego • czas przełączania kontekstu jest narzutem na działanie systemu • czas przełączania kontekstu zależy od wsparcia ze strony sprzętu 12 Techniki zwiększające wydajność mikroprocesorów Szeregowanie procesów – kryteria szeregowania • Wykorzystanie CPU – procent czasu zajętości CPU (max) • Przepustowość – liczba procesów, które zakończyły wykonanie w jednostce czasu (max) • Czas obrotu – czas potrzebny na wykonanie procesu (min) • Czas oczekiwania – czas spędzony przez proces w kolejce procesów gotowych (min) • Czas reakcji – czas liczony od chwili dostarczenia żądania do chwili uzyskania odpowiedzi (min) 13 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejka prosta (FIFO) • Procesy wykonywane w kolejności przybywania • Brak wywłaszczania • Przykład Procesy i ich zapotrzebowanie na CPU: P1 (24), P2 (3), P3 (3) • Jeśli procesy przybyły w kolejności P1, P2, P3: - czas oczekiwania: P1=0, P2=24, P3=27 - średni czas oczekiwania: (0 + 24 + 27)/3=17 • Jeśli procesy przybyły w kolejności P2, P3, P1: - czas oczekiwania: P1=6, P2=0, P3=3 - średni czas oczekiwania: (6 + 0 + 3)/3=3 14 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejka prosta (FIFO) • Efekt konwoju: krótkie procesy wstrzymywane przez długie procesy • Zalety: - sprawiedliwy - niski narzut systemowy • Wady: - długi średni czas oczekiwania - duża wariancja czasu oczekiwania - nie do zaakceptowania w systemach z podziałem czasu 15 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – najkrótsze zadanie najpierw • Procesor przydziela się temu procesowi, który ma najkrótszą najbliższą fazę zapotrzebowania na CPU • Z wywłaszczeniem, lub bez • Przykład Procesy, ich czas przybycia i zapotrzebowanie na CPU: P1 w 0 (7), P2 w 2 (4), P3 w 4 (1), P4 w 5 (4) • Bez wywłaszczania – kolejność obsługi: P1, P3, P2, P4 - czas oczekiwania: P1=0, P2=6, P3=3, P4=7 - średni czas oczekiwania: (0+6+3+7)/4=4 16 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – najkrótsze zadanie najpierw • Z wywłaszczaniem – kolejność obsługi: P1, P2, P3, P2, P4, P1 - czas oczekiwania: P1=9, P2=1, P3=0, P4=2 - średni czas oczekiwania: (9+1+0+2)/4=3 • Zalety: - optymalny • Wady: - wymaga określenia długości przyszłej fazy CPU (można próbować oszacować, jako średnią wykładniczą poprzednich faz) 17 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie priorytetowe • • • • Z każdym procesem jest związany jego priorytet CPU przydziela się procesowi z najwyższym priorytetem Z wywłaszczaniem, lub bez Strategia szeregowania priorytetowego - priorytet = przewidywana długość następnej fazy - mała liczba = wysoki priorytet • Problem: zagłodzenie • Rozwiązanie: wzrost priorytetu z upływem czasu 18 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie priorytetowe 19 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie karuzelowe • Każdy proces otrzymuje kwant czasu CPU, zwykle 1010100 ms, po upływie którego zostaje wywłaszczony i idzie na koniec kolejki • Jeżeli w kolejce jest n procesów, a q to wielkość kwantu, to każdy proces dostaje 1/n czasu procesora w odcinkach długości co najwyżej q, a żaden proces nie czeka na następny kwant dłużej niż (n(n-1)*q jednostek czasu 20 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie karuzelowe • Przykład Procesy i ich zapotrzebowanie na CPU: P1 (53), P2 (17), P3 (68), P4 (24) • Kolejność wykonywania P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 120 134 154 162 - czas oczekiwania: P1=81, P2=20, P3=94, P4=97 - średni czas oczekiwania: (81+20+94+97)/4=73 21 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie karuzelowe • Wydajność - q duże => FIFO - q małe => q musi być duże w porównaniu z czasem przełączenia kontekstu, tak aby narzut systemowy nie był zbyt wysoki - reguła: 80% faz CPU powinno być krótszych niż kwant czasu • Dzielenie procesora - gdy kwant czasu bardzo mały, to wydaje się, że każdy z procesów ma własny procesor działający z 1/n prędkości rzeczywistego procesora 22 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejki wielopoziomowe • Kolejka procesów gotowych jest podzielona na odrębne kolejki • Przykład - procesy pierwszoplanowe (interakcyjne) - procesy drugoplanowe (wsadowe) • Każda kolejka ma własny algorytm szeregowania - procesy pierwszoplanowe (strategia karuzelowa) - procesy drugoplanowe (kolejka prosta) 23 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejki wielopoziomowe • Szeregowanie pomiędzy kolejkami - stały priorytet, np. obsługuj najpierw wszystkie procesy pierwszoplanowe, potem drugoplanowe (możliwość zagłodzenia) - kwant czasu – każda kolejka otrzymuje ustaloną część czasu CPU do podziału pomiędzy swoje procesy, np. 80% dla pierwszoplanowych, 20% dla drugoplanowych 24 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejki wielopoziomowe ze sprzężeniem zwrotnym • Procesy mogą się przemieszczać pomiędzy kolejkami • Parametry metody - liczba kolejek - algorytm szeregowania dla każdej kolejki - metoda przemieszczania procesów do „wyższych” kolejek - metoda przemieszczania procesów do „niższych” kolejek - metoda wybierania kolejki dla nowego procesu 25 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejki wielopoziomowe ze sprzężeniem zwrotnym • Przykład - Proces zużywający dużo czasu procesora (np. cały kwant) przechodzi do kolejki o niższym priorytecie, ale dłuższym kwancie - Procesy interakcyjne i zorientowane na wejściewejście-wyjście będą pozostawać w kolejkach o wyższym priorytecie - Procesy zorientowane obliczeniowo w kolejkach o niższym priorytecie 26 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – kolejki wielopoziomowe ze sprzężeniem zwrotnym • Zalety - bardziej elastyczna niż zwykłe kolejki wielopoziomowe - umożliwia implementację starzenia się procesów • Wady - dużo parametrów wymagających dostrajania - wysoki koszt implementacji 27 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie w systemach wieloprocesorowych • Systemy heterogeniczne - każdy procesor ma własną kolejkę i własny algorytm szeregowania • Systemy homogeniczne - dzielenie obciążenia (osobna kolejka dla każdego procesora) - wspólna kolejka - każdy procesor sam wybiera proces do wykonania - jeden procesor przydziela procesy do procesorów (wieloprzetwarzanie asymetryczne) 28 Techniki zwiększające wydajność mikroprocesorów Algorytmy (krótkoterminowego) szeregowania procesów – szeregowanie w systemach czasu rzeczywistego • Systemy czasu rzeczywistego ze sztywnymi wymaganiami – zadania krytyczne muszą się zakończyć w zadanym czasie • Systemy czasu rzeczywistego z łagodnymi wymaganiami – zadania krytyczne są obsługiwane z wyższym priorytetem niż pozostałe 29 Systemy wieloprocesorowe • System wieloprocesorowy został zdefiniowany w 1970 roku przez ANSI, jako maszyna cyfrowa złożona z dwu, lub więcej jednostek przetwarzania sterowanych centralnie • System wieloprocesorowy jest to pojedynczy komputer, zawierający więcej niż jeden procesor • System taki pracuje pod kontrolą jednego systemu operacyjnego, zapewniającego współpracę między procesorami na różnych poziomach w celu wspólnego rozwiązania zadania 30 Systemy wieloprocesorowe • Wieloprocesorowość jest to skoordynowane wykonywanie programów przez więcej niż jeden procesor w komputerze, lub kilka komputerów • Wieloprocesorowość generalnie może oznaczać dynamicznie przyporządkowanie programu do jednego z dwóch lub więcej komputerów pracujących w parze (lub procesorów pracujących na jednym komputerze), lub też zaangażowanie wielu komputerów do pracy nad tym samym programem w tym samym czasie (równolegle) 31 Systemy wieloprocesorowe • W przypadku urządzenia jednoprocesorowego i programu napisanego dla takiego urządzenia, stanowiąca program sekwencja instrukcji jest wykonywana kolejno, jedna instrukcja po drugiej • Każde z uruchomionych zadań otrzymuje swój przydzielony obszar w pamięci RAM oraz pewną część czasu procesora • Każde z zadań widzi „własny” procesor, o wydajności odpowiadającej przydzielonemu dla danego zadania udziałowi w jego czasie 32 Systemy wieloprocesorowe • Ogromne znaczenie dla wydajności ma algorytm przydziału czasu • Jak dobry by on nie był, każde przełączenie na kolejne zadanie kosztuje wiele czasu • W miarę zwiększania liczby zadań, wykonywanych przez komputer, przydział czasu dla poszczególnych zadań maleje nieproporcjonalnie do liczby tych zadań • W systemach wieloprocesorowych istnieje możliwość rozdziału zadań pomiędzy poszczególne procesory • Idea obliczeń równoległych polega na podzieleniu obliczeń na częściczęści-wątki, z których każda jest wykonywana na oddzielnym procesorze 33 Systemy wieloprocesorowe • Po wykonaniu ciągu operacji wchodzących w skład każdego z wątków, następuje faza synchronizacji, w której wyniki pracy poszczególnych wątków łączone są w rezultat końcowy • Gdy liczba równolegle wykonywanych zadań przekracza liczbę dostępnych procesorów, które dzielą swój czas pomiędzy poszczególne zadania, zysk na wydajności, jaki uzyskuje się dzięki zmniejszeniu liczby połączeń pomiędzy zadaniami, jest i tak duży 34 Systemy wieloprocesorowe Przetwarzanie symetryczne SMP • Najprostsza i najbardziej rozpowszechniona architektura SMP (Symmetric (Symmetric Multiprocessing) Multiprocessing) • Zasoby pamięci i wejścia/wyjścia są współdzielone przez wszystkie procesory systemu • Komunikacja za pomocą/pośrednictwem wspólnej magistrali, lub w bardziej rozbudowanych systemach za pomocą przełącznika • Zaletą SMP jest stosunkowo prosty model programowy 35 Systemy wieloprocesorowe Przetwarzanie symetryczne SMP • Wadą przede wszystkim jest to, że ze wzrostem liczby procesorów wspólne zasoby zaczynają stanowić wąskie gardło • Kolejna wada wynika z przyczyn historycznych, gdyż SMP stworzono w czasach, gdy procesory komunikowały się z pamięcią bez pośrednictwa pamięci podręcznej cache • Obecność własnej pamięci podręcznej wewnątrz współczesnych CPU narzuca konieczność zapewnienia spójności jej zawartości, gdyż każdy z procesorów musi pod konkretnym adresem pamięci „widzieć” tę samą zawartość 36 Systemy wieloprocesorowe Przetwarzanie symetryczne SMP • Zwiększanie liczby CPU pracujących w konfiguracji SMP przysparza coraz większych problemów z wiązanych z komplikacją logiki sterującej oraz płynnością dostępu do zasobów, w szczególności do pamięci • Przy coraz większych częstotliwościach zegara pojawiają się kłopoty spowodowane zjawiskami fizycznymi (połączenia pomiędzy procesorem, a pamięcią są coraz dłuższe) • Praktyczna granica skalowalności maszyn pracujących w architekturze SMP to 8 37 Systemy wieloprocesorowe Przetwarzanie równoległe MPP • Architektura MPP (Massively Parallel Computing) wykorzystywana jest w superkomputerach • Składa się z połączonych przełącznikami dużej liczby jednostek przetwarzających dysponujących własną pamięcią • Doskonale sprawdza się w zastosowaniach wymagających ogromnej mocy obliczeniowej, szczególnie w obliczeniach o charakterze macierzowym • Efektywność MPP wymaga partycjonowania danych 38 Systemy wieloprocesorowe Podział systemów wieloprocesorowych • • • • • Systemy ze wspólną pamięcią Systemy ze wspólną magistralą Systemy z przełącznicą krzyżową Systemy z pamięcią wieloportową Systemy z wielostopniową siecią połączeń 39 Systemy wieloprocesorowe Systemy ze wspólną pamięcią • Cechują się stosunkowo szybkim mechanizmem synchronizacji/komunikacji międzyprocesorowej • Szybkość tę w praktycznych implementacjach znacznie ogranicza dostęp wszystkich procesorów do jednej pamięci • Częstym rozwiązaniem są pamięci lokalne i minimalizacja dostępów do wspólnej pamięci Pamięć Procesor Procesor … Procesor 40 Systemy wieloprocesorowe Systemy ze wspólną magistralą • Podłączenie procesorów, modułów pamięci, jednostek wejścia--wyjścia i innych układów do wspólnej magistrali wejścia • Konieczność zapewnienia dużej niezawodności (magistrala jest elementem krytycznym, gdyż jej awaria powoduje zatrzymanie pracy całego systemu) • Konieczność rozwiązania konfliktów dostępu do magistrali Pamięć globalna Magistrala Procesor Procesor Procesor … Procesor 41 Systemy wieloprocesorowe Systemy z przełącznicą krzyżową • Zwielokrotnienie liczby wspólnych magistral M1 M2 M3 M4 M5 … Mn P1 P2 P3 P4 : Pn 42 Systemy wieloprocesorowe Systemy z przełącznicą krzyżową • Duża złożoność funkcjonalna i wynikający stąd duży koszt • Duża przepustowość wynikająca z możliwości jednoczesnego dostępu do różnych modułów pamięci • Trudność rozbudowy wymagająca dodania dużej liczby punktów krzyżowych • Przełącznik musi zapewnić obsługę równoległych transmisji krzyżujących się w nim oraz rozwiązywać konflikty dostępu do tego samego modułu • W praktycznych implementacjach liczba procesorów i liczba pozostałych modułów nie przekracza 20 43 Systemy wieloprocesorowe BURROUGHS D825 - 1964 BURROUGHS B7700 - 1971 44 Systemy wieloprocesorowe Systemy z pamięcią wieloportową • Przeniesienie w przełącznicy krzyżowej układów logicznych, odpowiedzialnych za obsługę transmisji i zgłoszeń dostępu, z punktów krzyżowych do wnętrza modułów pamięci, prowadzi do organizacji zwanej pamięcią wieloportową • Charakterystyczne cechy: - duża liczba przewodów - kosztowna pamięć - ograniczenie konfiguracji i maksymalnej przepustowości systemu przez liczbę portów do modułu pamięci • Stosuje się je praktycznie wyłącznie w bardzo dużych komputerach, w których duży koszt jest równoważony mocą obliczeniową 45 Systemy wieloprocesorowe IBM 360/65 - 1964 CRAY--2 - 1985 CRAY 46 Systemy wieloprocesorowe Systemy z wielostopniową siecią połączeń • Koncepcja oparta na przełącznicy • Zmniejszono liczbę punktów połączeń (przełączników) przy wzroście liczby łączonych urządzeń • Obecnie rozwiązanie stosowane przy budowie systemów wielomikroprocesorowych o bardzo dużej liczbie łączonych elementów 47 Systemy wieloprocesorowe Klaster • Klaster jest to grupa komputerów połączona prywatną siecią, z zewnątrz widziana jako jedno urządzenie (może mieć więcej niż jeden adres sieciowy) • Komputery tworzące klaster nazywane są węzłami i mogą znajdować się w różnych miejscach na świecie • Do węzłów podłączona jest zwykle jedna lub więcej macierz dyskowa • Na każdym węźle powinny istnieć mechanizmy pozwalające na stwierdzenie awarii innego węzła i przejęcie jego procesów, przyłączanie i odłączanie od klastra oraz migrację procesów 48 Systemy wieloprocesorowe Klaster 49 Systemy wieloprocesorowe Farmy komputerowe • Farma komputerowa jest połączeniem wielu pracujących jednocześnie serwerów i stacji roboczych • Z zewnątrz jest widziana jako jeden sieciowy organizm • Zadania, dzięki zastosowaniu oprogramowania do dzielenia, przekazywane są do poszczególnych elementów farmy • Każdemu zadaniu przypisany jest odpowiedni priorytet 50 Systemy wieloprocesorowe CERN – Europejska Organizacja Badań Jądrowych 51 Systemy wieloprocesorowe Superkomputery macierzowe • Zawierają procesor macierzowy, którego główną częścią jest macierz elementów przetwarzających • Jeden strumień rozkazów i wiele strumieni danych • Dane mogą pochodzić z własnej pamięci każdego elementu przetwarzającego, mogą być uzyskane przez wymianę z innym elementem przetwarzającym, rozsyłane przez jednostkę sterującą • Procesor macierzowy nie jest samodzielnym komputerem i jest podłączony przez układy wewe-wy do komputera nadrzędnego o tradycyjnej organizacji 52 Systemy wieloprocesorowe Superkomputery wektorowe • Posiada procesor wektorowy umożliwiający wykonywanie rozkazów wektorowych w sposób potokowy • Potokowa realizacja rozkazów wektorowych polega na powtarzaniu ciągu elementarnych operacji arytmetycznych na strumieniach danych tworzących wektory • Równoległe wykonywanie operacji odbywa się w potokowych jednostkach arytmetycznych i logicznych • Jeden strumień rozkazów, jeden strumień danych 53 Systemy wieloprocesorowe Super komputer GALERA • 1344 czterordzeniowych procesorów Xeon taktowanych zegarem o częstotliwości 2,33 GHz • 5376 gigabajtów pamięci operacyjnej i 107,5 terabajtów pamięci dyskowej • Każdy nod zawiera po dwa procesory czterordzeniowe Xeon, 8 GB pamięci operacyjnej, dysk twardy SATA o pojemności 160 GB, dwa porty Gigabit Ethernet oraz port InfiniBand • Moduły pracują po kontrolą systemu operacyjnego Debian GNU/Linux 4.0 • wydajnością rzędu 38,17 teraflopsów (45 pozycja na liście TOP500) 54 Systemy wieloprocesorowe Obszary zastosowań wymagających dużych mocy obliczeniowych • • • • • • • Przetwarzanie sygnałów ogólnego zastosowania Grafika i przetwarzanie obrazów Pomiary Głos/Mowa Sterowanie Zastosowania militarne Telekomunikacja 55