Systemy wieloprocesorowe i wielokomputerowe

Podobne dokumenty
Systemy wieloprocesorowe i wielokomputerowe

16. Taksonomia Flynn'a.

Architektura komputerów

Architektura komputerów

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

Nowoczesne technologie przetwarzania informacji

Podstawy Informatyki Systemy sterowane przepływem argumentów

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.

Architektura von Neumanna

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Algorytmy i Struktury Danych

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

SSE (Streaming SIMD Extensions)

3.Przeglądarchitektur

Programowanie współbieżne i rozproszone

dr inż. Jarosław Forenc

Architektura mikroprocesorów TEO 2009/2010

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

WYBRANE ZAGADNIENIA PRZETWARZANIA RÓWNOLEGŁEGO I ROZPROSZONEGO ORAZ KLASTRÓW KOMPUTEROWYCH

Obliczenia Wysokiej Wydajności

SPRZĘT SYSTEMÓW ROWNOLEGŁYCH

Wykład 8 Systemy komputerowe ze współdzieloną pamięcią operacyjną, struktury i cechy funkcjonalne.

Wprowadzenie do architektury komputerów. Taksonomie architektur Podstawowe typy architektur komputerowych

Architektura Komputerów

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

3.Przeglądarchitektur

Wykład 2 Podstawowe pojęcia systemów równoległych, modele równoległości, wydajność obliczeniowa, prawo Amdahla/Gustafsona

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

dr inż. Jarosław Forenc

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

dr inż. Jarosław Forenc

Komputery równoległe. Zbigniew Koza. Wrocław, 2012

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Algorytmy dla maszyny PRAM

Mikroprocesory rodziny INTEL 80x86

Klasyfikacja systemów komputerowych. Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż. Jarosław Forenc

LEKCJA TEMAT: Zasada działania komputera.

Programowanie współbieżne Wykład 2. Iwona Kochańska

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Wprowadzenie do systemów wieloprocesorowych

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

i3: internet - infrastruktury - innowacje

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine

Architektura mikroprocesorów z rdzeniem ColdFire

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Porównaj CISC, RISC, EPIC.

Budowa komputera Komputer computer computare

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Przetwarzanie Rozproszone i Równoległe

Przetwarzanie Równoległe i Rozproszone

Dr inż. hab. Siergiej Fialko, IF-PK,

Analiza ilościowa w przetwarzaniu równoległym

Metody optymalizacji soft-procesorów NIOS

Obliczenia Wysokiej Wydajności

Architektura Systemów Komputerowych 2

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Numeryczna algebra liniowa

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

Architektura komputerów. Układy wejścia-wyjścia komputera

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1

Budowa Mikrokomputera

System mikroprocesorowy i peryferia. Dariusz Chaberski

Programowanie Rozproszone i Równoległe

Programowanie Równoległe i Rozproszone

Pojęcia podstawowe. Oprogramowanie systemów równoległych i rozproszonych. Wykład 1. Klasyfikacja komputerów równoległych I

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Klasyfikacja systemów komputerowych. Architektura von Neumanna i architektura harwardzka Budowa komputera: dr inż. Jarosław Forenc

System obliczeniowy laboratorium oraz. mnożenia macierzy

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Architektura Systemów Komputerowych. Architektura potokowa Klasyfikacja architektur równoległych

Programowanie procesorów graficznych GPGPU

Podstawy programowania obliczeń równoległych

Architektura komputerów

System operacyjny System operacyjny

Tesla. Architektura Fermi

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Wprowadzenie do systemów operacyjnych

Transkrypt:

Systemy wieloprocesorowe i wielokomputerowe

Taksonomia Flynna Uwzględnia następujące czynniki: Liczbę strumieni instrukcji Liczbę strumieni danych Klasyfikacja bierze się pod uwagę: Jednostkę przetwarzającą JP Moduł pamięci MP

Taksonomia Flynna Skrót Nazwa Liczba strumieni instrukcji Liczba strumieni danych SISD Single Instruction Single Data 1 1 SIMD Single Instruction Multiplie Data 1 wiele MISD Multiplie Instruction Single Data wiele 1 MIMD Multiplie Instruction Multiplie Data wiele wiele

SISD - Single Instruction, Single Data Przykład: urządzenia jednoprocesorowe Elementy równoległości: przetwarzanie potokowe i super skalarne;

Single Instruction Multiplie Data Przykład: komputery wektorowe i macierzowe. takie same instrukcje na oddzielnych danych.

Procesory macierzowe Procesor macierzowy składa się z siatki (dwu lub trzy wymiarowej) jednakowych procesorów posiadających pamięci lokalne wykonujących jeden program.

