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

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

i3: internet - infrastruktury - innowacje

Obliczenia Wysokiej Wydajności

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Maciej Sypniewski. lato 2014, Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych

Nowoczesne technologie przetwarzania informacji

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

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

Programowanie aplikacji równoległych i rozproszonych

Obliczenia równoległe na klastrze opartym na procesorze CELL/B.E.

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

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

Tworzenie oprogramowania

Obliczenia Wysokiej Wydajności

Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.

3.Przeglądarchitektur

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.

Architektura komputerów

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

Budowa Mikrokomputera

dr inż. Jarosław Forenc

Architektura von Neumanna

PRZEWODNIK PO PRZEDMIOCIE

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

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

dr inż. Jarosław Forenc

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

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

PRZEWODNIK PO PRZEDMIOCIE

16. Taksonomia Flynn'a.

Składowanie, archiwizacja i obliczenia modelowe dla monitorowania środowiska Morza Bałtyckiego

Artur Janus GNIAZDA PROCESORÓW INTEL

dr inż. Jarosław Forenc

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

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

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

dr inż. Jarosław Forenc

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

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

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

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Podstawowe parametry płyt głównych

dr inż. Jarosław Forenc

Architektura Komputerów

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

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

PRZEWODNIK PO PRZEDMIOCIE

Instruction Set Instruction Set Extensions Embedded Options Available. Recommended Customer Price TRAY: $999.00

Programowanie procesorów graficznych GPGPU

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

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

PRZEWODNIK PO PRZEDMIOCIE

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

dr inż. Jarosław Forenc

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

dr inż. Jarosław Forenc

Moc płynąca z kart graficznych

Budowa komputera: dr inż. Jarosław Forenc. Zestaw komputerowy Jednostka centralna. płyta główna (przykłady, standardy)

3.Przeglądarchitektur

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

Komputer VIPER i x4,2ghz 8GB GTX 1050TI 4GB 1TB USB 3.0

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Technologie Informacyjne Wykład 2

Odwzorowanie procedur całkowania numerycznego w metodzie elementów skończonych na architektury procesorów masowo wielordzeniowych

dr inż. Jarosław Forenc

Budowa komputera Komputer computer computare

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

PRZEWODNIK PO PRZEDMIOCIE

Załącznik nr 6 do SIWZ nr postępowania II MJ Zaoferowany. sprzęt L P. Parametry techniczne

Programowanie Rozproszone i Równoległe

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE


CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka

Pamięci. Pamięci DDR DIMM SDR SDRAM

dr inż. Jarosław Forenc

PWSZ w Tarnowie Instytut Politechniczny Elektrotechnika

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

dr inż. Jarosław Forenc

PROCESOR Z ODBLOKOWANYM MNOŻNIKIEM!!! PROCESOR INTEL CORE I7 4790K LGA1150 BOX

KARTA KURSU. Systemy operacyjne

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

I. Architektura chipsetu

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

Dostęp do europejskich systemów obliczeniowych Tier-0 w ramach PRACE

CZYM JEST KARTA GRAFICZNA.

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

System mikroprocesorowy i peryferia. Dariusz Chaberski

Komputery Dużej Mocy w Cyfronecie. Andrzej Oziębło Patryk Lasoń, Łukasz Flis, Marek Magryś

PRZEWODNIK PO PRZEDMIOCIE

dr inż. Jarosław Forenc

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

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

PRZEWODNIK PO PRZEDMIOCIE

Zaawansowane programowanie w języku C++

Serwer biznesowy o podwójnym zastosowaniu moc obliczeniowa i pamięć masowa w jednej obudowie

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

Zasoby i usługi Wrocławskiego Centrum Sieciowo-Superkomputerowego

dr inż. Jarosław Forenc

Transkrypt:

1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA

2 Część teoretyczna Informacje i wstępne wymagania Cel przedmiotu i zakres materiału Zasady wydajnego programowania aplikacji Współczesne architektury procesorów Środowisko programistyczne Część praktyczna Zapoznanie się z kodem do badań laboratoryjnych Optymalizacja kodu przy pomocy przekształceń matematycznych

3 2 godz. wykładu, 2 godz. laboratorium Nie ma egzaminu Kontakt: strona: http://icis.pcz.pl/ krojek e-mail: krojek@icis.pcz.pl pokój 247, IITiS konsultacje: wtorek 10:00-13:00

4 Znajomość podstaw architektury komputerów Znajomość programowania z wykorzystaniem standardu C++ Podstawowa wiedza z metod numerycznych Umiejętność implementowania algorytmów obliczeniowych

