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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1

2 Spis treści 1 Dane osobowe 2 2 Posiadane dyplomy i stopnie naukowe 2 3 Informacje o dotychczasowym zatrudnieniu w jednostkach naukowych 2 4 Wskazanie osiagnięcia wynikajacego z art. 16 ust. 2 ustawy z dnia 14 marca 2003 r. o stopniach naukowych i tytule naukowym oraz o stopniach i tytule w zakresie sztuki (Dz. U r. poz. 882 ze zm. w Dz. U. z 2016 r. poz ) Tytuł osiągnięcia naukowego Cykl publikacji powiązanych tematycznie Omówienie celu naukowego oraz najważniejszych wyników Wprowadzenie Omówienie osiągnięć naukowych Podsumowanie Omówienie pozostałych osiagnięć naukowo-badawczych Omówienie realizowanych projektów o charakterze naukowym Współpraca z partnerami naukowymi i przemysłowymi Opieka naukowa nad doktorantem Wskaźniki aktywności badawczej i publikacyjnej 30

3 1 Dane osobowe Imię i Nazwisko: Łukasz Szustak Miejsce i data urodzenia: Myszków, r. Stan cywilny: żonaty, jedno dziecko, córka Julia, ur r. lszustak@icis.pcz.pl 2 Posiadane dyplomy i stopnie naukowe Dyplom doktora nauk technicznych, dyscyplina Informatyka, Politechnika Częstochowska, Wydział Inżynierii Mechanicznej i Informatyki, 2012, tytuł rozprawy: Metody zrównoleglenia i równoważenia obciażenia architektur hybrydowych w obliczeniach numerycznych Dyplom magistra inżyniera, kierunek Informatyka, specjalność: Inżynieria oprogramowania i systemy informatyczne, Politechnika Częstochowska, Wydział Inżynierii Mechanicznej i Informatyki, Tytuł pracy magisterskiej: Obliczenia równoległe na klastrze opartym na procesorze Cell/B.E. 3 Informacje o dotychczasowym zatrudnieniu w jednostkach naukowych Adiunkt, Politechnika Częstochowska, Wydział Inżynierii Mechanicznej i Informatyki, Instytut Informatyki Teoretycznej i Stosowanej: 2012 obecnie 4 Wskazanie osiagnięcia wynikajacego z art. 16 ust. 2 ustawy z dnia 14 marca 2003 r. o stopniach naukowych i tytule naukowym oraz o stopniach i tytule w zakresie sztuki (Dz. U r. poz. 882 ze zm. w Dz. U. z 2016 r. poz ) 4.1 Tytuł osiagnięcia naukowego Metody i algorytmy zrównoleglania i dystrybucji obliczeń w architekturach wielo- i masywnie wielordzeniowych 4.2 Cykl publikacji powiazanych tematycznie Objaśnienie oznaczeń: WoS publikacja zarejestrowana w bazie Web of Science, IF 5Y 5-letni wskaźnik oddziaływania (Impact Factor) wg bazy JCR (zgodny z rokiem opublikowania), Qi kwartyl czasopisma wg bazy JCR (zgodny z rokiem opublikowania), PM liczba punktów ministerialnych, U procentowy udział w badaniach oraz przygotowaniu artykułu. 2

4 Jako osiagnięcie wskazuję jednotematyczny cykl 9 publikacji, który obejmuje: [A1] L. Szustak, K. Rojek, P. Gepner, Using Intel Xeon Phi Coprocessor to Accelerate Computations in MPDATA Algorithm, In Proc. 10th Int. Conf. on Parallel Processing and Applied Mathematics - PPAM 2013, vol. 8385, , LNCS, Springer, 2014, WoS, PM=15, U=80% [A2] R. Wyrzykowski, L. Szustak, and K. Rojek. Parallelization of 2D MPDATA EULAG Algorithm on Hybrid Architectures with GPU accelerators, Parallel Computing, 40 (8): , 2014, IF 5Y =1.781, Q1, WoS, PM=35, U=45% [A3] L. Szustak, K. Rojek, T. Olas, L. Kuczynski, K. Halbiniak, and P. Gepner, Adaptation of MPDATA Heterogeneous Stencil Computation to Intel Xeon Phi Coprocessor, Scientific Programming, 14 pages, 2015, IF 5Y =0.756, Q4, WoS, PM=15, U=50% [M1] K. Rojek, L. Szustak, and R. Wyrzykowski, Zrównoleglanie i automatyczne dostosowanie algorytmów numerycznych do architektur hybrydowych z akceleratorami GPU. Warszawa, PWN, 2015 (Nagroda im. Profesora Zdzisława Pawlaka za wybitna monografię z zakresu informatyki przyznana w roku 2016 przez Komitet Informatyki PAN), PM=50, U=45% [A4] L. Szustak, K. Halbiniak, L. Kuczynski, J. Wrobel, and A. Kulawik, Porting and Optimization of Solidification Application for CPU MIC Hybrid Platforms, The International Journal of High Performance Computing Applications, DOI: / , 17 pages, Article in Press, 2016, IF 5Y =2.365, Q2, WoS, PM=25, U=60% [A5] T. Malik, L. Szustak, R. Wyrzykowski, A. Lastovetsky, Network-Aware Optimization of MPDATA on Homogeneous Multi-core Clusters with Heterogeneous Network, In Proc. ICA3PP 2016 Collocated Workshops: SCDT, TAPEMS, BigTrust, UCER, DLMCS, Granada, Spain, Dec , 2016, vol , 30 42, LNCS, Springer, 2016, WoS, PM=15, U=40% [A6] A. Lastovetsky, L. Szustak, and R. Wyrzykowski, Model-based Optimization of EULAG Kernel on Intel Xeon Phi Through Load Imbalancing, IEEE Transactions on Parallel and Distributed Systems, 28(3): , 2017, IF 5Y =4.3, Q1, WoS, PM=40, U=60% [A7] L. Szustak, R. Wyrzykowski, and J. Ondrej, Islands-of-Cores Approach for Harnessing SMP/NUMA Architectures in Heterogeneous Stencil Computations, In Proc. Parallel Computing Technologies: 14th International Conference, PaCT 2017, Nizhny Novgorod, Russia, September 4-8, 2017, vol , , LNCS, Springer, 2017, U=90% [A8] L. Szustak, Strategy for Data-Flow Synchronizations in Stencil Parallel Computations on Multi-/Manycore Systems, The Journal of Supercomputing, vol. 74(4), , 2018 IF 5Y =1.349, Q2, PM=20, U=100% 3

5 Podsumowanie wskaźników bibliometrycznych dla cyklu publikacji wchodzacych w skład osiagnięcia naukowego: Liczba artykułów opublikowanych w czasopismach indeksowanych w bazie JCR: 5 prac Liczba wyróżnionych monografii: 1 praca Liczba publikacji zawartych w materiałach konferencji międzynarodowych indeksowanych w bazie WoS: 2 prace Liczba publikacji zawartych w materiałach konferencji międzynarodowych: 1 praca Sumaryczny 5-letni współczynnik wpływu IF 5y = 10,551 Sumaryczna liczba punktów ministerialnych PM = 215 Artykuły wysłane do recenzji powiazane tematycznie z osiagnięciem naukowym: [A9] L. Szustak, Performance Portable Parallel Programming of Heterogeneous Stencils across Shared-Memory Platforms with Intel Processors of Last Generations, The International Journal of High Performance Computing Applications, 18 pages, w trakcie recenzji IF 5Y =2.365, Q2, PM=25, U=100% [A10] L. Szustak, K. Halbiniak, R. Wyrzykowski, and J. Ondrej, Unleashing the Performance of ccnuma Multiprocessor Architectures in Heterogeneous Stencil Computations The Journal of Supercomputing, 13 pages, po recenzji zaakceptowany do druku IF 5Y =1.349, Q2, PM=20, U=60% 4.3 Omówienie celu naukowego oraz najważniejszych wyników Metody i algorytmy zrównoleglania i dystrybucji obliczeń w architekturach wielo- i masywnie wielordzeniowych Wprowadzenie Od ponad 10 lat jesteśmy świadkami prawdziwej rewolucji rozwoju współczesnych systemów komputerowych. Dokonuje się ona dzięki przejściu od tradycyjnych procesorów jednordzeniowych do rozwiązań wykorzystujących architektury wielo- i masywnie wielordzeniowe. Zmianę tą można zaobserwować zwłaszcza w środowisku obliczeń wielkiej skali (ang. High Performance Computing, HPC), gdzie zauważalny jest nieustanny przyrost mocy obliczeniowej systemów komputerowych. Rezultat tego trendu, nowoczesne systemy komputerowe są coraz bardziej złożone, charakteryzują się hierarchiczną oraz heterogeniczną architekturą, a ich efektywne wykorzystanie staje się globalnym wyzwaniem dla środowisk naukowych i komercyjnych. Dynamiczny oraz szybki rozwój architektur komputerowych w odniesieniu do stosunkowo krótkiego okresu ich żywotności (4 6 lat) zmusza twórców aplikacji naukowych do ciągłego dostosowania równoległych kodów do stale ewoluujących systemów obliczeniowych. Ponieważ aplikacje naukowe, zwykle opracowywane na przestrzeni wielu lat, istnieją zdecydowanie dłużej aniżeli konkretny system komputerowy, dostosowywanie ich kodów jest niezwykle 4

