i3: internet - infrastruktury - innowacje

Podobne dokumenty
Programowanie procesorów graficznych GPGPU

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

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

Przetwarzanie Równoległe i Rozproszone

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

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

Moc płynąca z kart graficznych

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

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Nowoczesne technologie przetwarzania informacji

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

Tesla. Architektura Fermi

Programowanie aplikacji równoległych i rozproszonych

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

Obliczenia Wysokiej Wydajności

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

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.

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

Obliczenia Wysokiej Wydajności

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

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

Raport Hurtownie Danych

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

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

Programowanie kart graficznych

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

Programowanie Współbieżne

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Programowanie procesorów graficznych GPGPU

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

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

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

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

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

Fundusze Europejskie dla rozwoju innowacyjnej gospodarki Dotacje na innowacje Inwestujemy w Waszą przyszłość Bydgoszcz, r.

XIII International PhD Workshop OWD 2011, October 2011 REALIZACJA OBLICZEŃ W ARCHITEKTURZE MASOWO RÓWNOLEGŁEJ W HETEROGENICZNYCH SYSTEMACH

Programowanie kart graficznych

Fundusze Europejskie dla rozwoju innowacyjnej gospodarki Dotacje na innowacje Inwestujemy w Waszą przyszłość Bydgoszcz, r.

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

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

Praca dyplomowa magisterska

WIDMOWA I FALKOWA ANALIZA PRĄDU SILNIKA LSPMSM Z WYKORZYSTANIEM OPENCL

Klaster obliczeniowy

Wybrane metodologie wspierające sprzętową akcelerację obliczeń wielkiej skali

XIV International PhD Workshop OWD 2012, October 2012 NOWOCZESNE TECHNIKI WYKONYWANIA ZAAWANSOWANYCH OBLICZEŃ NUMERYCZNYCH

Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera

Welcome to the waitless world. Inteligentna infrastruktura systemów Power S812LC i S822LC

INŻYNIERIA OPROGRAMOWANIA

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

Metody optymalizacji soft-procesorów NIOS

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

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

INŻYNIERIA OPROGRAMOWANIA

ROZPROSZONY SYSTEM DO KRYPTOANALIZY SZYFRÓW OPARTYCH NA KRZYWYCH ELIPTYCZNYCH

Numeryczna algebra liniowa

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

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

Laboratorium Chmur obliczeniowych. Paweł Świątek, Łukasz Falas, Patryk Schauer, Radosław Adamkiewicz

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

Wstęp. Przetwarzanie równoległe. Krzysztof Banaś Obliczenia równoległe 1

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

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

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

Nowinki technologiczne procesorów

Programowanie równoległe Wprowadzenie do OpenCL. Rafał Skinderowicz

Organizacja pamięci w procesorach graficznych

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

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

Alternatywne modele programowania równoległego

RECENZJA ROZPRAWY DOKTORSKIEJ

Architektura komputerów

Skalowalna Platforma dla eksperymentów dużej skali typu Data Farming z wykorzystaniem środowisk organizacyjnie rozproszonych

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

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

MESco. Testy skalowalności obliczeń mechanicznych w oparciu o licencje HPC oraz kartę GPU nvidia Tesla c2075. Stanisław Wowra

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

565,00 PLN OPIS PRZEDMIOTU AMIGO AMD APU GBHD7480D amigopc.pl CENA: CZAS WYSYŁKI: 24H PRODUCENT: AMIGOPC

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

Podstawy Informatyki Systemy sterowane przepływem argumentów

Cyfronet w CTA. Andrzej Oziębło DKDM

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

Wstęp do obliczeń równoległych na GPU

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

Od wielkoskalowych obliczeń równoległych do innowacyjnej diagnostyki w kardiologii.

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

Nowinki technologiczne procesorów

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

Spis treści. 1 Dane osobowe 2. 2 Posiadane dyplomy i stopnie naukowe 2. 3 Informacje o dotychczasowym zatrudnieniu w jednostkach naukowych 2

1. KOMPUTEROWA STACJA ROBOCZA - konfiguracja wzorcowa lub inny równoważny

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

HPC na biurku. Wojciech De bski

O superkomputerach. Marek Grabowski

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

4 NVIDIA CUDA jako znakomita platforma do zrównoleglenia obliczeń

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

Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA

Architektura komputerów

Dane Techniczne TH ALPLAST ADS-S25

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

Transkrypt:

i3: internet - infrastruktury - innowacje Wykorzystanie procesorów graficznych do akceleracji obliczeń w modelu geofizycznym EULAG Roman Wyrzykowski Krzysztof Rojek Łukasz Szustak [roman, krojek, lszustak]@icis.pcz.pl Politechnika Częstochowska