5 Poznanie aktualnych trendów i rozwiązań stosowanymi we współczesnych systemach komputerowych oraz architekturach wieloprocesorowych i wielordzeniowych, jak również metod i sposobów realizacji obliczeń dla różnych typów i rodzajów algorytmów i aplikacji. Nabycie praktycznych umiejętności w zakresie tworzenia, uruchamiania i analizy algorytmów dla różnych typów współczesnych architektur oraz różnych modeli programowania. Nabycie umiejętności i wiedzy z zakresu efektywnego wykorzystania akceleratorów obliczeniowych ze szczególnym uwzględnieniem procesorów graficznych oraz architektur masywnie wielordzeniowych.

6 Architektura komputerowa: Architektura procesorów ogólnego przeznaczenia Intel (Kaby Lake) Architektura procesorów graficznych NVIDIA (Pascal) Standardy programowania: C++ OpenMP CUDA Narzędzia: CPU: GNU gprof, GDB: The GNU Project Debugger GPU: NVIDIA Visual profiler, nvprof, CUDA-MEMCHECK

7 Metody poprawy wydajności aplikacji CPU/GPU Metody organizacji danych w pamięci Metody poprawy wydajności obliczeń Metody analizy wydajności Szacowanie wydajności aplikacji Szacowanie wydajności procesora Szacowanie przepustowości pamięci Znajdowanie wąskich gardeł aplikacji

8 CPU Central Processing Unit SSE Streaming SIMD Extensions GPU Graphics Processing Unit AVX Advanced Vector Extensions PCIe Peripheral Component Interconnect Express NUMA Non-Uniform Memory Access SIMD Single Instruction, Multiple Data DDR Double Data Rate HBM High Bandwidth Memory SMP Symetric Multi-core Processor AMP Asymetric Multi-core Processor FLOPS (flop/s) FLoating point Operations Per Second RAM Random Access Memory

9 Nie istnieje teoria wydajnego programowania aplikacji Wydajne programowanie wymaga: Wiedzy z zakresu wszystkich warstw architektury sprzętowej Wiedzy z zakresu implementowanego algorytmu Praktyki w zakresie analizy kodu Umiejętności rozpoznania i wyodrębnienia wąskich gardeł programu Eliminowania błędów (proces debugowania jest często tak czasochłonny, co proces programowania) Umiejętności dostrzegania wzorców w aplikacjach, które powtarzają się w regularny sposób Sporej dawki zdrowego rozsądku

10 Procesory wielordzeniowe symetryczne posiadają rdzenie umieszczone na jednym układzie (chipie) Wszystkie rdzenie posiadają tą samą budowę Rdzenie są symetryczne (identyczne), i mogą wykonywać obliczenia niezależnie od siebie Przykład: Intel Core CPU seria i (i3, i5, i7) Seria i posiada 2 rdzenie na układ (Core i3) lub 4 rdzenie na układ (Core i5/i7)

11 Procesory asymetryczne posiadają wiele rdzeni na jednym układzie, jednak rdzenie te mogą różnić się od siebie Mogą one zawierać np. 2 rdzenie ogólnego przeznaczenia i 2 rdzenie wektorowe w jednym układzie Przykład: IBM Cell/BE symetryczny procesor 7 lub 9-rdzeniowy stosowany w konsoli Sony PlayStation 3: 1 rdzeń ogólnego przeznaczenia 6/8 rdzeni zaprojektowanych do wykonywania intensywnych obliczeń

12 Intel Kaby Lake CPU NVIDIA Pascal GPU Liczba rdzeni: 4 Liczba rdzeni: ~3800 Pamięć: ~25GB/s na 1xDDR4 Pamięć wew.: ~760 GB/s - HBM2 Niezależna jednostka Wymaga CPU Wydajność: ~200 Gflop/s Wydajność: 4,7 Tflop/s

13 Nowa architektura co każde 2 lata Każda architektura wnosi nowe możliwości, które wymuszają stosowanie nowych technik programowania

14 Nazwa Rok Proces technologiczny Nehalem 2008 45 nm Sandy Bridge 2011 32 nm Ivy Bridge 2012 22 nm Haswell 2013 22 nm Broadwell 2014 14 nm Skylake 2015 14 nm Kaby Lake 2016 14 nm Coffee Lake 2017 14 nm Cannonlake 2018 10 nm Ice Lake 2019 10 nm Tiger Lake 2020 10 nm

Zestaw narzędzi programistycznych: Platforma LINUX (Lubuntu): http://lubuntu.net/ Makefile GCC, the GNU Compiler Collection NVIDIA CUDA Toolkit: https://developer.nvidia.com/cuda-downloads

Kontakt: krojek@icis.pcz.pl 16