6 skomplikowanym oraz czasochłonnym procesem. Złożoność i trudność tego procesu potęgowana jest przez konieczność posiadania głębokiej wiedzy eksperckiej z zakresu efektywnego wykorzystania coraz bardziej złożonych nowoczesnych systemów komputerowych. Głównymi atutami obliczeniowymi obecnych architektur HPC są możliwości przetwarzania wielordzeniowego i wektorowego. Aby wykorzystać pełen potencjał obliczeniowy nowoczesnych architektur komputerowych, należy uwzględnić obie te możliwości, co uzasadnia obecny rozwój systemów komputerowych, skoncentrowany wokół masowego przetwarzania wielordzeniowego oraz wektorowego. Poziom wykorzystania zasobów obliczeniowych zależy od charakterystyk obliczeniowych algorytmów. Jednakże również sposób uwzględnienia tych charakterystyk będzie odgrywał znaczącą rolę w procesie tworzenia efektywnego oprogramowania. Tylko zapewnienie synergii pomiędzy cechami architektury a charakterystykami danego algorytmu umożliwi stworzenie wydajnego oprogramowania. W osiągnięciu synergii kluczową rolę odgrywają m.in. szerokie wykorzystanie lokalność danych, elastyczna i efektywna dystrybucji obliczeń, nowoczesne modele wydajnościowe oraz metody samo-adaptacji równoległych kodów aplikacji naukowych do wybranych cech architektur masywnie wielordzeniowych. Efektywne wykorzystanie powstających systemów komputerowych staje się kluczowym problemem, nie tylko w dyscyplinie naukowej jaką jest informatyka, ale także w takich dziedzinach, jak fizyka, chemia, oraz medycyna czy też innych dyscyplinach naukowych, w których konieczne są rozbudowane symulacje komputerowe. Rozwiązanie bądź też zbliżenie się do rozwiązania tego problemu, umożliwi twórcom aplikacji naukowych pełniejsze wykorzystanie dostępnej mocy obliczeniowej, stwarzając znakomitą okazją do przeprowadzania bardziej złożonych symulacji niż kiedykolwiek przedtem. Strategicznym celem prowadzonych przeze mnie prac naukowo-badawczych jest badanie, ulepszanie oraz upraszczanie procesu dostosowania istniejących kodów aplikacji naukowych do szerokiej gamy nowoczesnych systemów komputerowych bazujących na procesorach oraz akceleratorach różnych producentów. Tematyka badawcza realizowanych przeze mnie prac dotyczy również zapewniania przenośności równoległych kodów aplikacji naukowych pomiędzy obecnymi, jak i pojawiającymi się systemami obliczeniowymi, z zachowaniem wysokiej wydajności obliczeń. Kluczowymi elementami realizowanych prac są również (i) badania przyczyn powstawania ograniczeń dla uzyskania wysokiej wydajności obliczeń równoległych, jak również (ii) próba ich złagodzenia poprzez opracowanie oryginalnych metod i algorytmów dostosowania obliczeń do wybranych cech architektur. Wiąże się to z koniecznością przeprowadzenia dokładnej analizy wydajnościowej kodów aplikacji oraz identyfikacji ograniczeń jakie dana architektura komputerowa nakłada na badaną aplikację. Nowatorski charakter prowadzonych badań obejmuje opracowanie szeregu autorskich metod i algorytmów zrównoleglania i dystrybucji obliczeń w architekturach wielo- i masywnie wielordzeniowych. W szczególności opracowana metodologia znalazła swoje praktyczne zastosowanie w następujących aplikacjach naukowych: Wielowymiarowy dodatnio określony algorytm adwekcji (ang. Multidimensional Positive Definite Advection Transport Algorithm, MPDATA) [5, 6] będący jednym z dwóch głównych komponentów modelu geofizycznego EULAG którego autorem jest Prof. Piotr Smolarkiewicz pracujący w Research Department of the European Centre for Medium- Range Weather Forecasts, United Kingdom, Aplikacja numerycznego modelowania procesu krzepnięcia [7, A4] której autorem jest Dr hab. inż. Adam Kulawik pracujący w Politechnice Częstochowskiej. 5

7 4.3.2 Omówienie osiagnięć naukowych Efekty prowadzonych przeze mnie badań, opublikowane w formie jednotematycznego cyklu 9 publikacji umożliwiły sformułowania następujących osiągnięć naukowych: Metody i algorytmy adaptacji równoległych kodów aplikacji naukowych do nowoczesnych architektur procesorów ogólnego przeznaczenia oraz akceleratorów Intel MIC, Metody zrównoleglania i dystrybucji obliczeń numerycznych w architekturach hybrydowych z akceleratorami obliczeniowymi, Modele i algorytmy dystrybucji obciążenia w architekturach wielo- i masywnie wielordzeniowych oraz klastrach komputerowych. A) Metody i algorytmy adaptacji równoległych kodów aplikacji naukowych do nowoczesnych architektur procesorów ogólnego przeznaczenia oraz akceleratorów Intel MIC Moje pierwsze osiągnięcie naukowe dotyczy opracowania autorskiego zbioru metod i algorytmów mających na celu dopasowanie obliczeń numerycznych do nowoczesnych architektur komputerowych, cechujących się pamięcią współdzieloną i wykorzystujących procesory ogólnego przeznaczenia oraz akceleratory Intel MIC. Szczegółowy opis opracowanej metodologii został przedstawiony w cyklu następujących prac [A1,A3,A7,A8] oraz [A9,A10], a jej zakres obejmuje: Metody dekompozycji heterogenicznych obliczeń typu stencil; Metodę dystrybucji obliczeń z wykorzystaniem przetwarzania wielordzeniowego i wektorowego; Algorytm synchronizacji obliczeń oparty na podejściu data-flow. Zaproponowana metodyka została wykorzystana i zweryfikowana w praktyce, na przykładzie rzeczywistych aplikacji naukowych. Opracowany zestaw metod znalazł swoje zastosowania w algorytmie MPDATA, pozwalając na lepsze wykorzystanie architektur obliczeniowych bazujących na systemach z pamięcią współdzieloną. Elastyczność opracowanego algorytmu synchronizacji umożliwiła jego wykorzystanie zarówno w algorytmie MPDATA jak i aplikacji numerycznego krzepnięcia. A.1) Metody dekompozycji heterogenicznych obliczeń typu stencil W ramach prowadzonych badań została zaproponowana ogólna metoda blokowej dekompozycji dla heterogenicznych obliczeń typu stencil, która bazuje na wykorzystaniu dwóch znanych technik optymalizacji pętli: loop fusion oraz loop tiling. Głównym celem opracowanej metody jest przezwyciężenie ograniczeń komunikacyjnych jakie nowoczesne architektury komputerowe nakładają na wykonywane obliczenia. Rys. 1 przedstawia uproszczoną koncepcję opracowanej metody. Prezentowany przykład ilustruje dwa kernele obliczeniowe (k1 oraz k2), których wykonanie zależy od siebie (Rys. 1a). Wykonanie obliczeń w ramach pierwszego kernela skutkuje zapisaniem wyników obliczeń do pamięci komputera, natomiast realizacja drugiego kernela wymaga ich ponownego skopiowania. W przypadku, kiedy rozmiar pamięci podręcznej jest niewystarczający aby przechować wszystkie elementy tablicy z wyznaczonymi danymi, głównym punktem wymiany stanie się pamięć główna komputera, co w konsekwencji zdecydowanie ogranicza osiągalną wydajność obliczeń. Zredukowanie liczby odwołań do pamięci głównej wiązało się z opracowaniem blokowej organizacji obliczeń poprzez zastosowanie dwóch technik optymalizacji pętli: loop fusion oraz 6

8 a) Execution order k1: A[i]=in1[i]*in2[i] a b c d e f g h i k2: out[i]=a[i-1]*a[i+1] a b c d e f g h i c) block i-1 P1 P2 k1: a b c d b) block i-1 block i block i+1 k1: a b c d k1: c d e f g k1: f g h i k2: a b c k2: d e f k2: g h i Execution order... Extra computation block i block i+1 P1 P2 P1 P2 k1: c d e f g k1: f g h i k2: a b c k2: d e f k2: g h i Execution order P1 - Phase of keeping partial outcomes in cache P2 - Phase of computation Rysunek 1: Koncepcja reorganizacji obliczeń a) przykład obliczeń typu stencil, b) metoda blokowej organizacja obliczeń z wykorzystaniem technik loop fusion and loop tiling, c) metoda redukcji liczby dodatkowo wyznaczanych elementów loop tiling (Rys. 1b). W rezultacie, domena obliczeniowa została zdekomponowana na zbiór bloków obliczeniowych. W ramach każdego bloku realizowane są obliczenia dla wszystkich kernelii w obrębie odpowiednio wyznaczonego fragmentu tablicy danego kernela, natomiast bloki przetwarzane są sekwencyjnie. W porównaniu z bazową wersją, nowe podejście zmienia kolejność wykonywania operacji. Zaproponowana metoda umożliwia przechowanie wyników cząstkowych obliczeń pierwszego kernela w pamięci podręcznej, z pominięciem pamięci głównej dla odpowiednio dobranego rozmiaru bloku. Głównym kosztem opracowanej metody jest konieczność przeprowadzenia dodatkowych obliczeń w ramach każdego bloku w celu zapewnienia poprawność wyników obliczeń. Wymóg zastosowania dodatkowych obliczeń wynika z zależności informacyjnych jakie występują między kernelami: wyznaczenie poszczególnych elementów w obrębie drugiego kernela zależy od odpowiednich elementów obliczanych w pierwszym kernelu. Przykładowo, obliczenie elementu d w obrębie drugiego kernela jest zależne od elementów c i e wyznaczanych w pierwszym kernelu (Rys. 1b). Kluczem do zminimalizowania liczby dodatkowych obliczeń okazał się fakt powtarzania tych samych obliczeń przez sąsiadujące bloki (Rys. 1c). Ogólna koncepcja opracowanego rozwiązania polegała na pozostawianiu w pamięci podręcznej odpowiednich fragmentów tablic, zamiast wykonania obliczeń w obrębie kolejnego bloku. Rys. 1c) przedstawia koncepcję tej metody. Aby wdrożyć metodę redukcji liczby dodatkowo wyznaczanych elementów, został opracowany mechanizm mapowania obszarów pamięci podręcznej, który polega na podmianie odpowiedniej przestrzeni adresowej na potrzebę realizacji obliczeń w ramach kolejnych bloków. Opracowana metodologia została zastosowana w aplikacji MPDATA, której struktura wykonania ma charakter algorytmu iteracyjnego. W zależności od rodzaju symulowanego zjawiska fizycznego, liczba kroków czasowych aplikacji MPDATA może przekraczać nawet kilka milionów. W skład każdego kroku czasowego badanej aplikacji wchodzi siedemnaście kerneli obliczeniowych, których struktura jest zgodna z obliczeniami typu stencil. Niemal każdy kernel zależy od co najmniej dwóch innych kerneli. Oznacza to, że obliczenie pojedynczego elementu w ramach danego kernela, wymaga użycia odpowiednio dobranej grupy elementów wyznaczanych w obrębie wcześniejszych kerneli. Graf zależności danych dla aplikacji MPDATA oraz 7

