Obliczenia Wysokiej Wydajności



Podobne dokumenty
Obliczenia Wysokiej Wydajności

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

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

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

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.

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

16. Taksonomia Flynn'a.

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

i3: internet - infrastruktury - innowacje

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

Mikroprocesory rodziny INTEL 80x86

Podstawy Informatyki Systemy sterowane przepływem argumentów

Klasyfikacja sprzętu i oprogramowania nowoczesnego banku. Informatyka bankowa, AE w Poznaniu, dr Grzegorz Kotliński

Nowoczesne technologie przetwarzania informacji

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

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

Programowanie procesorów graficznych GPGPU

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

Architektura komputerów

Numeryczna algebra liniowa

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

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

Zrównoleglenie i przetwarzanie potokowe

Architektura komputerów

Architektura systemów komputerowych. Przetwarzanie potokowe I

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

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

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

Budowa Mikrokomputera

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

3.Przeglądarchitektur

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

GRIDY OBLICZENIOWE. Piotr Majkowski

USŁUGI HIGH PERFORMANCE COMPUTING (HPC) DLA FIRM. Juliusz Pukacki,PCSS

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

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

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

Programowanie Rozproszone i Równoległe. Edward Görlich goerlich@th.if.uj.edu.pl

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

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

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

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Technologie Informacyjne

Architektura mikroprocesorów TEO 2009/2010

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

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

Optymalizacja skalarna. Piotr Bała. Wykład wygłoszony w ICM w czercu 2000

Systemy wieloprocesorowe i wielokomputerowe

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

3.Przeglądarchitektur

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

Budowa i użytkowanie klastrów w opaciu o układy Cell BE oraz GPU

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Architektura Komputerów

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

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

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

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

HPC na biurku. Wojciech De bski

Przetwarzanie Równoległe i Rozproszone

Architektura mikroprocesorów z rdzeniem ColdFire

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

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

Programowanie współbieżne i rozproszone

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa i multimedia

Oprogramowanie komputerów

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Program Obliczeń Wielkich Wyzwań Nauki i Techniki (POWIEW)

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

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

Architektura komputerów

Budowa komputera Komputer computer computare

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

Klaster obliczeniowy

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Programowanie współbieżne Wykład 1. Rafał Skinderowicz

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

SUPERKOMPUTER OKEANOS BADAWCZE GRANTY OBLICZENIOWEWE

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Architektura komputerów II - opis przedmiotu

Moc płynąca z kart graficznych

Programowanie Rozproszone i Równoległe

Programowanie współbieżne Wykład 1. Rafał Skinderowicz

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

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

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

Tesla. Architektura Fermi

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

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

Podstawy programowania obliczeń równoległych

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

Historia modeli programowania

Transkrypt:

Obliczenia wysokiej wydajności 1

Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk każdego oprogramowania Niniejsze wykłady przedstawiają sposoby analizy i osiągania wysokiej wydajności w programach Tradycyjnie zagadnieniom wysokiej wydajności najwięcej uwagi poświęca się w ramach specjalnej dziedziny informatyki: Obliczeń Wysokiej Wydajności (High Performance Computing) Wyniki osiągnięte w ramach HPC mają swoje zastosowanie we wszystkich dziedzinach informatyki 2

Wykład OWW Osiąganie wysokiej wydajności Wydajność aplikacji: Języki i środowiska wysokiego poziomu abstrakcji i złożoności: SQL i systemy baz danych OpenGL, DirectX i systemy graficzne HTML, PHP i aplikacje internetowe Java, C# i ich środowiska wykonania Języki relatywnie niskiego poziomu blisko sprzętu C Asemblery Ze względu na rozmaitość języków i środowisk wysokiego poziomu oraz asemblerów daleko wykraczającą poza ograniczenia czasowe jednego przedmiotu wykład koncentruje się na programowaniu w języku C 3

C (źródło www.tiobe.com) 4

Wykład OWW Osiąganie wysokiej wydajności programy w C Analiza wydajności dla architektur sprzętowych obejmujących procesory (CPU, GPU), układ pamięci, układ komunikacji międzyprocesorowej Optymalizacja wykonywania instrukcji: kod źródłowy kod assemblera wykonanie przez procesor Optymalizacja dostępu do pamięci: komunikacja w systemach z pamięcią rozproszoną dostęp do pamięci wspólnej w systemach wieloprocesorowych i wielordzeniowych funkcjonowanie hierarchii pamięci w CPU i GPU (pamięć podręczna, ewentualne inne formy pamięci lokalnej, pamięć globalna) sprzętowa organizacja pamięci i jej funkcjonowanie 5

