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

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

Ograniczenia efektywności systemu pamięci

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Obliczenia Wysokiej Wydajności

METODY ELIMINACJI STUDENTÓW INFORMATYKI. Czyli co student INF-EKA powinien wiedzieć o MESI...

Ograniczenia efektywności systemu pamięci

Architektura komputerów

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

Programowanie procesorów graficznych GPGPU

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Architektura komputerów

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

i3: internet - infrastruktury - innowacje

Architektura komputerów

Programowanie Rozproszone i Równoległe

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

Zrównoleglenie i przetwarzanie potokowe

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

Architektura Systemów Komputerowych

Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna

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

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

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

Rys. 1. Podłączenie cache do procesora.

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

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

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

System obliczeniowy laboratorium oraz. mnożenia macierzy

Tesla. Architektura Fermi

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

System pamięci. Pamięć podręczna

System pamięci. Pamięć wirtualna

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Rozproszona pamiêæ dzielona - 1

Przykłady praktycznych rozwiązań architektur systemów obliczeniowych AMD, Intel, NUMA, SMP

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

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

Programowanie aplikacji równoległych i rozproszonych

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Systemy wieloprocesorowe. Sprzęt i oprogramowanie wspomagające perspektywa - Windows i Linux Wykład Przetwarzanie równoległe Listopad 2010

Wykład 13. Systemy wieloprocesorowe. Wojciech Kwedlo Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Obliczenia Wysokiej Wydajności

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

Budowa Mikrokomputera

Podstawy Informatyki Systemy sterowane przepływem argumentów

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Programowanie Współbieżne

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

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

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

16. Taksonomia Flynn'a.

Algorytmy i Struktury Danych

Weryfikacja protokołu zgodności cachu COMA

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2016

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

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