9 przykładowa struktura kerneli została zilustrowana na Rys. 2. a) Execution of subsequent time steps in: x, u1, u2, u3, h Kernel 1 Kernel 2 Kernel 3 Kernel 4 Kernel 5 Kernel 7 Kernel 6 Kernel 8 Kernel 9 Kernel 10 Kernel 11 Kernel 12 Kernel 13 Kernel 14 Kernel 15 Kernel 16 Kernel 17 out: x b) Kernel 11 Kernel 10 Kernel 9 in: x in: x in: x o o o k-dim o j-dim i-dim out: v1 k-dim o j-dim i-dim out: v2 k-dim o j-dim i-dim out: v3 Rysunek 2: Graf zależności danych dla MPDATA (a) oraz przykłady stencili dla poszczególnych kerneli MPDATA Przeprowadzona reorganizacja struktury kodu aplikacji MPDATA skutkowała opracowaniem (3+1)-wymiarowej dekompozycji obliczeń, której ogólna koncepcja została zilustrowana na Rys. 3. W rezultacie zastosowanych zmian została zredukowana liczba odwołań do pamięci głównej związanych z przesyłaniem wyników obliczeń realizowanych w ramach wszystkich kerneli aplikacji MPDATA. W efekcie końcowym, dostęp do pamięci głównej jest związany z transferem danych wejściowych i wyjściowych niezbędnych do wykonania pojedynczego kroku czasowego. a) b) k-dim j-dim i-dim Kernel l Kernel 2 K-dim Kernel 17 Rysunek 3: (3+1)-wymiarowa dekompozycja aplikacji MPDATA: a) blokowa reorganizacja obliczeń; b) realizacja wszystkich kerneli obliczeniowych Szczegółowy opis opracowanej metodologi został przedstawiony w szeregu prac naukowych. Prace [A1,A3] odnoszą się do opracowanej dekompozycji obliczeń aplikacji MPDATA bazującej na zrównolegleniu kodu z użyciem trójwymiarowej domeny obliczeniowej. Opracowana metodologia znalazła również zastosowania w mojej ostatniej pracy [A9], której głównym celem jest zapewnienie przenośności kodu aplikacji MPDATA miedzy różnorodnymi platformami HPC. Zaletą (3+1)-wymiarowej dekompozycji obliczeń jest redukcja liczby odwołań do pamięci głównej. Jednakże metoda ta nie gwarantuje efektywnego wykorzystania platform wieloprocesorowych typu ccnuma, które łączą dostępne procesory CPU na poziomie pamięci podręcznej, za pomocą magistrali typu punkt-punkt (np. Intel QuickPath Interconnect). Prowadzone badania wykazały, że ze względu na zbyt niską wydajność tych magistrali, komunikacja między procesorami może mieć negatywny wpływ na wydajność obliczeń równoległych. Rozwiązaniem tego problemu jest opracowana przeze mnie ogólna metoda izolowania obliczeń równoległych typu stencil, między fizycznymi grupami rdzeni, tj. procesorami lub ich fragmentami. Metoda ta znalazła swoje zastosowanie w aplikacji MPDATA jako rozszerzenie (3+1)-wymiarowej dekompozycji obliczeń równoległych. Ogólna postać zaproponowanej 8

10 metody została przedstawiona w pracach [A1,A3], natomiast praca [A7] prezentuje jej finalną postać. Dodatkowo, skuteczność proponowanego rozwiązania została przetestowana w pracy [A10] z wykorzystaniem różnorodnych platform wieloprocesorowych typu ccnuma. Rys. 4 przedstawia ogólną koncepcję równoległej organizacji obliczeń z wykorzystaniem platform wieloprocesorowych. Przedstawiony na Rys. 4a) przykład obejmuje wykonanie trzech kerneli obliczeniowych realizujących obliczenia typu stencil. Z kolei, Rys. 4b) oraz 4c) ilustrują dwa scenariusze umożliwiające zrównoleglenie przedstawionych obliczeń z wykorzystaniem dwóch procesorów CPU. a) b) CPU_A CPU_B c) CPU_A CPU_B // Kernel 1: for(...;...;...) A[i]=in[i-1]+in[i+1]; sync. a b c d e f a b c d c d e f // Kernel 2: for(...;...;...) B[i]=A[i]+A[i+1]; a b c d e f sync. a b c c d e f // Kernel 3: for(...;...;...) C[i]=B[i-1]+B[i]; a b c d e f sync. data transfer between CPUs data transfer inside CPU a b c d e f sync. extra computations Rysunek 4: Równoległa organizacja obliczeń z wykorzystaniem platform wieloprocesorowych; a) przykład obliczeń typu stencil z trzems kernelami; b) tradycyjne podejście zrównoleglenie obliczeń; c) metoda izolowania obliczeń równoległych Zgodnie z pierwszym scenariuszem (Rys. 4b), domena obliczeniowa jest podzielona na dwie części, z których każda przetwarzana jest z użyciem pojedynczego procesora. Ze względu na zależności informacyjne jakie występują pomiędzy kernelami, przedstawiona równoległa realizacja obliczeń wymaga odpowiedniej współpracy procesorów. Wiążę się to z koniecznością wprowadzenia punktów synchronizacji, by zapewnić poprawność wykonywanych obliczeń, oraz wykonania transferów danych między procesorami. W odróżnieniu od pierwszego podejścia, drugi scenariusz zakłada odizolowanie obliczeń równoległych wykonywanych przez współpracujące procesory. Głównym założeniem tej metody jest wykonywanie obliczeń równoległych w sposób jak najbardziej niezależny. Aby osiągnąć ten cel, transfer niezbędnych danych między procesorami został zastąpiony wykonaniem dodatkowych obliczeń. W rezultacie, każdy procesor wykonuje więcej obliczeń w obrębie pierwszego kernela, eliminując tym samym zarówno konieczność synchronizacji procesorów jak i wymóg przeprowadzania transferów danych. Rys. 4c) ilustruje ogólną koncepcję opracowanego sposobu izolowania obliczeń między procesorami. Zastosowanie kombinacji metody izolowania obliczeń równoległych oraz metody (3+1)- wymiarowej dekompozycji obliczeń pozwala na dopasowanie się obliczeń aplikacji MPDATA do wieloprocesorowych architektur komputerowych z pamięcią współdzieloną. Połączenie opisanych metod minimalizuje narzuty komunikacyjne zwiększając skalowalność obliczeń. Należy tutaj jednak podkreślić, iż struktura obliczeń aplikacji MPDATA (Rys. 2) jest zdecydowanie bardziej skomplikowana aniżeli przykład przytoczony na Rys. 4a). W efekcie zastosowanej kombinacji dwóch zaproponowanych metod, domena obliczeniowa aplikacji MPDATA jest dzielona na zbiór pod-domen zgodnie z drugim scenariuszem opracowanej metodologii. Oznacza to, że realizacja obliczeń w obrębie każdej pod-domeny wiąże się 9

11 z wykonaniem dodatkowych obliczeń. Całkowita liczba dodatkowo wyznaczanych elementów wynika z zależności informacyjnych jakie występują między kernelami aplikacji MPDATA. Przykładowa struktura dodatkowo wyznaczanych elementów została zilustrowana na Rys. 5a). Następnie, każda pod-domena jest zdekomponowana na zbiór bloków obliczeniowych przetwarzanych w sekwencyjnej kolejności zgodnie z zaproponowaną (3+1)-wymiarową dekompozycją obliczeń. Rys. 5b przedstawia ogólną strukturę realizacji obliczeń aplikacji MPDATA. a) b) Synchronizations between CPUs MPDATA sub-domain MPDATA sub-domain Execution of subsequent blocks MPDATA block Kernel 1 Kernel 4 Sync. Sync. in point CPU Kernel 5 Kernel 7 Sync. in CPU Sync. in CPU Kernel 14 Kernel 17 Sync. in CPU Execution of subsequent blocks MPDATA block Kernel 1 Kernel 4 Sync. Sync. in point CPU Kernel 5 Kernel 7 Sync. in CPU Sync. in CPU Kernel 14 Kernel 17 Sync. in CPU Synchronizations between CPUs Rysunek 5: Struktura dodatkowo wyznaczanych elementów dla pojedynczej pod-domeny (a), oraz schemat wykonania aplikacji MPDATA z użyciem kombinacji metody izolowania obliczeń równoległych oraz metody (3+1)-wymiarowej dekompozycji obliczeń (b) A.2) Metoda dystrybucji obliczeń z wykorzystaniem przetwarzania wielordzeniowego i wektorowego Tematyka moich badań związana była również z opracowaniem efektywnej organizacji równoległych obliczeń, realizowanych z wykorzystaniem architektur wielo- i masywnie wielordzeniowych. Głównym zadaniem opracowanej strategii jest zapewnienie efektywnej dystrybucji obliczeń pomiędzy dostępnymi jednostkami obliczeniowymi, przy zachowaniu podstawowych zalet opracowanych wcześniej metod, np. zmniejszenie narzutów na komunikację oraz poprawa wykorzystania lokalności danych. Kluczem do osiągnięcia tego celu stało się opracowanie zrównoleglenia obliczeń aplikacji MPDATA w ramach każdego bloku, powstałego w wyniku zastosowania opracowanej dekompozycji obliczeń badanej aplikacji. Opracowana metoda znalazła swoje zastosowanie w pracach [A1,A3,A8,A9]. Rys. 6a ilustruje podstawową koncepcję zrównoleglania każdego bloku aplikacji MPDATA, którego rozmiar definiowany jest przez trzy parametry: nb mb lb. Opracowana strategia zakłada równomierny podział każdego bloku na CN części, gdzie parametr CN określa liczbę dostępnych rdzeni. Następnie sąsiadujące ze sobą rdzenie mapowane są na kolejno występujące po sobie części bloku. Ze względu na zależności informacyjne pomiędzy kernelami aplikacji MPDATA, zaproponowana strategia mapowania skraca ścieżkę wymiany danych między rdzeniami. Kolejnym elementem prowadzonych prac badawczych było również umożliwienie wykorzystania przetwarzania wielowątkowego (ang. Simultaneous Multi-Threading, SMT), które w swojej definicji zakłada współbieżne uruchamianie S wątków na pojedynczym rdzeniu. Ponieważ wątki te współdzielą pamięć podręczną danego rdzenia, koncepcja opracowanego roz- 10

