Obliczenia wysokiej wydajno - metal.agh.edu.plbanas/OWW/OWW_W01_Wstep.pdf · Rodzaje sieci...
Transcript of Obliczenia wysokiej wydajno - metal.agh.edu.plbanas/OWW/OWW_W01_Wstep.pdf · Rodzaje sieci...
Krzysztof Banaś Obliczenia Wysokiej Wydajności 2
Wydajność obliczeń
➔ Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności oraz ł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)
➔ HPC jest często synonimem nazwy Supercomputing, ale w niniejszych wykładach Supercomputing pojawia się tylko
sporadycznie wyniki osiągnięte w ramach HPC mają swoje zastosowanie
we wszystkich dziedzinach informatyki
Krzysztof Banaś Obliczenia Wysokiej Wydajności 3
➔ 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 (timetosolution)
➔ Zależnie od rodzaju wykonywanych obliczeń, stosuje się różne miary szybkości przetwarzania
➔ Najpopularniejszą miarą (zwłaszcza w dziedzinie obliczeń naukowotechnicznych) 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.
Obliczenia wysokiej wydajności
Krzysztof Banaś Obliczenia Wysokiej Wydajności 4
Wykład OWW
➔ Wykład koncentruje się na zagadnieniu osiągania wysokiej wydajności dla dowolnej platformy, na której przeprowadza się obliczenia
➔ Kluczowe jest ustalenie: maksymalnej teoretycznej wydajności dla danej aplikacji na
konkretnym sprzęcie wydajności osiąganej w praktyce – dzięki dokonywaniu
odpowiednich pomiarów sposobów optymalizacji – zwiększania wydajności i skracania
czasu obliczeń➔ Wykład koncentruje się na zagadnieniach czysto
obliczeniowych (głównie numeryczna algebra liniowa), ale zaprezentowane techniki analizy i optymalizacji mogą znaleźć zastosowanie w dowolnej dziedzinie informatyki
Krzysztof Banaś Obliczenia Wysokiej Wydajności 6
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, skrypty 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
Krzysztof Banaś Obliczenia Wysokiej Wydajności 7
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: • sprzętowa organizacja pamięci i jej funkcjonowanie• funkcjonowanie hierarchii pamięci w CPU i GPU (pamięć
podręczna, ewentualne inne formy pamięci lokalnej, pamięć globalna)
• dostęp do pamięci wspólnej w systemach wieloprocesorowych i wielordzeniowych
• komunikacja w systemach z pamięcią rozproszoną
Krzysztof Banaś Obliczenia Wysokiej Wydajności 8
➔ 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
„Numbers everyone should know” Google forum
Krzysztof Banaś Obliczenia Wysokiej Wydajności 9
Współczesne systemy komputerowe
Kluczem do uzyskania wysokiej wydajności obliczeń jest znajomość architektury sprzętu
Procesory wielordzeniowe klasyczne kilku-rdzeniowe (multi-core) – ogólnego przeznaczenia masowo wielordzeniowe (many-core)
• procesory graficzne• procesory Xeon Phi (zastosowanie w HPC)
Systemy równoległe z procesorów ogólnego przeznaczenia SMP DSM MPP klastry systemy hybrydowe
Krzysztof Banaś Obliczenia Wysokiej Wydajności 10
Procesory wielordzeniowe
➔ Pierwszym procesorem wielordzeniowym ogólnego przeznaczenia był procesor Power4 firmy IBM
➔ Obecnie dominują procesory kilkurdzeniowe (multicore)➔ Trwają badania nad procesorami masowo
wielordzeniowymi (manycore) (koprocesor Intel Xeon PHI – ok. 60 rdzeni z jednostkami wektorowymi, karty graficzne – setki rdzeni skalarnych)
➔ O wydajności układu wielordzeniowego w dużej mierze decyduje sposób rozwiązania problemu dostępu rdzeni do pamięci podręcznej i pamięci głównej
Krzysztof Banaś Obliczenia Wysokiej Wydajności 17
Akceleratory
➔ 48rdzeniowy procesor ogólnego przeznaczenia firmy Intel – Singlechip Cloud Computer – SCC
➔ procesor hybrydowy IBM PowerXCell
Krzysztof Banaś Obliczenia Wysokiej Wydajności 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
Krzysztof Banaś Przetwarzanie współbieżne, równoległe i rozproszone 21
SMP, UMA, NUMA, etc.
UMA – SMP
NUMA – DSM ccNUMA
Krzysztof Banaś Obliczenia Wysokiej Wydajności 22
Sieci połączeń w systemach równoległych
➔ Rodzaje sieci połączeń: podział ze względu na łączone elementy:
połączenia procesorypamięć (moduły pamięci) połączenia międzyprocesorowe (międzywęzłowe)
podział ze względu na charakterystyki łączenia: sieci statyczne – zbiór połączeń dwupunktowych sieci dynamiczne – przełączniki o wielu dostępach
Krzysztof Banaś Obliczenia Wysokiej Wydajności 31
➔ 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 kilkadziesiąt PFLOPS łącznej mocy obliczeniowej
Czy to już wszystko?
Krzysztof Banaś Obliczenia Wysokiej Wydajności 33
Gdzie potrzebne są wysokie moce obliczeniowe?
Nauki biologiczne
CAD/CAM
Aerodynamika
MedycynaWojskowość
Internet & Ecommerce