Agenda Model geofizyczny EULAG Motywacja Architektura GPU: NVIDIA Tesla C1060 ATI Radeon HD 5870 OpenCL - innowacyjny standard dla architektur wielordzeniowych Perspektywy zrównoleglenia modelu EULAG Wyniki wydajnościowe Podsumowanie

Model geofizyczny EULAG (1/3) EULAG jest uznanym modelem rozwiązującym równania płynu w skalach od mikro do gwiezdnej Ojcem EULAGa jest dr Piotr K. Smolarkiewicz, National Center of Atmospheric Research, Boulder, CO, USA Model ten jest narzędziem do wykonywania eksperymentów numerycznych w laboratorium, które umożliwia symulację zmieniającego się w czasie modelu geometrycznego Kod EULAGa stwarza duże możliwości adaptacji do nowoczesnych architektur wielordzeniowych, wieloprocesorowych, akceleratorów oraz hybrydowych architektur równoległych Jednym z ciekawszych zastosowań EULAGa jest model prognozowania pogody

Model geofizyczny EULAG (2/3) EULAG znajduje szerokie zastosowanie w takich dziedzinach jak: obszary zawirowań atmosferycznych (areas of turbulence) przepływy miejskie (urban flows) dynamika fal grawitacyjnych (gravity wave dynamics) mikro-meteorologia (micrometeorology) mikrofizyka i dynamika chmur (cloud microphysics and dynamics) prądy oceaniczne (ocean currents) globalne zjawiska atmosferyczne