12 a) C1 CCN b) C1 CCN T CN,1 T CN,2 Group of threads for Core CN lb Group of threads for Core 1 T 1,1 T 1,2 lb T CN,3 T CN,4 T CN, nb Δm= mb CN Δm T 1,3 T 1,4 T 1,1 4 4 nb 1 11 Δm= mb CN Δm mb mb c) T 1,1 T 1,2 T 1,3 T 1,4 T 1,1 Group of threads for Core 1 lb C1 CCN T CN,2 T CN,3 T CN,4 T CN,1 T CN,1 Group of threads for Core CN d) T 1,1 T 1,2 T 1,3 T 1,4 T 1,1 Group of threads for Core 1 lb C1 CCN T T CN,2 CN,1 T CN,1 T CN,3 T T CN,3 CN,4 Group of threads for Core CN nb=1 Δm= mb 1 11 CN 4 4 mb Δm 4 4 nb=2 Δm= mb CN 2 Δm mb Rysunek 6: Koncepcja zrównoleglania każdego bloku obliczeniowego aplikacji MPDATA z wykorzystaniem CN rdzeni (a), oraz metody grupowania wątków i dystrybucji obliczeń między nimi z użyciem 4 wątków na każdy rdzeń dla następujących przypadków nb 4 (b), nb = 1 (c), i nb = 2 (d) wiązania polegała na zwiększeniu wykorzystania lokalności danych poprzez odpowiednie grupowanie wątków oraz optymalną dystrybucję obliczeń w obrębie każdego z nich. Aby osiągnąć ten cel, wątki przypisane do danego rdzenia wykonują współbieżnie obliczenia w zwartej grupie roboczej, która wspólnie przetwarza dane zlokalizowana w najbliższym sąsiedztwie. Oznacza to, że utworzone części każdego bloku (Rys. 6) są dalej dzielone na mniejsze fragmenty o rozmiarze dopasowanym zarówno do liczby wątków, jak i bloku. Przykłady opracowanej równoległej organizacji obliczeń zostały zilustrowane na Rysunkach 6b)-6d) z uwzględnieniem różnych rozmiarów bloku oraz 4 wątków na rdzeń. Realizacja równoległych obliczeń w zwartej formie pozwala na zredukowanie liczby odwołań do pamięci podręcznej, poprzez wielokrotne użycie danych. Duży stopień złożoności tej metody wymusił opracowanie dedykowanego dyspozytora zadań, który zgodnie z metodologią, rozdysponowuje obliczenia między rdzeniami i wątkami. Naturalnym rozszerzeniem opracowanej metody było umożliwienie efektywnego przetwarzania wektorowego z zachowaniem przenośności między różnymi architekturami[a1,a3,a10]. Osiągnięcie tego celu zostało zrealizowane z użyciem automatycznej wektoryzacji obliczeń, oferowanej przez współczesne kompilatory. Zasadniczo, proces ten często wymaga stosowania odpowiednich podpowiedzi dla kompilatora, w wyniku czego osiągnięcie przenośności sprowadza się do ponownej kompilacji programu. Istnieje wiele przyczyn, które potencjalnie mogą zmniejszyć wydajność wektoryzowanego kodu lub nawet całkowicie zapobiec wektoryzacji. Aby osiągnąć wysoką efektywność dla procesu automatycznej wektoryzacji, struktura kodu aplikacji MPDATA została odpowiednio przebudowana. W efekcie prowadzonych prac została opracowana sekwencja siedmiu kroków mających na celu złagodzenie lub całkowitą eliminację ograniczeń nakładanych na proces automatycznej wektoryzacji. W szczególności, zbiór ten obejmuje: Krok 1 Zaprojektowanie odpowiedniej struktury danych, umożliwiającej zastosowanie wektoryzacji obliczeń na elementach kolejno zapisanych w pamięci. 11

13 Krok 2 Wyrównanie danych w pamięci do odpowiedniej granicy, której wartość jest automatycznie ustalana w oparciu o charakterystykę konkretnej architektury komputerowej. Krok 3 Uniknięcie zależności w pętlach typu read-after-write, poprzez zastosowania techniki podziału pętli (ang. loop splitting). Krok 4 Zastosowania techniki łączenia pętli (ang. loop fusion) mającej na celu zwiększenie wykorzystania lokalności danych w obrębie kerneli aplikacji MPDATA. Krok 5 Eliminacja instrukcji warunkowych typu if związanych z wykonaniem warunków brzegowych aplikacji MPDATA. Krok 6 Opracowanie mechanizmu elastycznego zarządzania procesem automatycznej wektoryzacji, którego głównym zadaniem jest dostosowanie struktury kodu z uwzględnieniem (i) zmiennego rozmiaru siatki obliczeniowej, (ii) zmiennego rozmiaru bloków, (iii) zmiennego rozmiaru wektora, oraz (iv) zmiennej liczby użytych rdzeni. Krok 7 Zastosowania ujednoliconego zestawu podpowiedzi dla kompilatorów różnych firm mających na celu dostarczenie kompilatorowi informacji na temat (i) liczby iteracji wektoryzowanych pętli, (ii) dopasowania bądź niedopasowania danych, (iii) występowania zależności pomiędzy danymi (bądź ich braku), (iv) możliwości zapisywania wyników obliczeń z pominięciem hierarchii pamięci podręcznej, jak również (v) możliwość ignorowania potencjalnych przyczyn blokujących proces wektoryzacji. A.3) Algorytm synchronizacji obliczeń oparty na podejściu data-flow Prowadzone prace badawcze dotyczyły również opracowania algorytmu dla procesu synchronizacji obliczeń typu stencil, którego opis został zaprezentowany w mojej publikacji [A8]. Głównym założeniem opracowanego algorytmu jest zmniejszenie kosztów synchronizacji, której efektywność wraz z nieustannym wzrostem liczby rdzeni systemów komputerowych zaczyna mieć coraz większy wpływ na wydajność obliczeń. Koncepcja proponowanego algorytmu zakłada realizację procesu synchronizacji jedynie dla współzależnych wątków zamiast stosowania ogólnego podejścia typu bariera, które zakłada synchronizacje wszystkich rdzeni (wątków). Aby przybliżyć zaproponowaną koncepcję, Rys. 7a) przedstawia przykład obliczeń typu stencil oraz schemat ich zrównoleglenia z wykorzystaniem trzech rdzeni. By zachować poprawność wyników obliczeń równoległych wymagane w tym przypadku jest przeprowadzenie synchronizacji rdzeni w dwóch punktach kodu. Standardowym rozwiązaniem dla procesu synchronizacji jest podejście typu bariera (Rys. 7 b), która w swojej konstrukcji zakład synchronizacją wszystkich rdzeni (wątków). Analizując przepływ danych dla zaprezentowanego przykładu okazuje się, że nie ma konieczności przeprowadzenia synchronizacji dla wszystkich rdzeni (Rys. 7 a). Rdzeń pierwszy (core_a) oraz rdzeń ostatni (core_c) równolegle przetwarzają dane w sposób niezależny od siebie. Natomiast, równoległa realizacja obliczeń w obrębie każdego z nich jest współzależna od wykonania rdzenia core_b. Zrozumienie zależności informacyjnych między rdzeniami dla powyższego przykładu pozwala na zdefiniowanie dwóch grup rdzeni, w obrębie których wymagana jest synchronizacja obliczeń. W efekcie, w składzie pierwszej grupy wchodzą rdzenie core_a oraz core_b, natomiast w ramach drugiej grupy znajdują się rdzenie core_b oraz core_c. Przeprowadzenie synchronizacji jedynie wewnątrz każdej grupy zapewni poprawność wykonywanych obliczeń równoległych, uniezależniając tym samych wykonanie obliczeń realizowanych prze rdzenie core_a oraz core_c. Ogólna konstrukcja opracowanego procesu synchronizacji została przedstawiona 12

14 a) A[i]=in[i-1]+in[i]+in[i+1] Sync. point B[i]=A[i]+A[i+1] Sync. point out[i]=b[i-1]+b[i] core_a core_b core_c b) core_a Barrier Approach core_b core_c Execution time c) Data-Flow Synchronization Approach core_a core_b core_c Arrive phase Waiting phase Departure phase Rysunek 7: Koncepcja synchronizacji obliczeń typu Stencil [A8]: a) przykład obliczeń oraz schemat ich zrównoleglenia z użyciem trzech rdzeni, b) ogólna konstrukcja podejścia typu bariera, c) ogólna struktura procesu synchronizacji współzależnych rdzeni na Rys. 7 c). Zaproponowana metoda synchronizacji uwalnia zasoby obliczeniowe rdzeni, a tym samym umożliwia zwiększenie efektywności ich wykorzystania. Wdrożenie opracowanej metody wymagało przeprowadzenia szczegółowej analizy przepływów danych między rdzeniami i wątkami jakie występują w danej aplikacji. Analizując zależności informacyjne aplikacji MPDATA oraz proces jego zrównoleglenia, okazało się, że transfer wymaganych danych odbywa się jedynie w obrębie grup wątków, które są przypisane do kolejno występujących po sobie fizycznych rdzeni. Rys. 8 ilustruje korelację pomiędzy rdzeniami, wątkami oraz synchronizacją dla aplikacji MPDATA. W przypadku aplikacji do modelowania krzepnięcia, przeprowadzona analiza wykazała, że wymiana danych zachodzi w obrębie grup kolejno występujących po sobie dwóch wątków (logicznych rdzeni). Dodatkowa wymiana danych jest również wymagana między ostatnim i pierwszym wątkiem. a) b) k-dim syncgroup 1 SP 1 syncgroup 3 SP 3 core 1 core 2 core 3 core CN o i-dim o j-dim thread1,1 thread1,smt thread 2,1 thread2,smt thread 3,1 thread 3,SMT thread CN,1 thread CN,SMT SP 2 SP CN-1 syncgroup 2 SP - synchronization point syncgroup CN-1 Rysunek 8: Korelacja pomiędzy rdzeniami, wątkami oraz synchronizacją dla aplikacji MPDATA: a) ogólny wzorzec dla obliczeń typu stencil definiujący zakres wymienianych danych w punktach synchronizacji, oraz b) konstrukcja grup wątków w obrębie których wymagana jest synchronizacja obliczeń 13