Obliczenia wysokiej wydajności Obliczenia wysokiej wydajności to obliczenia, w których stara się uzyskać maksymalną szybkość przetwarzania Maksymalizacja szybkości przetwarzania ma doprowadzić do minimalizacji czasu rozwiązania danego problemu (time to solution) Zależnie od rodzaju wykonywanych obliczeń, stosuje się różne miary szybkości przetwarzania Najpopularniejszą miarą (zwłaszcza w dziedzinie obliczeń naukowo technicznych) jest liczba wykonywanych operacji zmiennoprzecinkowych na sekundę (FLOPS) Inne możliwe miary to np. liczba wykonywanych w sekundzie instrukcji, liczba przetwarzanych transakcji na sekundę, liczba wyświetlanych pikseli na sekundę itp. 6

Numbers everyone should know Google forum L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 100 ns Main memory reference 100 ns Compress 1K bytes with Zippy 10,000 ns Send 2K bytes over 1 Gbps network 20,000 ns Read 1 MB sequentially from memory 250,000 ns Round trip within same datacenter 500,000 ns Disk seek 10,000,000 ns Read 1 MB sequentially from network 10,000,000 ns Read 1 MB sequentially from disk 30,000,000 ns Send packet CA >Netherlands >CA 150,000,000 ns 7

Historia obliczeń wysokiej wydajności komputery macierzowe komputery wektorowe komputery masowo równoległe klastry 8

Komputery macierzowe (SIMD) Odrębny procesor przetwarzający rozkazy Macierz procesorów przetwarzających dane Illiac IV, 1966-76 ~100 MFLOPS, ~5 000 000 USD 9

Komputery macierzowe Dzisiejsze zastosowania: rozkazy SIMD w procesorach ogólnego przeznaczenia przetwarzanie sygnałów procesory graficzne, GPU superkomputery specjalnego przeznaczenia (np. apenext SPMD komputer do symulacji w dziedzinie LQCD, 4096 procesorów, 7 TFLOPS) 10

11

Komputery wektorowe Podstawowy element procesor wektorowy: rejestry wektorowe przetwarzanie potokowe operacji zmiennoprzecinkowych kilka potoków i jednostek funkcjonalnych Współczesne zastosowania: przetwarzanie superskalarne i potokowe w procesorach ogólnego przeznaczenia superkomputery Cray-1, 1975 ~100 MFLOPS, ~5 000 000 USD Cray 2, ~2 GFLOPS 12

Komputery wektorowe w procesorze jednostki skalarne i wektorowe (czasem adresowe) operacje wektorowe (w tym operacje redukcji) op V > V (np. a[i]:= b[i]) op V > S redukcja (np. r:=max(b[i])) V op V > V (np. a[i]:=b[i]+c[i]) V op S > V (np. a[i]:= s*b[i]) dostęp do pamięci: wielobankowość, przeplot, potoki rejestry wektorowe (długość 64 do 128) w tym maska potokowe jednostki funkcjonalne łączenie operacji w łańcuchy (chaining) (a[i] := b[i] + s*c[i] ) 13

14

Earth Simulator 5120 procesorów ~ 35 TFLOPS 15

Earth Simulator 16

Earth Simulator 17

Komputery masowo równoległe Komputery posiadające setki, tysiące i więcej procesorów (komputery wektorowe kilkadziesiąt) Komputery złożone z niezależnych procesorów, najczęściej wyposażonych w indywidualną pamięć CM-2, 1987 65 536 procesorów CM-5, 1991, 512 węzłów ~65.5 GFLOPS,~25 000 000 USD 18

IBM Blue Gene/L Architektura Blue Gene 65 536 węzłów obliczeniowych 280 TFLOPS 64 szafy 1.2 MW 2004 2006 19

20

Klastry Niezależne komputery połączone siecią Silna integracja poprzez specjalne oprogramowanie Do kilku tysięcy komputerów Relatywnie tanie (kilka tysięcy USD / komputer) 21

And the winner is... TOP500 najpopularniejsza klasyfikacja najpotężniejszych systemów komputerowych świata Dokonywana dwa razy w roku (w czerwcu i listopadzie) od 1993 Klasyfikacja oparta na szybkości rozwiązywania układu równań liniowych metodą Gaussa Tylko systemy ogólnego przeznaczenia 22

Lista Top500 23

Czy to już wszystko? Systemy umieszczone na liście TOP 500 nie są jedynymi potężnymi systemami obliczeniowymi świata Równie potężne bywają organizowane ad hoc zespoły rozproszonych po całym świecie i połączonych siecią różnorodnych komputerów Projekt SETI@home (obecnie jako BOINC, http://boinc.berkeley.edu/), projekt Folding@home (http://folding.stanford.edu/): kilkaset tysięcy komputerów na całym świecie kilka PFLOPS łącznej mocy obliczeniowej 24

Systemy równoległe wysokiej wydajności 25

Gdzie potrzebne są wysokie moce obliczeniowe? Internet & Ecommerce Aerodynamika Nauki biologiczne CAD/CAM Wojskowość Medycyna 26

Gdzie potrzebne są wysokie moce obliczeniowe? 27

Znaczenie algebry liniowej 28