Spis treści. 1 Dane osobowe 2. 2 Posiadane dyplomy i stopnie naukowe 2. 3 Informacje o dotychczasowym zatrudnieniu w jednostkach naukowych 2
|
|
- Emilia Mucha
- 5 lat temu
- Przeglądów:
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 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ółowoRECENZJA 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ółowoWykorzystanie 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ółowoObliczenia 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ółowoAlgorytmy 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ółowoPrzygotowanie 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ółowoPROGRAMOWANIE 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ółowoPROGRAMOWANIE 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ółowoRó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ółowoProcesory 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ółowoNumeryczna 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ółowoProcesory 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ółowoNowoczesne 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ółowoProgramowanie 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ółowoSkalowalność 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ółowoTworzenie 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ółowoWysokowydajna 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ółowoProjektowanie 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ółowoPoró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ółowoProgramowanie 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ółowoTworzenie 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ółowoTworzenie 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ółowoZadania 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ółowoProgramowanie 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ółowoObliczenia 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ółowoArchitektura 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ółowoRECENZJA 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ółowoOPTYMALIZACJA 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ółowoObliczenia 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ółowoTworzenie 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ółowoLiteratura. 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ółowo10/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ółowoTesla. 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ółowoProgramowanie 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ółowoCUDA 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ółowoPrzetwarzanie 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ółowoWydajność 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ółowoDr 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ółowoINŻ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ółowoStronicowanie 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ółowoProgramowanie 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ółowoTeraz 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ółowo1 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ółowoAlgorytmy 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ółowoBudowa 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ółowoParametry 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ółowoProgramowanie 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ółowoSprzę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ółowoDostę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ółowoRDZEŃ 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ółowoEnergooszczę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ółowoWydajność 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ółowoAnaliza 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ółowoZapoznanie 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ółowoSystemy 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ółowoAnaliza 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ółowoMetody 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ółowoRECENZJA 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ółowoBudowa 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ółowoWydajność 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ółowoMoc 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ółowoArchitektura 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ółowoArchitektury 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ółowoSprzę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ółowoPodstawy 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ółowoSystemy 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ółowoBudowa 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ółowoLiteratura. 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ółowoModel 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ółowoHistoria 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ółowoTransformacja 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ółowoZMODYFIKOWANY 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ółowoProgramowanie 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ółowoPrzykł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ółowoPoję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ółowoWstę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ółowoWydajność 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ółowoModelowanie 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ółowoSCENARIUSZ 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ółowoKIERUNKOWE 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ółowoZarzą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ółowoProgramowanie 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ółowoRaport 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ółowoTEORETYCZNE 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ółowo16. 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ółowoAnaliza 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ółowoXQTav - 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ółowoPROBLEMATYKA 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ółowoANALIZA 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ółowoTechnologie 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ółowokoniec 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ółowoDefinicje. 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ółowoWykł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ółowoProgram 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ółowoPRZEWODNIK 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ółowoAlgorytmy 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ółowoBudowa 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ółowoProgramowanie 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ółowoTechnologia 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