15 W celu zastosowania opisanego mechanizmu synchronizacji do badanych aplikacji został opracowany algorytm synchronizacji obliczeń typu stencil (Algorytm 1). W odróżnieniu od standardowego podejścia typu bariera, konstrukcja opracowanego algorytmu pozwala na przeprowadzenie synchronizacji jedynie dla współzależnych wątków. Oznacza to, że realizacja niezależnych obliczeń równoległych nie jest wstrzymywana przez proces synchronizacji, tak jak ma to miejsce w przypadku bariery. Algorytm 1 Algorytm synchronizacji dedykowany dla obliczeń typu stencil [A8] Input: le ftlocalsens; rightlocalsens; le ftpoint; rightpoint L := fetch_and_add(leftpoint.counter, -1) R := fetch_and_add(rightpoint.counter, -1) if L = 0 and R = 0 then le f tpoint.counter := le f tpoint.threadsnum le f tpoint.globalsense := le f tlocalsens rigthpoint.counter := rightpoint.threadsnum rightpoint.globalsense := rightlocalsens else if L = 0 then le f tpoint.counter := le f tpoint.threadsnum le f tpoint.globalsense := le f tlocalsens while rightpoint.globalsense rightlocalsens do end while else if R = 0 then rightpoint.counter := rightpoint.threadsnum rightpoint.globalsense := rightlocalsens while le f tpoint.globalsense le f tlocalsens do end while else while le f tpoint.globalsense le f tlocalsens or rightpoint.globalsense rightlocalsens do end while end if leftlocalsens :=!leftlocalsens rightlocalsens :=!rightlocalsens Arriving phase Waiting phase Waiting phase Waiting phase Departure phase A.4) Weryfikacja efektywności zaproponowanych metod i algorytmów Efektywność opracowanych metod została zweryfikowana w praktyce, z wykorzystaniem różnorodnych platform obliczeniowych, bazujących na (i) jedno procesorowych architekturach Intel MIC [A1,A3,A8,A9], (ii) 2- oraz 4-procesorowych serwerach ccnuma [A3,A8,A9,A10], oraz (iii) wieloprocesorowych instalacji SMP/NUMA SGI UV 2000 [A7] oraz UV 3000 [A10]. Badanie wydajności zostało przeprowadzone dla różnych rozmiarów siatki obliczeniowej i różnej liczby kroków czasowych, z wykorzystaniem zarówno podwójnej, jak i pojedynczej precyzji obliczeń. Zastosowanie opracowanej metodologi umożliwiło lepsze wykorzystanie dostępnych zasobów obliczeniowych badanych aplikacji. Należy tutaj podkreślić, że wzrost wydajności obliczeń był zauważalny we wszystkich przeprowadzonych testach, zarówno dla (i) aplikacji MPDATA (w przypadku zastosowania kombinacji opracowanych metod i algorytmu synchronizacji), jak i (ii) aplikacji do modelowania krzepnięcia w przypadku wykorzystania algorytmu synchronizacji. 14

16 Tabela 1 przedstawia przykładowe zestawienie wyników wydajnościowych uzyskanych dla domeny obliczeniowej o rozmiarze oraz 5000 kroków czasowych z wykorzystaniem różnych platform firmy Intel. Przedstawione pomiary czasu zostały wykonane dla dwóch równoległych wersji aplikacji MPDATA: bazowej oraz zmodyfikowanej, z użyciem wszystkich zasobów obliczeniowych. Oprócz czasu wykonania, wspomniana tabela przedstawia uzyskane wartości przyspieszenia S, wyznaczane względem bazowej równoległej wersji aplikacji, oraz uzyskaną wydajność obliczeń SP. Tabela 1: Wyniki wydajnościowe aplikacji MPDATA dla siatki obliczeniowej o rozmiarze przeprowadzone z wykorzystaniem różnych platform firmy Intel Platforma komputerowa CN Architektura t B t M S SP 4x Intel Xeon Platinum Skylake 1472,5 151,3 9, ,1 2x Intel Xeon Gold Skylake 2948,9 352,6 8,36 447,9 2x Intel Xeon E5-2697v4 36 Broadwell 4382,9 598,6 7,32 263,3 2x Intel Xeon E5-2697v3 28 Haswell 4714,1 777,7 6,06 203,1 2x Intel Xeon E5-2695v2 24 Ivy Bridge 5944,6 1074,7 5,53 146,4 1x Intel Xeon Phi 7250F 68 Knights Landing 5357,3 609,5 8,78 261,9 t B czas wykonania bazowej wersji [s]; t M czas wykonania zmodyfikowanej wersji [s]; S przyspieszenie; SP osiągnięta wydajność obliczeń [Gflop/s]; CN - liczba rdzeni Z tabeli wynika, że modyfikowana równoległa wersja, uzyskuje zdecydowanie lepszą efektywność obliczeń w stosunku do wersji bazowej. Największe wzrosty wydajności osiągnięte w wyniku zastosowania opracowanej metodologii odnotowano dla 4-procesorowej platformy ze 112 rdzeniami, dla której uzyskaną faktyczną wydajność (ang. sustained performance) rzędu 1 Tflop/s. W tym przypadku, obliczenia równoległe wykonują się prawie 10 razy szybciej niż bazowa równoległa wersja aplikacji. Przedstawione wyniki wydajnościowe, potwierdzają skuteczność proponowanych metod odwzorowania aplikacji MPDATA, na architektury procesorów ogólnego przeznaczenia oraz Intel MIC. Zaproponowana zmodyfikowana wersja aplikacji MPDATA jest na tyle złożona, że w celu osiągnięcia jak najwyższej wydajności, wymagane jest zastosowanie indywidualnej konfiguracji kodu dla każdej architektury. Aby wygenerować optymalną konfigurację, w pracy [A9] została zaproponowana metoda automatycznej kalibracji opracowanych metod, umożliwiająca samo-dostosowanie się kodu MPDATA do wybranych cech architektur komputerowych. Biorąc pod uwagę charakterystyki obecnych i nadchodzących architektur wieloprocesorowych, zastosowanie kombinacji opracowanych metod daje doskonałe możliwości do uzyskania przenośności kodu aplikacji MPDATA między różnymi architekturami z zachowaniem wysokiej wydajności obliczeń, co zostało przedstawione w mojej ostatniej pracy [A9]. Uzyskane wyniki prowadzonych badań stanowia istotny wkład w realizację otrzymanego przeze mnie grantu NCN Sonata 13 pt. "Przenośne programowanie równoległe architektur masywnie wielordzeniowych oraz samoadaptujace się aplikacje" (nr UMO-2017/26/D/ST6/00687, ). B) Metody zrównoleglania i dystrybucji obliczeń numerycznych w architekturach hybrydowych z akceleratorami obliczeniowymi Kolejnym osiągnięciem naukowym było opracowanie metodyki dostosowania aplikacji naukowych do architektur hybrydowych z akceleratorami obliczeniowymi takim jak procesory graficzne GPU oraz akceleratory Intel MIC. Istotą prowadzonych prac naukowo-badawczych było 15

17 dążenie do pełnego wykorzystania wszystkich komponentów architektury hybrydowej, w tym procesorów oraz akceleratorów. Zaproponowana metodologia znalazła swoje odzwierciedlenie w pracach [A2,M1,A4], a jej zakres badawczy obejmuje: Metoda adaptacji aplikacji MPDATA do architektur hybrydowych CPU GPU, Metoda adaptacji aplikacji numerycznego modelowania krzepnięcia do architektur hybrydowych CPU MIC. B.1) Metoda adaptacji aplikacji MPDATA do architektur hybrydowych CPU GPU W pracy [A2] została zaproponowana metoda odwzorowania aplikacji MPDATA na architektury hybrydowe wyposażone w procesory CPU i GPU. Efekty prowadzonych badań przedstawia również monografia [M1], która zawiera obszerniejszy opis opracowanej metodologii. Stworzenie hybrydowej wersji aplikacji MPDATA wymagało połączenia autorskiej wersji kodu MPDATA dostosowanej do procesorów CPU z wersją dopasowaną do procesorów GPU [A2], której implementacja stanowiła efekt prac badawczych zespołu naukowego kierowanego przez Prof. dr hab. inż. Romana Wyrzykowskiego. Ze względu na różnorodność architektur CPU i GPU, każda z użytych wersji została indywidualnie dopasowana do właściwości konkretnej architektury, pozwalając tym samym na jej efektywne wykorzystania. Zapewnienie efektywności obliczeń dla architektur hybrydowych wymagało rozwiązania problemów, których zakres obejmował efektywną dystrybucje, zarządzanie i synchronizację obliczeń oraz równoważnie obciążenia w obrębie dwóch głównych komponentów platformy: CPU oraz GPU. Ze względu na cechy architektury hybrydowej, aplikacja MPDATA wymagała podziału obliczeń pomiędzy komponentami CPU i GPU. W tym celu została opracowana metoda odwzorowania aplikacji na architektury hybrydowe, która umożliwiła minimalizacje komunikacji pomiędzy CPU i GPU kosztem nadmiarowych obliczeń. Konstrukcja obliczeń aplikacji MPDATA umożliwiła zastąpienie części komunikacji dodatkowymi obliczeniami wielokrotnie powtarzanymi przez obie jednostki obliczeniowe. W efekcie końcowym, procesory CPU i GPU równolegle realizują obliczenia w ramach poszczególnych kroków czasowych, pomiędzy zaś nimi następuje synchronizacja obliczeń oraz wymiana koniecznych danych. Rys. 9a) ilustruje opracowaną koncepcję odwzorowania aplikacji MPDATA na architektury hybrydowe CPU GPU. a) b) 1st time step 2nd time step CPU 3rd time step kernels CPU GPU synchronization point CPU GPU synchronization point CPU GPU OpenMP GPU fork Synchronization OpenMP (Parallel Computations) OpenCL Host API (GPU management) OpenCL (Parallel Computations) Synchronization join Rysunek 9: Koncepcja odwzorowania aplikacji MPDATA na architektury hybrydowe (a), model programowania hybrydowego z użyciem OpenMP i OpenCL (b) W celu realizacji zaproponowanej metody, opracowano sposób zarządzania obliczeniami, oparty na wykorzystaniu hybrydowego środowiska programowania OpenMP OpenCL. Zastosowana kombinacja środowisk OpenMP i OpenCL umożliwiła efektywne zarządzanie zarówno zasobami obu komponentów hybrydowej platformy sprzętowej, jak i ich współdziałaniem w trakcie wykonywania aplikacji MPDATA. Opracowanie efektywnych sposobów zarządzania zasobami obliczeniowymi CPU GPU wymagało uwzględnienia zarówno odwzorowania 16

