HPC na biurku. Wojciech De bski



Podobne dokumenty
Wprowadzenie do OpenMP

Algorytmy i Struktury Danych

Równoległość i współbieżność

Równoległość i współbieżność

O superkomputerach. Marek Grabowski

Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm

Nowoczesne technologie przetwarzania informacji

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

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski

Obliczenia Wysokiej Wydajności

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

Programowanie Rozproszone i Równoległe

Programowanie Współbieżne

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

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

i3: internet - infrastruktury - innowacje

Przetwarzanie Równoległe i Rozproszone

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

16. Taksonomia Flynn'a.

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

OpenMP środowisko programowania komputerów równoległych ze wspólną pamięcią

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

Systemy operacyjne III

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Programowanie współbieżne Wstęp do OpenMP. Rafał Skinderowicz

Obliczenia Wysokiej Wydajności

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

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

Programowanie współbieżne... (2)

Programowanie procesorów graficznych GPGPU

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.

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

2. Charakterystyka obliczeń współbieżnych i rozproszonych.

Obliczenia rozproszone z wykorzystaniem MPI

Obliczenia rozproszone MPI

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

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

Obliczenia rozproszone MPI

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

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

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1

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

Enterprise, czyli instytutowy klaster obliczeniowy


Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

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

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Programowanie systemów z pamięcią wspólną specyfikacja OpenMP. Krzysztof Banaś Obliczenia równoległe 1

GRIDY OBLICZENIOWE. Piotr Majkowski

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

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

OpenMP. Programowanie aplikacji równoległych i rozproszonych. Wykład 2. Model programowania. Standard OpenMP. Dr inż. Tomasz Olas

Wprowadzenie do zrównoleglania aplikacji z wykorzystaniem standardu OpenMP

dr inż. Jarosław Forenc

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

Podstawy programowania C. dr. Krystyna Łapin

Programowanie współbieżne... (4) Andrzej Baran 2010/11

PRZEWODNIK PO PRZEDMIOCIE

Architektura komputerów

Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

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

Programowanie kart graficznych

Zadania badawcze prowadzone przez Zakład Technik Programowania:

OpenMP część praktyczna

Biblioteka PCJ do naukowych obliczeń równoległych

Programowanie procesorów graficznych w CUDA.

Informatyka. informatyka i nauki komputerowe (computer science)

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

Infrastruktura PLGrid Nowa jakość usług informatycznych w służbie nauki

Tesla. Architektura Fermi

PRZEWODNIK PO PRZEDMIOCIE

DYNAMICZNE PRZYDZIELANIE PAMIECI

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

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

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

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

Klaster obliczeniowy

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

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

Programowanie w standardzie MPI

Informatyka Studia II stopnia

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

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Open MP wer Rafał Walkowiak Instytut Informatyki Politechniki Poznańskiej Wiosna

Systemy rozproszone. Państwowa Wyższa Szkoła Zawodowa w Chełmie. ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej w Lublinie

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Elementy składowe: Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania

Obliczenia równoległe. Wojciech Kwedlo Wydział Informatyki PB pokój 205

Sosnowiec, dn... Imię i nazwisko...

Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Testowanie przypuszczenia Beal'a z wykorzystaniem klasycznych procesorów

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

Język ludzki kod maszynowy

UNIWERSYTET MARII CURIE-SKŁODOWSKIEJ W LUBLINIE Wydział Matematyki, Fizyki i Informatyki

Architektura komputerów

Transkrypt:

na biurku Wojciech De bski 22.01.2015

- co to jest? High Performance Computing most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one could get out of a typical desktop computer or workstation in order to solve large problems in science engineering or business. pp.1

Historia (Supercomputing) pp.2

Obliczenia szeregowe i ro wnoległe podział według M. Flyna Klasyczny komputer for(i=0;i<n;i++) c[i] = a[i] + b[i]; c[0] = a[0] + b[0]; c[1] = a[1] + b[1];... c[n] = a[n] + b[n]; pp.3

Obliczenia szeregowe i ro wnoległe Image processing (GPU) a a[0] a[1] a[2] a[3] a[4] = ==> a * 0.5 a[0]*0.5 a[1]*0.5 a[2]*0.5 a[3]*0.5 a[4]*0.5 pp.4

Obliczenia szeregowe i ro wnoległe Analiza sygnalow (procesory DSP) a b = = sin(x) cos(x) a[0]=sin(x) b[0]=cos(x) a[1]=sin(x) b[1]=cos(x) a[2]=sin(x) b[2]=cos(x)... pp.5

Obliczenia szeregowe i ro wnoległe Symulacja pola falowego pp.6