PR sprzęt (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: jesień 2016

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1

ARCHITEKTURA KOMPUTERÓW Bufory pamięci bufor zawiera kopie aktualnie przetwarzanych danych

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

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

Architektura mikroprocesorów TEO 2009/2010

Budowa komputera Komputer computer computare

Architektura komputerów

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

Wykład 13. Linux 2.0.x na maszynach SMP. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Numeryczna algebra liniowa

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

System pamięci. Pamięć wirtualna

Przetwarzanie równoległesprzęt

System pamięci. Pamięć wirtualna

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

Wydajność obliczeń a architektura procesorów

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Procesory. Schemat budowy procesora

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

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

Programowanie mikroprocesorów jednoukładowych

O superkomputerach. Marek Grabowski

Programowanie współbieżne Rozwiązywanie problemu wzajemnego wykluczania. Rafał Skinderowicz

Schematy zarzadzania pamięcia

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

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

System pamięci. Pamięć podręczna

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

Architektura komputerów

Magistrala systemowa (System Bus)

architektura komputerów w. 7 Cache

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

Przetwarzanie Równoległe i Rozproszone

Wstęp. Przetwarzanie współbieżne, równoległe i rozproszone

Nowoczesne technologie przetwarzania informacji

Transkrypt:

Procesory wielordzeniowe (multiprocessor on a chip) 1

Procesory wielordzeniowe 2

Procesory wielordzeniowe 3

Konsekwencje prawa Moore'a 4

Procesory wielordzeniowe 5

Intel Nehalem 6

Architektura Intel Nehalem 7

Procesory wielordzeniowe Problem podstawowy: wielowątkowy dostęp do hierarchii pamięci L1 prywatna dla rdzenia L2 prywatna lub w pewien sposób współdzielona L3 wspólna (jeśli jest) Problemy konkretne: spójność pamięci podręcznej wydajność dostępu minimalizacja liczby chybień cache oblivious algorithms false sharing i wspólna sterta dla wątków 8

Procesory wielordzeniowe Problemy szeregowania zadań dla procesorów wielordzeniowych afiniczność i lokalność odniesień do pamięci podział zadań i iteracji pętli uwzględniający afiniczność Systemy NUMA lokalne chybienia pamięci podręcznej odległe (zdalne, remote) chybienia pamięci podręcznej koszt false sharing 9

NUMA Architektura AMD Opteron 10

Pamięć podręczna Działanie pamięci podręcznej: strategie utrzymywania zgodności pamięci podręcznej (cache coherence protocols) write through każdy zapis do pamięci podręcznej jest przenoszony do pamięci głównej copy back zapis do pamięci podręcznej jest przenoszony do pamięci głównej przy podmianie linii (linia musi wiedzieć czy była zmieniona) inne, bardziej złożone np. MESI 11

Protokoły zgodności pamięci podręcznej protokoły katalogowe (directory protocols) istnieje katalog z informacją o zawartości pamięci podręcznej i centralny sterownik katalogu pośredniczący w wymianie danych protokoły podglądania (snoopy protocols) procesory podglądają stan pamięci podręcznych i rozgłaszają zmiany zapis z aktualizacją (procesor dokonujący zmianę rozgłasza ją i wszystkie procesory aktualizują swoje pamięci podręczne) zapis z unieważnieniem (procesor dokonujący zmiany unieważnia zawartość pamięci podręcznych innych procesorów); przykład MESI 12

Protokół MESI Blok w pamięci podręcznej może być w jednym z czterech stanów: M (modified): zmodyfikowany w pamięci podręcznej, różny od odpowiedniego bloku w pamięci głównej E (exclusive): wyłącznie w jednej pamięci podręcznej, zawartość identyczna jak w pamięci głównej S (shared): w kilku pamięciach podręcznych, zawartość identyczna jak w pamięci głównej I (invalid): unieważniony przez zmiany dokonane w innej pamięci podręcznej 13

Pamięć odległa (zdalna) Jednym z najpoważniejszych ograniczeń systemów jedno i wieloprocesorowych (wielordzeniowych) o jednorodnym dostępie do pamięci jest zbyt mała przepustowość połączenia pamięć procesory Ograniczenie to można usunąć wyposażając procesory (lub grupy procesorów rdzeni) w lokalne pamięci Łączna przepustowość pamięć procesor takich systemów staje się wtedy skalowalna rośnie wraz z rosnącą liczbą procesorów 14

Pamięć odległa (zdalna) Systemy z pamięciami lokalnymi procesorów są systemami o niejednorodnym dostępie do pamięci W programach równoległych pojawia się kolejny szczebel hierarchii pamięci oprócz lokalnej pamięci głównej, pamięć główna odległa (remote memory) Dostęp do pamięci odległej można uzyskać, albo bezpośrednio jeśli system operacyjny i środowisko programowania i realizacji udostępnia taką możliwość, albo poprzez wymianę informacji z innym procesorem, dla którego pamięć jest pamięcią lokalną 15

Pamięć odległa (zdalna) W przypadku bezpośredniego dostępu do pamięci odległej (np. w rozszerzeniach standardu OpenMP dla klastrów) system może umożliwiać istnienie danych globalnych i ich (niejawnych) lokalnych kopii Dla zwiększenia wydajności procesory mogą wykonywać operacje (w tym zapis) na swoich lokalnych kopiach danych Pojawia się wtedy, podobnie jak w przypadku pamięci podręcznej, problem utrzymania zgodności pomiędzy lokalnymi kopiami i danymi globalnymi 16

Pamięć odległa (zdalna) Czas dostępu do pamięci odległej jest zawsze znacznie dłuższy od czasu dostępu do pamięci lokalnej (rzędu mikrosekund, a nie nanosekund) Należy projektować algorytmy i ich odwzorowanie na procesory w taki sposób, aby minimalizować liczbę odniesień do pamięci odległej Czas realizacji dostępu do pamięci odległej uwzględnia się przy analizie wydajności obliczeń równoległych jako czas komunikacji 17

Pamięć odległa (zdalna) W przypadku programowania w modelu przesyłania komunikatów każde odniesienie do pamięci jest odniesieniem lokalnym, każde odniesienie do pamięci odległej odbywa się w sposób jawny poprzez wymianę komunikatów ułatwia to szacowanie wydajności programów w fazach projektowania, analizy i optymalizacji 18

Wydajność pamięci 1 2 3 4 5 6 7 8 STREAM (GB/s) 5.57 10.71 8.53 11.03 9.25 8.55 7.03 8.46 mat_vec (sek.) 0.22 0.13 0.14 0.11 0.13 0.14 0.12 0.12 19

Tendencje Mało dużych rdzeni rozbudowane potoki wykonanie poza kolejnością wyrafinowane przewidywanie rozgałęzień wiele jednostek funkcjonalnych Dużo małych rdzeni prostsza budowa, krótsze potoki wykonanie w kolejności proste przewidywanie rozgałęzień mniej jednostek funkcjonalnych 20

ATI FireStream 21

NVIDIA Tesla 22

NVIDIA Fermi 23

Architektury hybrydowe 24