18 aplikacji MPDATA na architektury hybrydowe, jak i modelu programowania hybrydowego. Rys. 9b) ilustruje zasadę działania opracowanego mechanizmu z wykorzystaniem modelu programowania hybrydowego OpenMP i OpenCL. Hybrydowa wersja kodu aplikacji MPDATA nie rozwiązuje problemu równoważnego obciążenia w obrębie procesorów CPU oraz GPU. Aby rozwiązać ten problem, został opracowany mechanizm decyzyjny dla procesu równoważenia obliczeń, który w trakcie wykonywania aplikacji MPDATA dynamicznie kalibruje podział siatki obliczeniowej w oparciu o uzyskiwane czasy obliczeń z kolejnych kroków czasowych. Zastosowanie mechanizmu decyzyjnego w początkowej fazie wykonania aplikacji umożliwiło skrócenie czasu obliczeń pozostałych kroków czasowych, dzięki optymalnej dystrybucji obliczeń pomiędzy CPU a GPU. Opracowana adaptacja aplikacji MPDATA do hybrydowych platform obliczeniowych pozwoliła na uwzględnienie charakterystyk wielordzeniowych procesorów ogólnego przeznaczenia CPU i zapewnienie ich efektywnego współdziałania z procesorami graficznymi GPU. Wartym podkreślenia jest również fakt, iż zastosowana kombinacja połączenia dwóch standardów OpenMP i OpenCL umożliwiła zachowanie funkcjonalnej przenośności kodu MPDATA w obrębie jednostek obliczeniowych różnych producentów. Efektywność nowej wersji kodu aplikacji MPDATA została przetestowana z wykorzystaniem systemów hybrydowych skonstruowanych z połączania procesorów CPU firm Intel i AMD oraz procesorów GPU firm NVIDIA i AMD/ATI. W ramach przeprowadzonych testów wydajnościowych przedstawionych w pracach [A2,M1] wykazano skuteczność zaproponowanej metodologii, odnotowując wzrost wydajności obliczeń we wszystkich przeprowadzonych testach. Dodatkowo, opracowana metodologia została zweryfikowana pod kątem poprawności wykonywanych obliczeń numerycznych. Przeprowadzone wspólnie z naukowcami z Instytutu Meteorologii i Gospodarstwa Wodnego w Warszawie badania potwierdziły skuteczność opracowanej adaptacji, a ich wyniki zostały opisane w pracy [4]. B.2) Metoda adaptacji numerycznego modelowania krzepnięcia do architektur hybrydowych CPU MIC W pracy [A4], zaproponowano ogólną metodykę dostosowania aplikacji naukowych do architektur hybrydowych z akceleratorami Intel MIC, bez konieczności restrukturyzacji kodu źródłowego aplikacji. Opracowana metodologia została wykorzystana i zweryfikowana w praktyce na przykładzie rzeczywistej aplikacji przeznaczonej do numerycznego modelowania procesu krzepnięcia. Badana aplikacja ma charakter algorytmu iteracyjnego, a jej ogólny schemat wykonania cechują obliczenia przeplatane zapisem częściowych wyników do pliku (Rys. 10). W podstawowej (bazowej) wersji aplikacji obliczenia wykonywane są w sposób równoległy w ramach kolejnych kroków czasowych z wykorzystaniem systemów obliczeniowych charakteryzujących się pamięcią współdzieloną. Zapis rezultatów wykonywany jest po pierwszym, a następnie po każdym zestawie R kroków czasowych (w badanym przypadku R=2000). W efekcie obliczenia wstrzymywane są do czasu zakończenia zapisu danych do pliku. Przyjęty schemat pozwala na obserwację oraz ocenę poprawności procesu modelowania computation in successive time steps writing results to the file time Rysunek 10: Schemat wykonania obliczeń aplikacji do modelowania krzepnięcia z użyciem bazowej wersji kodu Przewodnim problemem badanej wersji aplikacji jest stosunkowo długi czas wykonywania symulacji, który osiąga blisko 11 godzin z użyciem dwuprocesorowych platform obliczenio- 17

19 wych. Ponadto, istotnym ograniczeniem dla rozwiązania tego problemu stała się konieczność umożliwienia twórcy tej aplikacji wprowadzania numerycznych udoskonaleń opracowywanej aplikacji. Oznacza to brak możliwość wprowadzania zaawansowanych metod dla reorganizacji kodu badanej aplikacji, jak to miało to miejsce w przypadku aplikacji MPDATA. Rozwiązaniem problemu okazało się włączenie do obliczeń koprocesorów Intel Xeon Phi bazujących na pierwszej generacji architektury Intel MIC. W rezultacie prowadzonych prac został zaproponowany schemat równoległej realizacji obliczeń, którego struktura umożliwia jednoczesną realizację: (i) obliczeń równoległych wykonywanych przez procesory oraz akceleratory, (ii) komunikacji pomiędzy urządzeniami oraz (iii) zapisu wyników do pliku. Rys. 11 ilustruje schemat wykonania obliczeń równoległych aplikacji do modelowania krzepnięcia dostosowany do platform hybrydowych CPU MIC. MIC MIC CPU Team CPU Team 1 time computation in successive time steps writing results to the file input data transfer to MIC 0 or MIC 1 data transfer of partial results to MIC 0 or MIC 1 data transfer of partial results from MIC 0 or MIC 1 data transfers required to wiriting results to the file Rysunek 11: Równoległa organizacja obliczeń aplikacji do modelowania krzepnięcia dostosowana do platform hybrydowych CPU MIC Opracowana metodyka adaptacji kodu aplikacji krzepnięcia zakłada brak znacznych modyfikacji kodu źródłowego aplikacji i składa się z następujących kroków: (i) transformacji struktur danych; (ii) dekompozycji obliczeń oraz optymalizacji wymiany danych; (iii) zapewnienia odpowiedniego zrównoważenia obciążenia pomiędzy procesorami CPU oraz akceleratorami Intel MIC; (iv) zrównoleglenia obliczeń pomiędzy dostępnymi rdzeniami/wątkami, oraz (v) wektoryzacji obliczeń. Zastosowanie wszystkich kroków opracowanej metodyki stanowi klucz do uzyskania wysokiej wydajności obliczeń. Przykładowo, w ramach trzeciego kroku została opracowana metoda balansowania obciążenia między procesorami CPU oraz akceleratorami Intel MIC. Opracowane rozwiązanie pozwala na przeprowadzenie dynamicznej redystrybucji obliczeń w trakcie wykonywanych obliczeń. W efekcie, redystrybucja obliczeń wykonywana jest w oparciu o czasy obliczeń poszczególnych części siatki, natomiast jej proces kończy się, kiedy czasy obliczeń wszystkich trzech części (MIC0, CPU oraz MIC1) są maksymalnie zbliżone do siebie. Kolejnym przykładem jest krok piąty, którego zadaniem jest umożliwienie wektoryzacji obliczeń. W bazowej wersji algorytmu przeprowadzenie efektywnego procesu wektoryzacji jest niemożliwe ze względu na skomplikowane zależności pomiędzy danymi w badanej aplikacji. Wynika to z faktu, że obliczenia cechują się nieregularnym dostępem do danych, nieprzewidywalnym w trakcie kompilacji. Aby rozwiązać ten problem, została wprowadzona nieznaczna modyfikacja kodu źródłowego, mająca na celu dodanie tymczasowych buforów odpowiedzialnych za przechowywanie danych z nieregularnych obszarów pamięci (Rys. 12). Efektem tego 18