Procesory macierzowe

Procesory macierzowe Przykład: Za pierwszy komputer macierzowy zbudowany według architektury SIMD źródła podają komputer ILLIAC IV. Projekt z lat 60 w University of Illinois a maszyna weszła do eksploatacji w roku 1972. Maszyna składała się z jednostki sterującej rozgłaszającej rozkazy do 64 jednostek przetwarzających (w rzeczywistości zbudowano tylko 16 jednostek). Każda z tych jednostek operowała na pamięci lokalnej zawierającej 2K słów 64 bitowych i mogła komunikować się bezpośrednio z czterema innymi procesorami. Wydajność maszyny sięgnęła 15 Mflop i była daleko poniżej zakładanej wydajności 1000 Mflop.

Procesory wektorowe Procesor wektorowy operuje na wektorach czyli wielu wielkościach skalarnych naraz. Komputer wektorowy składa się z części zawierającej procesor konwencjonalny i uzupełniony jest o procesor wektorowy będący jednostką wykonującą operacje na długich rejestrach danych. Procesory wektorowe są elementami wielu superkomputerów (DCD Cyber 205, Cray 1, Cray 2, Cray 3, Fujitsu VPX 2000, Hitachi S3600). W procesorach Pentium zastosowano po raz pierwszy mechanizmy MMX (ang. MultiMedia extension) i SSE (ang. Streaming SIMD Extensions). Mechanizm MMX - wykonywanie operacji stałoprzecinkowych na wektorach 64 bitowych. Mechanizm SSE - wykonywaniu operacji zmiennoprzecinkowych na wektorach zawierających 4 liczby zmiennoprzecinkowe (każda zajmuje 32 bity).

Single Instruction Multiplie Data Współcześnie wg koncepcji SIMD budowane są akceleratory graficzne wykorzystywane w komputerach PC. Nvidia - GeForce GTX TITAN liczba rdzeni CUDA 2688: 5 GPCs Graphics Processor Clasters; 14 SMx Streaming Multi-processors; 192 - stream processors;

Nvidia GeForce KEPLER

Single Instruction Multiplie Data Własności komputerów SIMD: Większość systemów składa się z wielu (często prostych) procesorów. Wszystkie procesory wykonują tę samą instrukcję ale dla różnych zestawów danych. Każdy z procesorów posiada pamięć lokalną ale istnieje też pamięć wspólna. Często istnieje połączenie pomiędzy sąsiednimi (lub innymi) procesorami. Implementują równoległość drobnoziarnistą (ang. finegrained parallelism.)

MISD - Multiple Instruction Single Data

MISD - Multiple Instruction Single Data Przykład: komputery wysokiej dyspozycyjności; w pojedynczym strumieniu wyznaczane są beamformery w różnych pasmach; zaszyfrowane dane są dekodowane wg różnych algorytmów.

MIMD - Multiple Instruction Multiple Data

MIMD - Multiple Instruction Multiple Data Do grupy systemów MIMD zalicza się całe spektrum komputerów poczynając do stacji roboczych (procesory wielordzeniowe) po superkomputery. Systemy MIMD mają bardzo zróżnicowaną architekturę, a przez to wymagają odrębnych metod programowania. Z uwagi na te właściwości powstały metody dalszego ich klasyfikowania.

TITAN Supercomputer http://www.anandtech.com/show/6421/inside-the-titan-supercomputer-299k-amd-x86-cores-and-186k-nvidia-gpu-cores

TITAN Supercomputer http://www.top500.org/lists/2012/11/ http://www.anandtech.com/show/6421/inside-the-titan-supercomputer-299k-amd-x86-cores-and-186k-nvidia-gpu-cores

Taksonomia Tanneubauma Kryterium sposób komunikacji pomiędzy procesorami. Komunikacja może być realizowany poprzez: wspólną pamięć; system wejścia wyjścia.

Taksonomia Tanneubauma Konstrukcja, w której procesory komunikują się poprzez pamięć dzieloną nazywa się wieloprocesorem (ang. Multiprocessor). Gdy procesory komunikują się poprzez urządzenia wejścia wyjścia mamy do czynienia z wielokomputerem (ang. Multicomputer).

Taksonomia Tanneubauma

Multiprocesory Przestrzeń adresowa współdzielona pomiędzy wszystkie procesory

Multiprocesory Własności multiprocesora: Dostęp do pamięci jest wąskim gardłem ograniczającym wydajność systemu. Komunikacja procesów odbywa się przez wspólną pamięć nie trzeba specjalnych mechanizmów komunikacyjnych. Konieczność synchronizacji dostępu do zmiennych dzielonych.