Dwie podstawowe konfiguracje superkomputero w F systemy rozproszone - wiele niezalez nych jednostek obliczeniowych komunikujacych sie ze soba poprzez zewnetrzn a siec F systemy upakowane gdzie wszystkie jednostki obliczeniowe dziela wspo lna pamiec przez kto ra wymieniaja informacje pp.7

Architektury komputero w - wspo lna pamiec pp.8

Architektury komputero w - oddzielna pamiec pp.9

Klastry obliczeniowe - klasyczne rozwiazanie z dzielona pamieci a pp.10

Architektury komputero w - hybrydy pp.11

Organizacja klastro w pp.12

MPI - Message Passing Interface pp.13

MPI - Message Passing Interface ro wnoległe dodanie wektoro w ~c = ~a + ~b for(i=0;i<n;i++) c[i]= a[i] + b[i] for (i=0;i<=nx;i++) MPI_Send(&c33[i][0] nz+1 MPI_FLOAT dest21 MPI_COMM_WORLD); for (i=0;i<=nx;i++) MPI_Send(&c44[i][0] nz+1 MPI_FLOAT dest21 MPI_COMM_WORLD);.. for (i=0;i<=nxs;i++) sxm[i][0]=xs+(float)i*dxs;.. for (dest=1;dest<=all_proc-1;dest++) { MPI_Recv(&pom 1 MPI_INT dest101 MPI_COMM_WORLD &status); printf ("Proc:%d Transfer succeed!\n"pom);} pp.14

Shared memory model pp.15

Shared memory + heterogeneous environment pp.16

GPGPU - general purpose graphic processing units pp.17

GPGPU - Tesla K80 F 4992 procesory potokowe F pamiec 24Gb F zegar 1 GHz F wydajnos c 6 Tflops pp.18

Cel seminarium - pytania 1. Jak wykorzystac wielo-rdzeniowos c naszych PC to w? 2. Jak wykorzystac posiadane karty graficzne jako akceleratory obliczeniowe (GPGPU)? bez koniecznos ci stawania sie zawodowym programista uczenia nowego jezyka programowa nia budowy kart graficznych itp. pp.19

Odpowiedz Wykorzystac modele programowania ro wnoległego dla architektury wspo łdzielonej pamieci: F OpenMP3 F OpenMP4 pp.20

Wsparcie dla OpenMP F kompilator gcc ver. 3.* ver 4.* (OpenMP3) F kompilator gcc ver 5.* (styczen 2015) (OpenMP4) pp.21

Co to jest OpenMP? OpenMP (ang. Open Multi-Processing) jest interfejs programowania aplikacji (API) umoz liwiaja cy tworzenie programo w komputerowych dla systemw wieloprocesorowych z pamieci Składa sie ze a dzielona. zbioru dyrektyw kompilatora bibliotek oraz zmiennych s rodowiskowych majacych wpływ na sposb wykonywa nia programu. pp.22

Informacje o OpenMP: http://openmp.org/wp/ pp.23

Model programowania ro wnoległego OpenMP F Zadanie dzielone jest pomiedzy watki F Watki do obliczen uz ywaja prywatnych kopii zmiennych kto re sa niedostepne dla innych watko w F Watki komunikuja sie przez zmienne wspo łdzielone (zmienne shared) lub dodatkowe mechanizmy synchronizacji watko w (np. tzw barrier) F niebezpieczen stwo tzw. data race pp.24

Podstawowa struktura: watki f or(i = 0; i < N ; i + +)c[i] = a[i] + b[i] f or(i = 0; i < 10; i + +) f or(i = 11; i < 20; i + +) f or(i = 21; i < 30; i + +) c[i] = a[i] + b[i] c[i] = a[i] + b[i] c[i] = a[i] + b[i] pp.25

Uz ywanie pamieci pp.26

Co musi zrobic programista F podac kto ra czes c ma byc zro wnoleglona F okres lic kto re zmienne sa prywatne dla kaz dego z watko w F okres lic warunki synchronizacji Reszte pracy wykona za nas kompilator! pp.27

Przykład petla for #include<stdio.h> #include<math.h> #define NS 10000 int main() { double sum=0x; long unsigned int i; #pragma omp parallel for private (i) reduction(+:sum) for (i=0; i<ns; i++) sum+=exp(-i*i); printf("sum=%g\n"sum); return; } pp.28

Kompilacja: gcc e1.c -fopenmp -lm -o e1 pp.29

Przykład 2 Uwaga na hazard czasowy: nigdy nie wiadomo kto ry watek skon czy prace pierwszy pp.30

KONIEC Prepared: 21 stycznia 2015 W prezentacji wykorzystano materiały z Wikipedii oraz Nvidi pp.31