20 a) input data b) input data output data temporary vectors output data Rysunek 12: Koncepcja realizacji procesu wektoryzacji: a) bazowa wersja aplikacji cechująca się nieregularnym dostępem do danych, oraz b) zmodyfikowana wersja aplikacji wykorzystująca tymczasowe bufory odpowiedzialnych za przechowywanie danych z nieregularnych obszarów pamięci kroku było umożliwienie procesu automatycznej wektoryzacji obliczeń. Jednakże, realizacja tego kroku byłaby niemożliwa bez przeprowadzonej transformacji struktur danych przeprowadzonej w ramach pierwszego kroku. Efektywne wykorzystanie wszystkich komponentów platformy CPU MIC wiązało się również z opracowaniem sposobu zarządzania obliczeniami, którego konstrukcja została oparta na kombinacji: (i) modelu programowania w środowisku z pamięcią współdzieloną oraz (ii) odciążeniowego modelu programowania (ang. offload programming model). W praktyce, pierwszy z nich pozwala na wykorzystanie wszystkich dostępnych rdzeni/wątków w procesorach i akceleratorach, podczas gdy drugi wykorzystywany jest do transmisji danych oraz obliczeń do akceleratorów. Zaproponowana metodyka adaptacji uwzględnia nie tylko efektywne zrównoleglenie oraz wektoryzację obliczeń, ale również nałożenie transferów danych na obliczenia równoległe realizowane w ramach CPU, a także odpowiedni rozkład obciążeń pomiędzy urządzeniami oraz jednoczesne wykonywanie obliczeń równoległych i zapisu do pliku. W rezultacie, opracowane podejście pozwala dla pierwszej generacji architektury Intel MIC na blisko dziesięciokrotne zwiększenie wydajności obliczeń w stosunku do podstawowej wersji aplikacji realizowanej w sposób równoległy przez dwa procesory ogólnego przeznaczenia. Skuteczność opracowanej metodologi została również zweryfikowana po kątem dokładności wykonywanych obliczeń (Rys. 13). W celu sprawdzenia dokładności obliczeń porównano wyniki symulacji otrzymane dla oryginalnej oraz proponowanej wersji aplikacji, a ocena porównania została przeprowadzona w ścisłej współpracy z twórcą badanej aplikacji. W efekcie przeprowadzonych testów wykazano, że wyniki symulacji różnią się w sposób nieistotny pomimo wykorzystania różnych architektur obliczeniowych do wspólnej realizacji obliczeń. Opracowana metodologia jest wynikiem sprawowanej opieki naukowej nad doktorantem Politechniki Częstochowskiej, mgr inż. Kamilem Halbiniakiem. Osiągnięte wyniki badań stanowią doskonały punkt wyjścia dla kontynuacji podjętych prac badawczych w formie zadań obecnie realizowanych w ramach pracy doktorskiej. a) b) Rysunek 13: Różnice w udziale fazy stałej (a) oraz w koncentracji domieszki (b) pomiędzy wynikami symulacji dla wersji oryginalnej oraz zaproponowanej 19

21 C) Modele i algorytmy dystrybucji obciażenia w architekturach wielo- i masywnie wielordzeniowych oraz klastrach komputerowych Moim trzecim osiągnięciem naukowym jest opracowanie modeli i algorytmów dystrybucji obciążenia w architekturach wielo- i masywnie wielordzeniowych, z uwzględnieniem klastrów komputerowych. Powadzone prace realizowane były przy ścisłej współpracy z grupą badawczą Heterogeneous Computing Laboratory University College Dublin w Irlandii (HCL-UCD), kierowaną przez dra Alexey Lastovetsky. Efektem prowadzonych wspólnie badań są następujące oryginalne wyniki: Model zwiększania wydajności obliczeń w homogenicznych architekturach równoległych poprzez nierównomierne obciążenie jednostek przetwarzających, Heurystyczny algorytm mapowania obliczeń równoległych w obrębie homogenicznych klastrów obliczeniowych z heterogeniczną infrastrukturą sieciową. C.1) Model zwiększania wydajności obliczeń w homogenicznych architekturach równoległych poprzez nierównomierne obciażenie jednostek przetwarzajacych Równoważenie obciążenia jest powszechnie stosowaną metodą zwiększania wydajności obliczeń w architekturach równoległych, ponieważ zbalansowana aplikacja nie traci czasu w punktach synchronizacji i wymiany danych. Praca [A6], będąca wynikiem mojego stażu na Uniwersytecie w Dublinie w 2015 r., stanowi wyzwania dla uniwersalności tej techniki w odniesieniu do optymalizacji wydajności aplikacji równoległych. Zaproponowane podejście do zwiększania wydajności obliczeń zostało zweryfikowane na przykładzie algorytmu MPDATA. U jego podstaw tkwi model FPM (ang. Functional Performance Model), którego autorami są naukowcy wchodzący w skład grupy badawczej HCL-UCD. Model FPM [2, 3] umożliwia zbudowanie funkcji prędkości s i (x), która reprezentuje prędkość S i danego procesora (ang. speed of processor) jako współczynnik wydajności badanej aplikacji osiągalny dla różnych problemów o rozmiarze x. Natomiast postać funkcji prędkości dla danego procesora jest określana jako s i (x) = x t i (x), gdzie t i(x) odnosi się do czasu wykonania obliczeń dla problemu o rozmiarze x. Wygenerowanie profilu wydajnościowego dla nowej wersji kodu MPDATA wymagało scharakteryzowania sposobu wykorzystania jednostek obliczeniowych. Kluczową rolę odegrała tutaj opisana wcześniej metoda izolowania obliczeń. Konstrukcja opracowanej metody zakłada równoległe wykonywanie obliczeń przez odpowiednio wyselekcjonowane grupy rdzeni, które cechuje zazwyczaj ta sam liczba rdzeni. Przykładem tego jest 60-rdzeniowa architektura Intel MIC pierwszej generacji, która umożliwia uzyskanie najlepszej wydajności obliczeń z użyciem 4 grup składających się z 15 rdzeni [A3,A6]. Ponieważ w tym przykładzie wszystkie grupy cechuje identyczna liczba rdzeni, domena obliczeniowa dzielona jest na równe pod-domeny, a każda z utworzonych pod-domen przetwarzana jest z użyciem innej grupy 15 rdzeni. Zastosowana struktura kodu MPDATA przyczyniła się do zdefiniowania funkcji prędkości w celu reprezentacji prędkości poszczególnych grup rdzeni, wspólnie realizujących obliczenia. Zbudowanie profilu wydajnościowego dla aplikacji MPDATA wiązało się również z określeniem funkcji prędkości w odniesieniu do trzech parametrów n, m i l, których wartości determinują rozmiar siatki obliczeniowej. Na podstawie przeprowadzanych badań [A6] wykazano, że wartości parametrów n i l nie wpływają na ostateczny kształt funkcji prędkości. Zatem, finalna postać funkcji prędkości dla aplikacji MPDATA została uzależniona jedynie od wartości parametru m. Rys. 14 ilustruje profil wydajnościowy aplikacji MPDATA utworzony dla koprocesorów Intel Xeon Phi z wykorzystaniem modelu FPM. Otrzymany kształt funkcji prędkości obrazuje uzyskiwaną wydajność obliczeń dla różnych rozmiarów siatek obliczeniowych. Im wartość 20

22 a) b) Speed Speed n m Problem size Problem size Savg(x) m Rysunek 14: Profil wydajnościowy aplikacji MPDATA utworzony dla pojedynczego zespołu 15 rdzeni wchodzących w skład koprocesora Intel Xeon Phi (a), jak również jego uśredniona postać (b) wyznaczonej prędkości S = s(x) jest wyższa dla danej grupy rdzeni, tym efektywność obliczeń dla rozmiaru siatki n m l, gdzie x = m, jest również wyższa. Analizując kształt funkcji prędkości wygenerowany dla aplikacji MPDATA (Rys. 14b), można zauważyć, że dla wielu różnych wartości parametru m wyznaczana prędkości S cechuje się mniejszą wartością aniżeli prędkość uzyskana dla x = m + Δm oraz x = m Δm. Przykładowo, przetwarzanie obliczeń dla rozmiaru (m = 120) cechuje się niższym współczynnikiem prędkości niż obliczenia realizowana dla rozmiarów siatek 120 (120 + Δm) 128 jak i 120 (120 Δm) 128, gdzie Δm = 8. Oznacza to, że poszczególne czasy obliczeń zarówno dla rozmiarów siatki n (m + Δm) l, jak i n (m Δm) l będą krótsze, niż czas przetwarzania obliczeń dla rozmiaru n m l. Właściwość ta została wykorzystana do opracowania innowacyjnej metody poprawy wydajności aplikacji [A6] poprzez zastosowanie nierównomiernego podziału obliczeń między grupami rdzeni (Rys. 15). Przykładowo, realizacja obliczeń z wykorzystaniem architektury Intel MIC dla siatki o rozmiarze wymaga jej podziału na 4 równe części o rozmiarze Przeprowadzona analiza wykazała jednak, że wykonywanie obliczeń dla siatki o rozmiarze m = 120 cechuje się relatywnie niskim współczynnikiem prędkości. Zwiększenie efektywności obliczeń w tym przypadku wiążę się z ponowną redystrybucją domeny na dwie pod-domeny o rozmiarach oraz kolejne dwie pod-domeny o rozmiarach Zastosowanie nierównomiernego podziału obliczeń umożliwia każdej grupie rdzeni prowadzenie obliczeń z wyższym współczynnikiem prędkości, co w rezultacie zwiększa wydajność obliczeń o 15%. T0 15 cores T1 15 cores T0 15 cores T1 15cores T2 15 cores T3 15 cores 120 T2 15 cores T3 15cores Rysunek 15: Koncepcja nierównomiernego podziału obliczeń domeny aplikacji MPDATA o rozmiarze

i3: internet - infrastruktury - innowacje

i3: internet - infrastruktury - innowacje 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

Bardziej szczegółowo

RECENZJA ROZPRAWY DOKTORSKIEJ

RECENZJA ROZPRAWY DOKTORSKIEJ Lublin, 27 kwietnia 2019 dr hab. Przemysław Stpiczyński, prof. UMCS Instytut Informatyki Uniwersytet Marii Curie-Skłodowskiej Ul. Akademicka 9/519 20-033 Lublin Email: przem@hektor.umcs.lublin.pl RECENZJA

Bardziej szczegółowo

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Kamil Halbiniak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 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

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp

Bardziej szczegółowo

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania, Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią

Bardziej szczegółowo

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

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK 1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Trendy rozwoju współczesnych procesorów Budowa procesora CPU na przykładzie Intel Kaby Lake

Bardziej szczegółowo

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

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK 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

Bardziej szczegółowo

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

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

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności. Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Konsekwencje prawa Moore'a 4 Procesory wielordzeniowe 5 Intel Nehalem 6 Architektura Intel Nehalem

Bardziej szczegółowo

Numeryczna algebra liniowa

Numeryczna algebra liniowa Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów

Bardziej szczegółowo

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

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności. Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Intel Nehalem 4 5 NVIDIA Tesla 6 ATI FireStream 7 NVIDIA Fermi 8 Sprzętowa wielowątkowość 9 Architektury

Bardziej szczegółowo

Nowoczesne technologie przetwarzania informacji

Nowoczesne technologie przetwarzania informacji Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

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

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

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