Multikomputery ang. multicomputers

Multikomputery Własności: Każdy z procesorów ma swoją lokalną pamięć. Komunikacja procesów odbywa się przez system wejścia/wyjścia przy wykorzystaniu abstrakcji komunikatów.

Taksonomia Johnsona Modyfikacja klasyfikacji Flynna kategoria systemów MIMD podzielona została na cztery podkategorie w zależności od zastosowanej w nich struktury pamięci. Typ pamięci: GM pamięć globalna, ang. Global Memory. DM pamięć rozproszona, ang. Distributed Memory. Sposób dostępu do pamięci: SV współdzielone zmienne, ang. Shared Veriables. MP przekazywanie komunikatów, ang. Message Passing.

Taksonomia Johnsona Pamięć globalna GM Pamięć rozproszona DM Komunikacja poprzez zmienne dzielone SV Shared Veriables GMSV DMSV Komunikacja poprzez przekazywanie komunikatów MP Message Passing GMMP DMMP

Taksonomia Johnsona Komputery należące do grupy GMSV są ściśle powiązanymi ze sobą wieloprocesorami, których liczba w większości rozwiązań nie przekracza 20. Dostęp do pamięci realizowany jest przy użyciu współdzielonej magistrali. DMMP wysoko skalowalne wielokomputery: wyposażone w pamięć rozproszoną; wykorzystujące różnorodne mechanizmy dostępu do pamięci; posiadające kilka przestrzeni adresowych; wykorzystujące mechanizm przesyłania komunikatów. Ze względu na różnorodność rozwiązań zgodnych z architekturą DMMP wydziela się wśród nich mniejsze klasy.

Taksonomia Johnsona DMSV skalowalne wieloprocesory wykorzystujące: współdzielenie zmiennych zamiast przesyłania komunikatów; zastosowanie globalnej przestrzeni adresowej. Ilość procesorów nie przekracza 256, a wykorzystywane topologie ich połączeń to hipersześcian i kratownica. GMMP wykorzystują: pamięć globalną oraz mechanizm przesyłania komunikatów. Brak praktycznej implementacje tej kategorii.

Klasyfikacja równoległości: Procesory superskalarne i procesory wektorowe; Procesory wielordzeniowe; Systemy SMP / Systemy NUMA; Klastry; Systemy masywnie równoległe; Gridy.

Systemy z pamięcią dzieloną Zwiększanie mocy obliczeniowej poprzez zrównoleglanie na poziomie instrukcji ma swoje granice wynikające z ograniczeń technologicznych. Dalsze przyspieszenie może być osiągnięte poprzez wskazanie części kodu, która może być wykonywana równolegle. Nazwane jest to zrównolegleniem na poziomie wątków, ang. Thread Level Parallelism.

Multiprocesory z siecią w pełni połączoną Wieloprocesor z przełącznicą krzyżową

Multiprocesory Rozwiązaniem wąskiego gardła przy dostępie do wspólnej pamięci było zastosowanie tak zwanej przełącznicy krzyżowej (ang. Crossbar Switch), która jest przykładem sieci w pełni połączonych (ang. Fully Connected Networks). Zalety - jednoczesny dostęp wielu procesorów do wielu modułów pamięci (pod warunkiem że dany moduł nie jest zajęty), sieci nieblokujące. Wady - znaczna liczba magistral i przełączników co przy większej liczbie modułów pociąga za sobą znaczne koszty. Przy n procesorach i k modułach pamięci liczba przełączników proporcjonalna do k n. Komputer Sun Fire E25K wykorzystuje przełącznicę krzyżową wymiaru 18x18

Wieloprocesory z siecią wielostopniową Sieci wielostopniowe (ang. Multistage Networks) stanowią kompromis pomiędzy kosztami a wydajnością. Wykazują większą wydajność niż konstrukcje ze wspólną magistralą i mniejszy koszt niż rozwiązania z przełącznicą krzyżową.

Wieloprocesory z siecią wielostopniową Przykład sieci wielostopniowej sieć omega Sieć omega zawierająca n procesorów i n modułów pamięci składała się będzie z log 2 n stopni a w każdym stopniu będzie n przełączników. 2 n 2 log 2 n W całej sieci będzie przełączników. W przełącznicy krzyżowej n 2. Przełącznica krzyżowa dla 8 procesorów i 8 pamięci zawierała będzie 64 przełączniki podczas gdy sieć omega tylko 12.