Model geofizyczny EULAG (3/3) Symulacja przepływu powietrza wokół Pentagonu (źródło: http://eulag.pl/)

Motywacja Współczesne karty graficzne to wielordzeniowe architektury o wydajności rzędu kilku Tflops/s GPU umożliwia tworzenie wielu tysięcy wątków, co w znaczny sposób wpływa na zwiększenie wydajności kodów równoległych Dostępne standardy programowania, takie jak OpenCL, i CUDA umożliwiają wykorzystanie GPU do obliczeń ogólnego przeznaczenia (GPGPU) Wykorzystanie GPU do obliczeń jest stosunkowo tanim rozwiązaniem, ponieważ większość komputerów je posiada

Architektura: NVIDIA Tesla C1060 (1/2) 10 klastrów przetwarzających (processing clusters) 3 jednostki obliczeniowe (compute units) na klaster 8 elementów przetwarzających (processing elements) na jednostkę = 240 elementów przetwarzających 1296 MHz częstotliwość jednostek 16 KB pamięci lokalnej (local memory) 64 KB pamięci stałej (constant buffer) 4 GB pamięci globalnej (global memory) 102.4 GB/s przepustowości pamięci globalnej Wydajność = 240 * 1.296 * 2 (MADD) = 0.622 Tflops/s 0.622 Tflops/s dla pojedynczej precyzji

Architektura: NVIDIA Tesla C1060 (2/2)

Architektura: ATI Radeon HD 5870 (1/2) 20 jednostek obliczeniowych 16 elementów przetwarzających na jednostkę 5 procesorów strumieniowych na element = 1600 procesorów strumieniowych 850 MHz częstotliwość jednostek 32 KB pamięci lokalnej 64 KB pamięci stałej 1 GB pamięci globalnej 153.6 GB/s przepustowości pamięci globabalnej Wydajność = 1600 * 0.850 * 2 (MADD) = 2.72 Tflops/s 2.72 Tflops/s dla pojedynczej precyzji

Architektura: ATI Radeon HD 5870 (2/2)

OpenCL - innowacyjny standard dla architektur wielordzeniowych (1/2) OpenCL (Open Computing Language) - otwarty, bezpłatny standard programowania równoległego w heterogenicznym systemie komputerowym Zawiera w sobie język programowania oraz API umożliwiające kontrolę nad poszczególnymi urządzeniami Wspomaga pisanie aplikacji wieloplatformowych, składających się z różnego rodzaju jednostek obliczeniowych (m.in. CPU, GPU, procesory Cell) Umożliwia tworzenie przenośnego kodu pomiędzy różnymi urządzeniami

OpenCL - innowacyjny standard dla architektur wielordzeniowych (2/2) Host jest połączony z co najmniej jednym urządzeniem obliczeniowym (Compute Devices) Urządzenie obliczeniowe składa się ze zbioru jednostek obliczeniowych (Compute Units) Jednostki obliczeniowe zawierają elementy przetwarzające (Processing Elements), które realizują zadania zgodnie z metodologią SIMD lub SPMD Kernel jest odpowiednikiem funkcji napisanej w języku C jest wykonywany na urządzeniu obliczeniowym uruchomione kernele tworzą wątki (work-items) wątki są pogrupowane w grupy (work-groups) synchronizacja możliwa jest pomiędzy wątkami, które należą do tej samej grupy, natomiast wątki w różnych grupach nie są ze sobą synchronizowane

OpenCL: hierarchia pamięci (1/2) Każdy wątek ma dostęp do własnej pamięci prywatnej Dostęp do pamięci lokalnej mają wątki z danej grupy Dostęp do pamięci globalnej i pamięci stałej mają wszystkie wątki Pamięć hosta jest pamięcią, do której wątki nie mają bezpośredniego dostępu Aby wątki mogły uzyskać dostęp do danych zawartych w pamięci hosta, należy: przenieść dane z pamięci hosta do pamięci globalnej a następnie do pamięci lokalnej

OpenCL: hierarchia pamięci (2/2)

Perspektywy zrównoleglenia modelu EULAG (1/2) Nasza implementacja bazuje na następującym fragmencie modelu EULAG: if(j<m && i<n) for(k=0; k<l; ++k) x(i, j, k)-= ( f1(i+1, j, k)-f1(i, j, k) +f2(i, j+1, k)-f2(i, j, k) +f3(i, j, k+1)-f3(i, j, k) )/h(i, j, k); gdzie f1, f2, f3 są obliczane na podstawie schematu donor-cell: #define donor(y1,y2,a)(fdim(a,0.0f)*(y1)-fdim(0.0f,a)*(y2)) dim zwraca x - y jeżeli x > y, 0 jeżeli x y

Perspektywy zrównoleglenia modelu EULAG (2/2) Algorytm został zrównoleglony w dwóch wymiarach dla rozmiaru grupy n x m W celu uniknięcia zależności między grupami, poszerzyliśmy każdą grupę (work-group) o dodatkowe obliczenia 0,0 0,1...0,n-1 1,0 0,n 0,n+1...0,2n-1 1,n 0,0 1 20,1...0,n-1...n-1 1,0 2 0,n n 0,n n 0,n+1...0,2n-1...2n-1 1,n 1 2 0,2n m-1,0 m,0 m,1...m,n-1 m+1,0 2m-1,0 m-1,n m,n m,n+1..m,2n-1 m+1,n 2m-1,n m-1,0 m m,0 m m,0 0 1 2 m,1...m,n-1...n-1 m+1,0 1 2 2m-1,0 m m,n n m-1,n m m,n m m,n n n+1 m,n+1..m,2n-1...2n-1 m,2n m+1,n 1 2 2m-1,n m 2m,0 m 2m,n m

Autotuning (1/2) Optymalizacja kodu dla różnych architektur GPU oparta jest o technikę autotuning Autotunig jest techniką automatycznej adaptacji algorytmu do wybranych cech architektury np: liczby jednostek obliczeniowych liczby elementów przetwarzających rozmiaru jednostek wektorowych rozmiaru poszczególnych pamięci

Autotuning (2/2) Nasz autotuning składa się z dwóch kroków: zebranie informacji o danej architekturze za pośrednictwem OpenCL API - rezultaty otrzymywane są natychmiastowo informacje o dostępnych zasobach sprzętowych poszukiwanie i generowanie najlepszej konfiguracji dla algorytmu w oparciu o informacje z kroku pierwszego - krok ten jest czasochłonny poszukiwane są: rozmiar grupy, rozmiar pamięci lokalnej...

Wyniki wydajnościowe (1/2) Testy zostały przeprowadzone na następującym sprzęcie: CPU AMD Phenom(tm) II X4 955-1 rdzeń GPU NVIDIA Tesla C1060 - Linux GPU ATI Radeon HD 5870 - Windows

Wyniki wydajnościowe (2/2) CPU NVIDIA Tesla ATI Radeon czas kernela [s] 0.75 0.041 0.039 przyśpieszenie 1 18.29 19.23 przepustowość [GB/s] - 2.57092 1.35215 czas kernela + czas odbierania danych [s] - 0.06 0.08 przyśpieszenie - 12.5 9.38 czas kernela + czas wysyłania danych + czas odbierania danych [s] przyśpieszenie - 0.16 0.27-4.68 2.78 wykorzystanie pamięci [MB] 514.016 584.543 584.543

Podsumowanie Czas wykonania testów na kartach graficznych był krótszy niż na procesorze: kernel wykonywany na GPU charakteryzował się znacznym przyśpieszeniem w porównaniu do CPU czas komunikacji był większy niż czas obliczeń W przeprowadzonych testach: ATI 5870: najlepszy czas kernela, mała przepustowość NVIDIA Tesla C1060: dobry czas kernela, dobra przepustowość (ok 65% maksymalnej przepustowości) Nasz kod może być uruchamiany na różnych kartach graficznych Kod jest w trakcie optymalizacji zarówno pod względem komunikacji, jak i obliczeń

i3: internet - infrastruktury - innowacje Dziękujemy za uwagę!