Wysokowydajna implementacja kodów nadmiarowych typu erasure codes z wykorzystaniem architektur wielordzeniowych Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych Ł. Kuczyński, M. Woźniak, R. Wyrzykowski Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

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

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

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

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Zadania badawcze prowadzone przez Zakład Technik Programowania: Zadania badawcze prowadzone przez Zakład Technik Programowania: - Opracowanie metod zrównoleglania programów sekwencyjnych o rozszerzonym zakresie stosowalności. - Opracowanie algorytmów obliczenia tranzytywnego

Bardziej szczegółowo

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

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

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

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

RECENZJA ROZPRAWY DOKTORSKIEJ

RECENZJA ROZPRAWY DOKTORSKIEJ Częstochowa, dn. 03.01.2018 Prof. dr hab. inż. Roman Wyrzykowski Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska ul. Dąbrowskiego 69 42-201 Częstochowa RECENZJA ROZPRAWY DOKTORSKIEJ

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności 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

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

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

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1 Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing

Bardziej szczegółowo

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

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing

Bardziej szczegółowo

Tesla. Architektura Fermi

Tesla. Architektura Fermi Tesla Architektura Fermi Tesla Tesla jest to General Purpose GPU (GPGPU), GPU ogólnego przeznaczenia Obliczenia dotychczas wykonywane na CPU przenoszone są na GPU Możliwości jakie daje GPU dla grafiki

Bardziej szczegółowo

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

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1 Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń

Bardziej szczegółowo

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

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

Przetwarzanie Równoległe i Rozproszone

Przetwarzanie Równoległe i Rozproszone POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNOLOGII INFORMACYJNYCH Przetwarzanie Równoległe i Rozproszone www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Dr inż. hab. Siergiej Fialko, IF-PK, Dr inż. hab. Siergiej Fialko, IF-PK, http://torus.uck.pk.edu.pl/~fialko sfialko@riad.pk.edu.pl 1 Osobliwości przedmiotu W podanym kursie główna uwaga będzie przydzielona osobliwościom symulacji komputerowych

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA

INŻYNIERIA OPROGRAMOWANIA INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia

Bardziej szczegółowo

Stronicowanie w systemie pamięci wirtualnej

Stronicowanie w systemie pamięci wirtualnej Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni

Bardziej szczegółowo

Programowanie aplikacji równoległych i rozproszonych

Programowanie aplikacji równoległych i rozproszonych Programowanie aplikacji równoległych i rozproszonych Dr inż. Krzysztof Rojek krojek@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Strumienie operacji na GPU Domyślne

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Algorytmy dla maszyny PRAM

Algorytmy dla maszyny PRAM Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań

Bardziej szczegółowo

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

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

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

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA Parametry wydajnościowe systemów internetowych Tomasz Rak, KIA 1 Agenda ISIROSO System internetowy (rodzaje badań, konstrukcja) Parametry wydajnościowe Testy środowiska eksperymentalnego Podsumowanie i

Bardziej szczegółowo

Programowanie Rozproszone i Równoległe

Programowanie Rozproszone i Równoległe Programowanie Rozproszone i Równoległe OpenMP (www.openmp.org) API do pisania wielowątkowych aplikacji Zestaw dyrektyw kompilatora oraz procedur bibliotecznych dla programistów Ułatwia pisanie programów

Bardziej szczegółowo

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

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

Bardziej szczegółowo

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

Dostęp do europejskich systemów obliczeniowych Tier-0 w ramach PRACE Dostęp do europejskich systemów obliczeniowych Tier-0 w ramach PRACE KONFERENCJA UŻYTKOWNIKÓW KDM 2016 W kierunku obliczeń Exaskalowych Mirosław Kupczyk, PCSS 28.06.2016 Misja PRACE HPC Dla Przemysłu Zagwarantowanie

Bardziej szczegółowo

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

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem

Bardziej szczegółowo

Energooszczędne programowanie

Energooszczędne programowanie Projektowanie energooszczędnych systemów wbudowanych dr inż. Ireneusz Brzozowski C-3, p. 512 WIET KATEDRA ELEKTRONIKI Elektronika i Telekomunikacja, Systemy Wbudowane www.agh.edu.pl Projektowanie energooszczędnych

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego

Analiza efektywności przetwarzania współbieżnego Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak 1/4/2013 Analiza efektywności 1 Źródła kosztów przetwarzania współbieżnego interakcje

Bardziej szczegółowo

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.

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. Wstęp 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. Przedstawienie architektur sprzętu wykorzystywanych do

Bardziej szczegółowo

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

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Źródła kosztów przetwarzania współbieżnego interakcje między procesami

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Bardziej szczegółowo

RECENZJA ROZPRAWY DOKTORSKIEJ DLA INSTYTUTU PODSTAW INFORMATYKI POLSKIEJ AKADEMII NAUK

RECENZJA ROZPRAWY DOKTORSKIEJ DLA INSTYTUTU PODSTAW INFORMATYKI POLSKIEJ AKADEMII NAUK dr hab. inż. Paweł Czarnul Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska Gdańsk, 17 lipca 2017 RECENZJA ROZPRAWY DOKTORSKIEJ DLA INSTYTUTU

Bardziej szczegółowo

Budowa Mikrokomputera

Budowa Mikrokomputera Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:

Bardziej szczegółowo

Moc płynąca z kart graficznych

Moc płynąca z kart graficznych Moc płynąca z kart graficznych Cuda za darmo! Czyli programowanie generalnego przeznaczenia na kartach graficznych (GPGPU) 22 października 2013 Paweł Napieracz /20 Poruszane aspekty Przetwarzanie równoległe

Bardziej szczegółowo

Architektura potokowa RISC

Architektura potokowa RISC Architektura potokowa RISC Podział zadania na odrębne części i niezależny sprzęt szeregowe Brak nawrotów" podczas pracy potokowe Przetwarzanie szeregowe i potokowe Podział instrukcji na fazy wykonania

Bardziej szczegółowo

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

Architektury komputerów Architektury i wydajność. Tomasz Dziubich Architektury komputerów Architektury i wydajność Tomasz Dziubich Przetwarzanie potokowe Przetwarzanie sekwencyjne Przetwarzanie potokowe Architektura superpotokowa W przetwarzaniu potokowym podczas niektórych

Bardziej szczegółowo

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

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1 i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:

Bardziej szczegółowo

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

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

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

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1 Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing

Bardziej szczegółowo

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami Politechnika Gdańska Wydział Zarządzania i Ekonomii Katedra Zastosowań Informatyki w Zarządzaniu Zakład Zarządzania Technologiami Informatycznymi Model referencyjny Open Source dla dr hab. inż. Cezary

Bardziej szczegółowo

Historia modeli programowania

Historia modeli programowania Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Programowanie Współbieżne

Programowanie Współbieżne Programowanie Współbieżne Agnieszka Łupińska 5 października 2016 Hello World! helloworld.cu: #include global void helloworld(){ int thid = (blockidx.x * blockdim.x) + threadidx.x; printf("hello

Bardziej szczegółowo

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi: Przetwarzanie równoległe PROJEKT OMP Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego w komputerze równoległym z procesorem wielordzeniowym z pamięcią współdzieloną.

Bardziej szczegółowo

Pojęcie bazy danych. Funkcje i możliwości.

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

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

Wstęp. Przetwarzanie równoległe. Krzysztof Banaś Obliczenia równoległe 1 Wstęp. Przetwarzanie równoległe. Krzysztof Banaś Obliczenia równoległe 1 Historia i pojęcia wstępne Obliczenia równoległe: dwa lub więcej procesów (wątków) jednocześnie współpracuje (komunikując się wzajemnie)

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

Bardziej szczegółowo

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE EFEKTY KSZTAŁCENIA WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA II STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

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

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1 Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej Krzysztof Banaś Obliczenia równoległe 1 Model równoległości danych Model SPMD (pierwotnie dla maszyn SIMD) Zrównoleglenie

Bardziej szczegółowo

Raport Hurtownie Danych

Raport Hurtownie Danych Raport Hurtownie Danych Algorytm Apriori na indeksie bitmapowym oraz OpenCL Mikołaj Dobski, Mateusz Jarus, Piotr Jessa, Jarosław Szymczak Cel projektu: Implementacja algorytmu Apriori oraz jego optymalizacja.

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

16. Taksonomia Flynn'a.

16. Taksonomia Flynn'a. 16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się

Bardziej szczegółowo

Analiza ilościowa w przetwarzaniu równoległym

Analiza ilościowa w przetwarzaniu równoległym Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

PROBLEMATYKA OBLICZEŃ MASOWYCH W NAUKACH O ZIEMI. Satelitarny monitoring środowiska

PROBLEMATYKA OBLICZEŃ MASOWYCH W NAUKACH O ZIEMI. Satelitarny monitoring środowiska Satelitarny monitoring środowiska Dane satelitarne to obecnie bardzo ważne źródło informacji o powierzchni Ziemi i procesach na niej zachodzących. Obliczono, że na początku roku 2014 na orbitach okołoziemskich

Bardziej szczegółowo

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A,B,C są tablicami nxn for (int j = 0 ; j

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

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

Program Obliczeń Wielkich Wyzwań Nauki i Techniki (POWIEW) Program Obliczeń Wielkich Wyzwań Nauki i Techniki (POWIEW) Maciej Cytowski, Maciej Filocha, Maciej E. Marchwiany, Maciej Szpindler Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROGRAMOWANIE WSPÓŁBIEŻNE I ROZPROSZONE I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Uzyskanie przez studentów wiedzy na temat architektur systemów równoległych i rozproszonych,

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

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

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1 Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej Krzysztof Banaś Obliczenia równoległe 1 Model równoległości danych Model SPMD (pierwotnie dla maszyn SIMD) Zrównoleglenie

Bardziej szczegółowo

Technologia informacyjna Algorytm Janusz Uriasz

Technologia informacyjna Algorytm Janusz Uriasz Technologia informacyjna Algorytm Janusz Uriasz Algorytm Algorytm - (łac. algorithmus); ścisły przepis realizacji działań w określonym porządku, system operacji, reguła komponowania operacji, sposób postępowania.

Bardziej szczegółowo