Wieloprocesory z pamięcią wieloportową Przeniesienie układów logicznych, odpowiedzialnych za obsługę transmisji i zgłoszeń dostępu, z punktów krzyżowych (w przełącznicy krzyżowej) do wnętrza modułów pamięci, prowadzi do organizacji zwanej pamięcią wieloportową, ang. multiport memory. Właściwości systemów opartych na pamięciach wieloportowych: - skomplikowany druk, - kosztowna pamięć, - ograniczenie konfiguracji i maksymalnej przepustowości systemu przez liczbę portów do modułu pamięci

Klastry Wyróżnia się trzy podstawowe rodzaje klastrów: klastry wysokiej dostępności (ang. high availability clusters HA), klastry zrównoważonego obciążenia (ang. load balancing clusters LB), klastry wysokiej wydajności (ang. high performance clusters HPC).

Klaster wysokiej dostępności Klastry HA = gwarancja dostępności usług oferowanych poprzez klaster. Najprostszy klaster tego typu składa się z dwóch węzłów, węzła aktywnego, aktualnie oferującego daną usługę oraz węzła oczekującego i monitorującego pracę węzła aktywnego. W przypadku awarii węzła aktywnego, węzeł będący w spoczynku przechodzi w stan aktywności - przejmuje adres IP odchodzącego węzła, uzyskuje dostęp do współdzielonych zasobów a następnie uruchamia odpowiednie usługi - umożliwiając dalszą pracę. Współdzielenie danych pomiędzy węzłami może odbywać się za sprawą replikacji programowej (np. DRBD) bądź też dzięki rozwiązaniu sprzętowemu. Przykładem dosyć popularnego oprogramowania typu OpenSource oferującego funkcjonalność wysokiej dostępności jest projekt Linux-HA

Klaster zrównoważonego obciążenia Klastry LB = gwarancja zrównoważonego obciążenia na wszystkie węzły klastra. Przekierowanie żądania do innego węzła odbywa się na podstawie analizy obciążenia (wykorzystania procesora, pamięci) węzłów. Nie dopuszcza się do sytuacji, w której niektóre z węzłów są w stanie pełnej zajętości, a inne wolne od wykonywania jakichkolwiek zadań. Zadaniem mechanizmu LB jest pełne wykorzystanie mocy klastra. Umożliwia on również wykrywanie awarii węzłów bądź też wykrycie całkowitego wyłączenia węzła. Przykładem projektów realizujących założenia klastra zrównoważonego obciążenia jest LVS (Linux Virtual Server) oraz openmosix.

Klaster wysokiej wydajności Poprzez klaster wysokiej wydajności (ang. high performance computing - HPC) rozumie się grupę komputerów wykorzystywaną do wykonywania obliczeń. Klastry tego typu ze względu na oferowaną dużą moc obliczeniową są szczególnie popularne w środowiskach naukowych. Używa się ich do uruchamiania programów wykonujących obliczenia.

Klaster wysokiej wydajności Poniżej kilka przykładowych zastosowań systemów HPC: analiza danych pochodzących z sejsmogramów w poszukiwaniu złóż ropy naftowej czy też gazu ziemnego (do rekonstrukcji niewielkich obszarów potrzebne są terabajty danych), symulacje aerodynamiczne przy projektowaniu silników oraz samolotów, projektowanie systemów do przewidywania trzęsień ziemi, w naukach biomedycznych np. symulacja procesu fałdowania białek, który w przyrodzie zachodzi bardzo szybko tj. około jednej milionowej części sekundy (zaburzenie tego procesu może prowadzić do choroby Alzheimera) - symulacja tego procesu na zwykłym komputerze zajęłaby dekady, modelowanie farmaceutyczne, modelowanie wyników finansowych, symulacje astrofizyczne, symulacje klimatu Ziemi (modelowanie aktualnie zachodzących zjawisk klimatycznych oraz ich przewidywanie), zastosowanie w kinematografii przy tworzeniu efektów specjalnych w filmach; renderowanie graficzne przy manipulowaniu obrazem wysokiej rozdzielczości.

Klasyfikacja klastrów Kryterium sprzęt i sieć Klastry heterogeniczne: uruchamiane w środowiskach heterogenicznych, czyli niejednorodnych; zbudowane z komputerów pochodzących od różnych producentów; komputery pracują na różnych systemach operacyjnych; elementy klastra wykorzystują różne protokoły sieciowe. Klastry homogeniczne: uruchamiane w środowiskach homogenicznych, czyli jednorodnych; zbudowane w oparciu o sprzęt tego samego, lub kompatybilnego producenta. komputery pracują pod kontrolą tego samego systemu operacyjnego.

Klastry