Wybrane metodologie wspierające sprzętową akcelerację obliczeń wielkiej skali
|
|
- Łucja Grzybowska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Akademia Górniczo-Hutnicza w Krakowie Wydział Elektroniki, Informatyki i Telekomunikacji Marcin Pietroń Wybrane metodologie wspierające sprzętową akcelerację obliczeń wielkiej skali Rozprawa doktorska Promotor prof. dr hab. inż. Kazimierz Wiatr Kraków,
2 Spis treści 1. Wstęp Motywacja Cel i teza pracy Organizacja pracy Podziękowania Platformy sprzętowe Platformy sprzętowe i obliczenia równoległe Platformy GP-GPU Układy rekonfigurowalne FPGA Procesory wielordzeniowe i specjalizowane Platformy sprzętowe zastosowane w pracy Platforma RASC Platforma DRC Karty graficzne NVIDIA Tesla m2070 i m Środowiska programowania akceleratorów sprzętowych Środowisko CUDA Języki HLL Język ImpulseC Język MitrionC Operacje zmiennoprzecinkowe oraz funkcje elementarne implementowane 35 w akceleratorach sprzętowych Operacje zmiennoprzecinkowe w układach FPGA i kartach graficznych Funkcje elementarne na przykładzie funkcji eksponenty Metody analizy algorytmów pod kątem wykrywania ich wewnętrznej równoległości Metody analizy ad-hoc Formalne metody analizy algorytmów Zależności w pętlach programowych Metody analityczne wykrywania równoległości
3 6. System profilingu i automatycznej analizy kodu źródłowego Generator grafu przepływu danych Profiler pętli Algorytmy profilowania Profilowanie danych Implementacja wybranych algorytmów analizy danych Algorytmy sortowania Implementacja operacji bazodanowych Algorytmy porównywania i analizy danych Algorytm porównywania tekstowego oparty na haszowaniu Algorytmy tekstowe Obliczanie histogramu Implementacja wybranych algorytmów w akceleratorach sprzętowych Implementacja wybranych algorytmów algebry liniowej Implementacja mnożenia macierzy Implementacja rozwiązywania układów równań liniowych Paraboliczne cząstkowe równania różniczkowe Algorytm N-body Akceleracja sprzętowa Metod Monte Carlo Implementacja algorytmu SVM Podsumowanie Bibliografia
4 1. Wstęp 1.1. Motywacja Od paru lat obserwujemy dynamiczny rozwój mocy obliczeniowej akceleratorów sprzętowych oraz obszar ich stosowania. Pod pojęciem akcelerator sprzętowy mamy głównie na myśli karty graficzne z procesorami GPU oraz układy rekonfigurowalne FPGA. W przypadku kart graficznych ich wykorzystanie przez długi okres czasu ograniczało się jedynie do generowania obrazów i wykonywania na nich odpowiednich algorytmów. Jednak wraz z rozwojem ich mocy obliczeniowej wzrosło zainteresowanie tymi kartami w celu użycia ich do wielu zagadnień naukowych jak i komercyjnych. Od kilku lat trwają intensywne badania nad implementacją w kartach graficznych algorytmów z zakresu wielu dziedzin nauki. Zakres dziedzin praktycznie obejmuje wszystkie możliwe dyscypliny, w których stosuje się obliczenia naukowe. Taką samą tendencję zauważa się w przypadku układów FPGA. Początkowo miały one zastosowanie jedynie w zadaniach wysoko specjalizowanych (szyfrowanie, przetwarzanie obrazów). W momencie pojawienia się platform HPRC (High Performance Computing) stworzonych przez największe firmy z sektora obliczeń wielkiej skali (SGI [43], Nallatech [80]) zaczęto badania nad implementacją na nich wielu algorytmów HPC. Należy zauważyć, że zastosowanie akceleratorów sprzętowych może mieć różne cele i nieść wiele korzyści. Pierwszym ich zastosowaniem jest już wcześniej wspomniane wykorzystanie do zadań wysoko specjalizowanych, gdzie z racji architektury akceleratorów uzyskuje się największe przyspieszenia obliczeń. Kolejnym zastosowaniem jest przyspieszanie tylko wybranych części algorytmów. Przez wybrane części rozumie się tu takie krytyczne i najbardziej obciążające czasowo miejsca algorytmów, które mogą zostać przyspieszone w akceleratorze. Obliczenia w akceleratorach nie muszą być zawsze przyspieszone względem jednostki centralnej (CPU), aby mogły mieć praktyczne zastosowanie. Mogą stanowić dodatkową moc obliczeniową systemu. Wykonanie danego algorytmu w akceleratorze może odciążać procesor główny na wykonanie w tym czasie innego zadania. W przypadku układów FPGA nie tylko szybkość działania algorytmu ma znaczenie lecz także mniejszy pobór mocy od standardowych procesorów jak i także od kart graficznych. Głównym problemem przy wszelkiej próbie implementowania i przyspieszania algorytmów w akceleratorach jest czas transferu danych z jednostki centralnej (CPU) do akceleratora i odesłanie wyników obliczeń z powrotem do procesora. Sukcesywnie z rozwojem technologii 6
5 przepustowość ta wzrasta (magistrala PCI Express). Oprócz transferu rozmiar i szybkość dostępu do pamięci wewnętrznej akceleratora mają duży wpływ na możliwości akceleracji. Rozmiar pamięci ma szczególne znaczenie w algorytmach zorientowanych na dane (m. in. algorytmy z dziedziny data-mining u). Kolejnym ważnym aspektem efektywności obliczeń na danej platformie sprzętowej jest rodzaj reprezentacji danych występujących w danym algorytmie. W większości obliczeń najczęściej wykorzystywanym formatem jest format zmiennoprzecinkowy, zapisywany według standardu IEEE-754. Standard IEEE-754 wiąże się z ograniczeniem precyzji obliczeń i reprezentacji danych tylko do trzech formatów zapisu liczb (single, double, extended double). Powoduje to, że wyniki obliczeń są zaokrąglane. W tym względzie układy programowalne mają pewną przewagę nad procesorami ogólnego przeznaczenia oraz kartami graficznymi, gdyż ich architektura umożliwia programiście na zaprojektowanie takiego układu, który wyniki pośrednie operacji zmiennoprzecinkowych będzie mógł przechowywać bez straty dokładności. Układy FPGA pozwalają na wprowadzenie formatu typu fixed-point o dowolnej szerokości bitowej. Pozostawia to pewną swobodę projektantowi w przypadku projektowania algorytmu w układach FPGA w przeciwieństwie do sztywnej architektury operacji zmiennoprzecinkowych w kartach graficznych i procesorach ogólnego przeznaczenia. Kolejnym ważnym aspektem jest czas implementacji algorytmów w akceleratorach. W przypadku układów FPGA czas implementacji w językach opisu sprzętu takich jak VHDL bądź Verilog jest dość długi w porównaniu z tworzeniem oprogramowania na karty graficzne (środowisko CUDA[19], OpenCL[81]) oraz na procesory ogólnego przeznaczenia. Z tego powodu powstaje wiele języków wysokiego poziomu (HLL High Level Language), które umożliwiają szybkie prototypowanie i implementację algorytmów w układach programowalnych. Środowiska te umożliwiają dokonanie automatycznej konwersji algorytmu zapisanego w języku programowania wysokiego poziomu na odpowiednią reprezentacje logiki algorytmu w kodzie HDL. W przypadku kart graficznych implementację algorytmów możemy wykonywać na niskim poziomie (język PTX odpowiednik asemblera) w celu optymalizacji kodu, bądź używać środowiska wyższego poziomu (CUDA [19] lub OpenCL [81]). Znacznie zwiększa to konkurencję układów FPGA na rynku HPC. Powoduje także, iż projektowanie algorytmów w układach programowalnych jest bardziej dostępne dla naukowców i inżynierów nie specjalizujących się w tej dziedzinie. 7
6 Jednym z najtrudniejszych zagadnień w przypadku akceleracji obliczeń jest odpowiednie profilowanie badanego oprogramowania w celu sprawdzenia newralgicznych miejsc programu, które najbardziej obciążają czasowo system obliczeniowy. Wiele dostępnych narzędzi profilowania [82, 83, 84] nie ma wystarczającej funkcjonalności, aby skutecznie wychwytywać miejsca w oprogramowaniu nadające się do implementacji w akceleratorach sprzętowych. W większości umożliwiają one na monitorowanie czasu wywołania poszczególnych funkcji programu. Poprzez brakującą funkcjonalność mamy przede wszystkim na myśli przepływ danych oraz czas wykonania innych części algorytmu niż tylko poszczególne funkcje. Inną bardzo cenną informacją jest zależność między danymi w najbardziej czasochłonnych częściach algorytmu. Dzięki takiej analizie możemy wykrywać potencjalną równoległość w kodzie źródłowym. Ekstrakcja równoległości jest niezwykle przydatna w implementacji algorytmów w akceleratorach ze względu na ich wewnętrzną architekturę. Pozwala to na optymalne ich wykorzystanie. Zależność między danymi nie tylko pozwala wykryć równoległość kodu ale pozwala ocenić także czy dany algorytm jest podatny na implementację potokową, co jest niezwykle istotne w przypadku układów FPGA. Kolejną niezwykle ważną informacją jest ilość danych potrzebnych do wykonania wybranego fragmentu programu. Pozwala ona oszacować transfer danych pod kątem wybranej platformy sprzętowej oraz ocenić możliwości wykonania algorytmu w danym akceleratorze ze względu na jego pamięć wewnętrzną. Analiza algorytmów może odbywać się na dwa sposoby. Pierwszy z nich to metody formalnej analizy algorytmu wykrywające potencjalną równoległość i obliczające wymaganą sekwencję operacji aby zachować poprawność algorytmu. Drugi sposób to automatyczna analiza kodu źródłowego. Ten sposób jest dużym wyzwaniem naukowym. Trudność tego podejścia wynika przede wszystkim z automatycznego wykrywania równoległości w kodzie oraz odpowiedniej analizie danych. Analiza taka wspomaga odpowiednie zaprojektowanie efektywnego algorytmu w akceleratorze sprzętowym. Kluczowe wydaje się w tej sytuacji odpowiednie wyprofilowanie aplikacji. Przede wszystkim pętle programowe są najistotniejszymi elementami, które powinny być poddane szczegółowej analizie. Wynika to z tego, iż są to części aplikacji, które pochłaniają najwięcej czasu wykonania całego programu. Co więcej są one elementami kodu źródłowego, który posiada cechy równoległości. W związku z tym wszelkie algorytmy i narzędzia do wykrywania równoległości w kodzie sekwencyjnym skupiają się na analizie pętli programowych. Profilowanie i analiza programu pod kątem wykrycia w nim równoległych sekcji pozwala nie tylko na efektywniejsze zaprogramowanie 8
7 akceleratora sprzętowego ale także jest niezbędnym elementem do zbudowania narzędzia, które wspomagałoby automatyczną generację kodu źródłowego dla wybranego akceleratora sprzętowego. Jest to zadanie o wysokiej skali trudności i wymaga jeszcze wielu badań, aby taki automatyczny generator działał wystarczająco efektywnie. Jednak należy zauważyć, że odpowiednie profilowanie wydaje się tutaj niezbędnym narzędziem, które wspomaga i dostarcza niezbędne informacje potrzebne do wygenerowania odpowiedniego kodu źródłowego Cel i teza pracy Od wielu lat trwają badania nad zrównoleglaniem algorytmów na platformy wieloprocesorowe. Od kilku lat na rynku pojawiły się dodatkowo procesory wielordzeniowe umożliwiające zrównoleglanie i akcelerację obliczeń wewnątrz jednego układu scalonego. Z tego też powodu prowadzone były badania nad analizą sekwencyjnych programów w celu ich równoległej implementacji [85, 86, 87, 88]. Badania te głównie koncentrują się na zależnościach między danymi w celu wykrywania równoległości. Jednak wiele z tych metod to metody czysto formalne, trudne w implementacji. Ponadto brakuje nadal narzędzi profilujących aplikacje sekwencyjne pod kątem ich zrównoleglenia. Akceleratory sprzętowe pojawiły się na rynku HPC kilka lat temu. Od tego czasu wiele algorytmów zostało w nich zaimplementowanych. Dodatkowo powstaje wiele narzędzi wspomagających szybkie przenoszenie wybranych części aplikacji do akceleratorów sprzętowych. Jednak na rynku HPC odczuwa się brak narzędzi zapewniających odpowiedni profiling aplikacji sekwencyjnych w celu znalezienia odpowiednich elementów do implementacji w akceleratorach. Celem pracy jest pokazanie skutecznych i efektywnych metod przyspieszania obliczeń w akceleratorach sprzętowych. Praca przedstawia możliwości tych akceleratorów włącznie z efektywnymi narzędziami, które wspomagają implementację algorytmów. Zawarte w niej są implementacje wybranych algorytmów z kilku dziedzin oraz przedstawione są porównania efektywności ich działań w akceleratorach sprzętowych. Praca pokazuje metody, którymi można analizować i badać oprogramowanie w celu wychwycenia tych części aplikacji, które nadają się do implementacji w danym akceleratorze. 9
8 W wyniku powyższych założeń sformułowano następującą tezę: Akceleratory sprzętowe umożliwiają efektywną implementację wielu algorytmów numerycznych i analizy danych. Wspomaganie implementacji poprzedzone odpowiednim profilowaniem znacznie ułatwia projektowanie efektywnych algorytmów przy pomocy narzędzi i języków wysokiego poziomu Organizacja pracy Niniejszą pracę podzielono na 8 rozdziałów poświęconych zagadnieniom implementacji algorytmów w akceleratorach sprzętowych, problematyce operacji zmienno-przecinkowych i funkcji elementarnych, efektywności narzędzi wysokopoziomowych oraz profilowaniu i analizie aplikacji pod kątem ich implementacji w akceleratorach sprzętowych. Rozdział 1: Wstęp, stanowi wprowadzenie do poruszanej w pracy tematyki. Rozdział zawiera tezę pracy i jej główny cel. Poruszone są w nim informacje na temat przyczyny podjętego tematu. Rozdział 2: Platformy sprzętowe, przedstawia architekturę współczesnych akceleratorów sprzętowych. Opisuje elementy funkcjonalne kart graficznych oraz charakterystykę kart użytych w pracy (rodzina kart Tesla [30]). Ponadto przedstawione są platformy z układami FPGA, na których prowadzone były badania (platforma RASC [47] oraz DRC [42]). Rozdział 3: Środowiska programowania akceleratorów sprzętowych, zawiera opis narzędzi wysokopoziomowych, które zostały użyte do realizacji pracy. W przypadku układów FPGA są to języki ImpulseC [79] oraz MitrionC [41]. Języki te zostały zaprezentowane w celu porównania możliwości języków wysokiego poziomu. Rozdział podkreśla najważniejsze elementy i mechanizmy języków wysokiego poziomu umożliwiające efektywną implementację algorytmów. Implementacja algorytmów na kartach graficznych została wykonana w środowisku CUDA [153]. W rozdziale przedstawione są jej najważniejsze cechy zapewniające realizację równoległych obliczeń. Rozdział 4: Operacje zmiennoprzecinkowe i funkcje elementarne, opisuje format zmiennoprzecinkowy oraz funkcje elementarne i ich realizacje w układach FPGA oraz GPU. Przede wszystkim pokazana jest efektywność operacji zmiennoprzecinkowych w obu przypadkach 10
9 oraz realizacja funkcji elementarnych, które są niezbędne w przypadku implementacji wielu algorytmów. Rozdział 5: Metody analizy algorytmów pod kątem wykrywania ich wewnętrznej równoległości, zawiera opis analitycznych i formalnych metod ekstrakcji równoległości w kodzie sekwencyjnym, które mogą być użyte w celu wykrycia algorytmów oraz ich części, które mogą być efektywnie zaimplementowane w akceleratorze sprzętowym. Rozdział 6: System profilingu i automatycznej analizy kodu źródłowego, jest poświęcony metodologii profilowania aplikacji w celu wykrycia miejsc podatnych na przyspieszenie w akceleratorach sprzętowych. Ponadto przedstawione są w nim sposoby analizy instrumentacji kodu źródłowego w celu profilowania danych oraz oceny równoległości algorytmów. Rozdział 7: Implementacja wybranych algorytmów analizy danych, przedstawia implementacje algorytmów data-mining u. Rozdział zaczyna się od przedstawienia realizacji operacji sortowania, jako jednego z najczęstszych algorytmów występujących w algorytmach zorientowanych na dane. Następnie przedstawione są implementacje operacji bazodanowych w akceleratorach sprzętowych oraz wybrane algorytmy analizy podobieństwa dokumentów oraz popularne algorytmy tekstowe i obliczanie histogramu. Rozdział 8: Implementacja wybranych algorytmów w akceleratorach sprzętowych, prezentuje implementacje najpopularniejszych algorytmów numerycznych oraz ich wyniki uzyskane na kilku platformach sprzętowych. Przedstawione są tu algorytmy algebry liniowej, symulacja N-body, wybrana metoda Monte-Carlo, cząstkowe równania różniczkowe oraz klasyfikator SVM. Rozdział 9: Podsumowanie to rozdział zawierający wnioski, uwagi końcowe oraz dalsze kierunki badań Podziękowania Praca ta powstała dzięki zaangażowaniu oraz wsparciu Pana Profesora Kazimierza Wiatra. Dlatego chciałbym serdecznie podziękować Panu Profesorowi za cenne uwagi, które pozwoliły nadać tej pracy obecny kształt. 11
10 9. Podsumowanie Celem prac badawczych przedstawionych w niniejszej rozprawie było opracowanie metod profilingu i analizy algorytmów pod kątem ich implementacji w akceleratorach sprzętowych oraz implementacja wybranych algorytmów, pokazująca skuteczność opracowanych metod oraz możliwości sprzętowe akceleratorów. Ponadto w pracy zbadano możliwości narzędzi wysokopoziomowego programowania akceleratorów sprzętowych w implementacji wielu algorytmów numerycznych oraz analizy danych. Karty graficzne, tak samo jak układy programowalne, oferują równoległe architektury obliczeniowe. W przypadku kart graficznych równoległość obliczeń oparta jest o architekturę typu SIMD [150], natomiast układy programowalne z racji swojej rekonfigurowalności umożliwiają realizację architektury potokowej lub w pełni równoległej (typu unroll). W przypadku algorytmów numerycznych duży wpływ na efektywność implementowanych algorytmów ma wydajność operacji zmiennoprzecinkowych. Parametry sprzętowe oraz badania pokazują, że karty graficzne mają lepszą wydajność szczytową jeśli chodzi o liczbę wykonywanych instrukcji zmiennoprzecinkowych w jednostce czasu niż układy FPGA. Jednak układy FPGA są bardzo wydajne w obliczeniach opartych na stałym przecinku. Znając wymaganą dokładność obliczeń dla danego algorytmu, można z powodzeniem stosować ten format w przypadku implementacji w układach FPGA. Pokazane w pracy narzędzia wysokiego poziomu programowania układów programowalnych umożliwiają zastosowania formatu stałoprzecinkowego poprzez udostępnione specjalnie do tego celu makra. Dzięki ich stosowaniu układy programowalne stają się bardziej konkurencyjne w realizacji algorytmów numerycznych. Kolejnym ważnym aspektem projektowania algorytmów w akceleratorach sprzętowych są funkcje elementarne. W pracy pokazano ten problem na przykładzie często występującej w obliczeniach HPC funkcji eksponenty. Układy FPGA nie posiadają wbudowanych funkcji elementarnych jak inne jednostki obliczeniowe. Z tego powodu projektant musi korzystać z gotowych modułów, które zawierają implementacje funkcji elementarnych lub dokonać własnej implementacji. Języki wysokiego poziomu HLL, także nie posiadają gotowych bibliotek z funkcjami elementarnymi. Wymaga to dołączania gotowych modułów lub projektowania własnych bibliotek. W pracy zostało pokazane na przykładzie implementacji funkcji eksponenty, że możliwa jest efektywna realizacja funkcji elementarnych w układach FPGA. Jednak stosowanie jej w algorytmach powoduje dość znaczną zajętość zasobów 140
11 układu i ograniczone możliwości zrównoleglenia danego algorytmu. Na przykładzie prostego klasyfikatora SVM zostało pokazane jak zajętość ta zmniejsza efektywność implementacji algorytmu w układach FPGA na rzecz kart graficznych, gdzie funkcje elementarne są wbudowane w architekturę całej platformy sprzętowej. Wykonana w pracy implementacja algorytmów za pomocą języków wysokiego poziomu pokazuje, że możliwe jest szybkie prototypowanie i realizacja algorytmów w układach FPGA. W pracy opracowano metody analizy algorytmów sekwencyjnych w celu ich implementacji na platformach równoległych oraz przedstawiono ich wady i zalety na przykładzie analizy wybranych algorytmów. Głównymi metodami analizy algorytmów jest odpowiednie profilowanie aplikacji oraz analiza zależności między danymi i instrukcjami. W przypadku profilowania aplikacji większość dostępnych narzędzi profilowania generuje zbyt mało informacji niezbędnych do oceny możliwości efektywnej implementacji danego algorytmu w akceleratorze sprzętowym. Z tego powodu w pracy zaprezentowano autorski prototyp narzędzia profilującego algorytmy. Jego głównymi elementami jest moduł profilowania pętli programowych jako części algorytmów, które zajmują największą część całkowitego czasu wykonania programów. Moduł ten wydobywa informacje dotyczące czasu wykonania pętli, ilości wykonanych iteracji oraz zagnieżdżeń między pętlami. Oprócz informacji o czasie wykonania pętli niezbędne są także informacje o ich strukturze, zależnościach miedzy poszczególnymi instrukcjami oraz rozmiar danych potrzebnych do realizacji wybranych fragmentów algorytmów. Z tego powodu zostały opracowane kolejne etapy analizy kodu, które wspomagają ekstrakcje tych części aplikacji, które mogą być efektywnie zrealizowane w danym akceleratorze sprzętowym. Metody analizy struktury algorytmów można podzielić na metody formalne oraz metody oparte na bezpośredniej analizie kodu źródłowego, polegające na automatycznej instrumentacji kodu źródłowego oraz generowaniu grafów DFG w celu analizy zależności między danymi. Obie metody mają swoje wady i zalety. Pokazane zostały one w pracy na przykładach implementacji wielu algorytmów. Metody formalne są trudne do zautomatyzowania oraz nie łatwo jest je zastosować do skomplikowanych algorytmów. Natomiast metody oparte na instrumentacji kodu są zależne od badanej struktury kodu. Instrumentacja wspomaga analizę napisanego kodu źródłowego. Natomiast nie bada różnych wariantów wykonania tego samego algorytmu. Odpowiednie przekształcenia kodu źródłowego często mogą rzutować na inne, równoległe wykonanie algorytmu, a co za tym idzie powoduje to efektywniejsze wykonanie kodu na danej platformie sprzętowej. Zastosowanie obu metod analizy algorytmów jest optymalnym rozwiązaniem. Pozwala to na 141
12 wykrycie maksymalnej ilości sposobów zrównoleglenia danego algorytmu. Ponadto jak zostało pokazane w pracy oba rodzaje metod znakomicie się uzupełniają. Metody formalne dobrze sprawdzają się w prostszych algorytmach, w których łatwo można formalnie opisać zależności między danymi, umożliwiając wygenerowanie najlepszych wersji zrównoleglanego kodu. Natomiast metody oparte na instrumentacji najlepiej sprawdzają się w analizie skomplikowanych algorytmów. Należy dodać, że niezwykle istotną zaletą metod opartych na instrumentacji jest monitorowanie ilości danych używanych przez wskazane sekcje algorytmu, co ułatwia efektywniejsze wykorzystanie wewnętrznej hierarchii pamięci, które posiadają akceleratory sprzętowe. Metody te dodatkowo generują drzewa składniowe badanych algorytmów (ang. Abstract Syntax Tree), co wspomaga analizę operacji używanych w algorytmie (możliwość oszacowania szczytowej wydajności, która może być osiągnięta na wybranej platformie sprzętowej) oraz ułatwia sprowadzenie algorytmu do postaci pojedynczego przypisania (ang. Single Assignment Form) dzięki której można oszacować liczbę cykli zegarowych potrzebnych na wykonanie algorytmu w układzie programowalnym. Zaprezentowane metody wspomagają adaptację algorytmów i ich przyspieszanie w akceleratorach graficznych jednak nie są w stanie zapewnić ich optymalnej realizacji. Poprzez optymalną realizację należy rozumieć takie aspekty projektowania algorytmu jak np. optymalny dostęp do pamięci (np. używanie pamięci łączonej - coalesced memory, unikanie konfliktów pamięci bank conflicts), optymalny rozdział przetwarzanych danych pomiędzy wątkami lub optymalne wykorzystanie szybkich pamięci w danym akceleratorze sprzętowym. Proces profilowania i przedstawiona analiza pozwala na sprawdzenie podatności algorytmów na przyspieszenie, natomiast wyżej wymienione problemy powinny być brane pod uwagę przez projektanta w celu optymalnej implementacji. Do najważniejszych oryginalnych rozwiązań autora zaprezentowanych w tej pracy, należy zaliczyć: opracowanie koncepcji oraz prototypu systemu kompleksowego profilowania aplikacji, opracowanie metody profilingu danych, opracowanie algorytmów analizy pętli programowych oraz algorytmów wykrywania równoległości, opracowanie metod instrumentacji kodu w celu uzyskania informacji niezbędnych do realizacji algorytmów w akceleratorach sprzętowych, 142
13 porównanie możliwości układów FPGA i kart graficznych na podstawie implementacji w nich wybranych algorytmów, opracowanie sposobów wykorzystania informacji uzyskanych w trakcie profilowania do implementacji algorytmów w akceleratorach sprzętowych, implementacja różnorodnych algorytmów w akceleratorach sprzętowych, w celu pokazania ich możliwości w przyspieszaniu aplikacji względem standardowych jednostek CPU. Wyniki przedstawione w pracy upoważniają do stwierdzenia, że postawiona teza: Akceleratory sprzętowe umożliwiają efektywną implementację wielu algorytmów numerycznych i analizy danych. Wspomaganie implementacji poprzedzone odpowiednim profilowaniem znacznie ułatwia zaprojektowanie efektywnych algorytmów przy pomocy narzędzi i języków wysokiego poziomu. została udowodniona. Implementacje wybranych algorytmów zaprezentowanych w pracy pokazują, że akceleratory sprzętowe znakomicie nadają się do efektywnej implementacji wielu algorytmów numerycznych oraz analizy danych. Należy zwrócić uwagę, iż określona grupa algorytmów jest podatna na przyspieszenie w akceleratorach sprzętowych względem standardowych jednostek CPU. Przede wszystkim dotyczy to algorytmów, które posiadają wewnętrzną równoległość. Najczęstszym miejscem potencjalnej równoległości są pętle programowe. Z tego powodu metody profilingu i analizy algorytmów przedstawione w pracy koncentrują się na analizie tych części kodu źródłowego. Implementacje wybranych algorytmów poprzedzone przedstawionymi w pracy analizami pokazują skuteczność i przydatność opracowanych metod. Przedstawiona automatyczna analiza kodu źródłowego może stać się przyczynkiem do budowy narzędzi przekształcających sekwencyjny kod na gotowy kod w wybranym języku wysokiego poziomu w celu jego implementacji w wybranym akceleratorze sprzętowym. Rosnąca wydajność i popularność akceleratorów sprzętowych powoduje, iż narzędzia automatycznej generacji kodu na te platformy sprzętowe mogą wspomagać proces projektowania i implementacji algorytmów. Szczególnie przydatne może to być w przypadku słabej znajomości architektury platformy oraz języka programowania służącego do implementacji. 143
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ół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ółowoWiększe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego
Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego Dziś bardziej niż kiedykolwiek narzędzia używane przez
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ółowoi3: 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ółowoEfekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.
Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-
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ół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ółowoSystemy na Chipie. Robert Czerwiński
Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki
Bardziej szczegółowoSprzętowo wspomagane metody klasyfikacji danych
Sprzętowo wspomagane metody klasyfikacji danych Jakub Botwicz Politechnika Warszawska, Instytut Telekomunikacji Plan prezentacji 1. Motywacje oraz cele 2. Problemy klasyfikacji danych 3. Weryfikacja integralności
Bardziej szczegółowoEfekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA
Symbol Efekty kształcenia dla kierunku studiów INFORMATYKA, specjalność: 1) Sieciowe systemy informatyczne. 2) Bazy danych Absolwent studiów I stopnia kierunku Informatyka WIEDZA Ma wiedzę z matematyki
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ół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ół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ół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ółowoPOLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Opiekun naukowy: dr
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ółowoEFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW
EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW WYDZIAŁ KIERUNEK z obszaru nauk POZIOM KSZTAŁCENIA FORMA STUDIÓW PROFIL JĘZYK STUDIÓW Podstawowych Problemów Techniki Informatyka technicznych 6 poziom, studia inżynierskie
Bardziej szczegółowoPodsumowanie wyników ankiety
SPRAWOZDANIE Kierunkowego Zespołu ds. Programów Kształcenia dla kierunku Informatyka dotyczące ankiet samooceny osiągnięcia przez absolwentów kierunkowych efektów kształcenia po ukończeniu studiów w roku
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ółowoKatedra Mikroelektroniki i Technik Informatycznych
Katedra Mikroelektroniki i Technik Informatycznych Bloki obieralne na kierunku Mechatronika rok akademicki 2013/2014 ul. Wólczańska 221/223, budynek B18 www.dmcs.p.lodz.pl Nowa siedziba Katedry 2005 2006
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ółowoOdniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol
KIERUNKOWE EFEKTY KSZTAŁCENIA Wydział Informatyki i Zarządzania Kierunek studiów INFORMATYKA (INF) Stopień studiów - pierwszy Profil studiów - ogólnoakademicki Projekt v1.0 z 18.02.2015 Odniesienie do
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 z wykorzystaniem technologii CUDA i OpenCL Wykład 1
Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1 Organizacja przedmiotu Dr inż. Robert Banasiak Dr inż. Paweł Kapusta 1 2 Nasze kompetencje R n D Tomografia 3D To nie tylko statyczny obraz!
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ółowoPaństwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu
Załącznik nr 1 do Uchwały nr 9/12 Rady Instytutu Inżynierii Technicznej PWSTE w Jarosławiu z dnia 30 marca 2012r Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu EFEKTY KSZTAŁCENIA DLA KIERUNKU
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ół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ół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ółowoMETODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH
METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH Arkadiusz Bukowiec mgr inż. Agnieszka Węgrzyn Instytut Informatyki i Elektroniki, Uniwersytet
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Jednostki obliczeniowe w zastosowaniach mechatronicznych Kierunek: Mechatronika Rodzaj przedmiotu: dla specjalności Systemy Sterowania Rodzaj zajęć: Wykład, laboratorium Computational
Bardziej szczegółowoPAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE Efekty uczenia się Kierunek Informatyka Studia pierwszego stopnia Profil praktyczny Umiejscowienie kierunku informatyka w obszarze kształcenia: Obszar wiedzy: nauki
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ółowoEFEKTY UCZENIA SIĘ DLA KIERUNKU INŻYNIERIA DANYCH W ODNIESIENIU DO EFEKTÓW UCZENIA SIĘ PRK POZIOM 6
EFEKTY UCZENIA SIĘ DLA KIERUNKU INŻYNIERIA DANYCH W ODNIESIENIU DO EFEKTÓW UCZENIA SIĘ PRK POZIOM 6 studia pierwszego stopnia o profilu ogólnoakademickim Symbol K_W01 Po ukończeniu studiów pierwszego stopnia
Bardziej szczegółowoOpinia o pracy doktorskiej pt. Damage Identification in Electrical Network for Structural Health Monitoring autorstwa mgr inż.
Prof. dr hab. inż. Tadeusz Uhl Katedra Robotyki i Mechatroniki Akademia Górniczo Hutnicza Al. Mickiewicza 30 30-059 Kraków Kraków 26.05.2011 Opinia o pracy doktorskiej pt. Damage Identification in Electrical
Bardziej szczegółowoPodstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
Bardziej szczegółowoKIERUNKOWE EFEKTY KSZTAŁCENIA
WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA I STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina
Bardziej szczegółowoMechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych
Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie
Bardziej szczegółowoSzybkie prototypowanie w projektowaniu mechatronicznym
Szybkie prototypowanie w projektowaniu mechatronicznym Systemy wbudowane (Embedded Systems) Systemy wbudowane (ang. Embedded Systems) są to dedykowane architektury komputerowe, które są integralną częścią
Bardziej szczegółowoAdam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.
Adam Korzeniewski - adamkorz@sound.eti.pg.gda.pl, p. 732 dr inż. Grzegorz Szwoch - greg@sound.eti.pg.gda.pl, p. 732 dr inż. Piotr Odya - piotrod@sound.eti.pg.gda.pl, p. 730 Plan przedmiotu ZPS Cele nauczania
Bardziej szczegółowoOpinia o pracy doktorskiej pt. On active disturbance rejection in robotic motion control autorstwa mgr inż. Rafała Madońskiego
Prof. dr hab. inż. Tadeusz Uhl Katedra Robotyki i Mechatroniki Akademia Górniczo Hutnicza Al. Mickiewicza 30 30-059 Kraków Kraków 09.06.2016 Opinia o pracy doktorskiej pt. On active disturbance rejection
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ół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ółowoDodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.
Spis Treści 1. Wprowadzenie... 2 1.1 Wstęp... 2 1.2 Cel pracy... 2 1.3 Zakres pracy... 2 1.4 Użyte technologie... 2 1.4.1 Unity 3D... 3 2. Sztuczna inteligencja w grach komputerowych... 4 2.1 Zadanie sztucznej
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ół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ółowoKIERUNKOWE EFEKTY KSZTAŁCENIA
WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA I STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina
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ół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ółowoProgramowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Bardziej szczegółowoPodstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu
Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu Informacje ogólne Nazwa przedmiotu Podstawy techniki cyfrowej i mikroprocesorowej Kod przedmiotu 06.5-WE-AiRP-PTCiM Wydział Kierunek Wydział
Bardziej szczegółowoUSŁUGI HIGH PERFORMANCE COMPUTING (HPC) DLA FIRM. Juliusz Pukacki,PCSS
USŁUGI HIGH PERFORMANCE COMPUTING (HPC) DLA FIRM Juliusz Pukacki,PCSS Co to jest HPC (High Preformance Computing)? Agregowanie dużych zasobów obliczeniowych w sposób umożliwiający wykonywanie obliczeń
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ółowoProjektowanie systemów za pomocą języków wysokiego poziomu ESL
Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział IET Katedra Elektroniki Projektowanie systemów za pomocą języków wysokiego poziomu ESL Ćwiczenie 2 Implementacja funkcji Hash z użyciem
Bardziej szczegółowoKod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.
Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop. 2017 Spis treści Wstęp 15 Podziękowania 23 Listy kontrolne 25 Tabele 27 Rysunki 29 Część I Proces budowy oprogramowania
Bardziej szczegółowoMikroprocesory rodziny INTEL 80x86
Mikroprocesory rodziny INTEL 80x86 Podstawowe wła ciwo ci procesora PENTIUM Rodzina procesorów INTEL 80x86 obejmuje mikroprocesory Intel 8086, 8088, 80286, 80386, 80486 oraz mikroprocesory PENTIUM. Wprowadzając
Bardziej szczegółowoOpracował: Jan Front
Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny
Bardziej szczegółowoKryptografia na procesorach wielordzeniowych
Kryptografia na procesorach wielordzeniowych Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Kryptografia na procesorach wielordzeniowych p. 1 Plan prezentacji
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoArchitektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski
Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski rogawskim@prokom.pl Plan referatu: Budowa akceleratora kryptograficznego; Struktura programowalna element fizyczny;
Bardziej szczegółowoOdniesienie symbol II/III [1] [2] [3] [4] [5] Efekt kształcenia. Wiedza
Efekty dla studiów drugiego stopnia profil ogólnoakademicki na kierunku Inżynieria i Analiza Danych prowadzonym przez Wydział Matematyki i Nauk Informacyjnych Użyte w poniższej tabeli: 1) w kolumnie 4
Bardziej szczegółowoZapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Bardziej szczegółowoCo to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?
ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest
Bardziej szczegółowoProjektowanie. Projektowanie mikroprocesorów
WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna
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ółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 5 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie
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ół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ółowoINŻYNIERIA OPROGRAMOWANIA
INSTYTUT INFORMATYKI STOSOWANEJ 2014 Nowy blok obieralny! Testowanie i zapewnianie jakości oprogramowania INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoUCHWAŁA NR 46/2013. Senatu Akademii Marynarki Wojennej im. Bohaterów Westerplatte z dnia 19 września 2013 roku
UCHWAŁA NR 46/2013 Senatu Akademii Marynarki Wojennej im. Bohaterów Westerplatte z dnia 19 września 2013 roku w sprawie: korekty efektów kształcenia dla kierunku informatyka Na podstawie ustawy z dnia
Bardziej szczegółowoDyrektor ACK Cyfronet AGH. z dnia 2 października 2017 roku w sprawie zmian organizacyjnych
ACK DN 021 1 18/17 Zarządzenie nr 18/2017 Dyrektora ACK Cyfronet AGH z dnia 2 października 2017 roku w sprawie zmian organizacyjnych Na podstawie 6 ust. 1, 10 ust. 1 oraz 28 ust. 3 Regulaminu Organizacyjnego
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ółowoKARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3
KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:
Bardziej szczegółowoEFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW NAUCZANIE MATEMATYKI I INFORMATYKI
EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW NAUCZANIE MATEMATYKI I INFORMATYKI poziom kształcenia profil kształcenia tytuł zawodowy uzyskiwany przez absolwenta studia drugiego stopnia ogólnoakademicki magister
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ółowoTask Parallel Library
Task Parallel Library Daan Leijen, Wolfram Schulte, and Sebastian Burckhardt prezentacja Michał Albrycht Agenda O potrzebie zrównoleglania Przykłady użycia TPL Tasks and Replicable Tasks Rozdzielanie zadań
Bardziej szczegółowo1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami
EFEKTY KSZTAŁCENIA 1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami Kierunkowy efekt kształcenia - symbol K_W01 K_W02 K_W03 K_W04 K_W05 K_W06 K_W07 K_W08 Kierunkowy efekt
Bardziej szczegółowoGrzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat
Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych
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ółowoWydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Wydajność programów sekwencyjnych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci i przetwarzania
Bardziej szczegółowoKARTA PRZEDMIOTU. Algorytmy i struktury danych, C4
KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:
Bardziej szczegółowoSpis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII
Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII
Bardziej szczegółowoZaawansowane technologie w nowoczesnych układach sterowania
Zaawansowane technologie w nowoczesnych układach sterowania Leszek A. Szałek Cito Systems, Inc. 3940 Freedom Circle, Santa Clara, CA 95054, USA leszeks@citosys.com 1. Wstęp Postępujący rozwój technologii
Bardziej szczegółowoInformatyka, studia I stopnia (profil ogólnoakademicki) - wersja
Informatyka, studia I stopnia (profil ogólnoakademicki) - wersja 120327 Obszar kształcenia: nauki techniczne. Dziedzina: nauki techniczne. Dyscyplina: Informatyka. MNiSW WI PP Symb. Efekty kształcenia
Bardziej szczegółowoElektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara
Elektronika cyfrowa i mikroprocesory Dr inż. Aleksander Cianciara Sprawy organizacyjne Warunki zaliczenia Lista obecności Kolokwium końcowe Ocena końcowa Konsultacje Poniedziałek 6:-7: Kontakt Budynek
Bardziej szczegółowoPROGRAM KSZTAŁCENIA dla kierunku automatyka i robotyka studiów pierwszego stopnia o profilu ogólnoakademickim
PROGRAM KSZTAŁCENIA dla kierunku automatyka i robotyka studiów pierwszego stopnia o profilu ogólnoakademickim Program kształcenia dla określonego kierunku, poziomu studiów i profilu kształcenia obejmuje
Bardziej szczegółowoZakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki
Jednostka prowadząca kierunek studiów Nazwa kierunku studiów Specjalności Obszar kształcenia Profil kształcenia Poziom kształcenia Forma kształcenia Tytuł zawodowy uzyskiwany przez absolwenta Dziedziny
Bardziej szczegółowoZagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ
(ARK) Komputerowe sieci sterowania 1.Badania symulacyjne modeli obiektów 2.Pomiary i akwizycja danych pomiarowych 3.Protokoły transmisji danych w systemach automatyki 4.Regulator PID struktury, parametry,
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ółowoEfekt kształcenia. Wiedza
Efekty dla studiów drugiego stopnia profil ogólnoakademicki na kierunku Informatyka na specjalności Przetwarzanie i analiza danych, na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie oznacza
Bardziej szczegółowoEFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA
EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA poziom kształcenia profil kształcenia tytuł zawodowy uzyskiwany przez absolwenta studia drugiego stopnia ogólnoakademicki magister inżynier 1. Umiejscowienie
Bardziej szczegółowoWykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall
Grzegorz Sułkowski, Maciej Twardy, Kazimierz Wiatr Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall Plan prezentacji 1. Architektura Firewall a załoŝenia 2. Punktu
Bardziej szczegółowozna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych
Grupa efektów kierunkowych: Matematyka stosowana I stopnia - profil praktyczny (od 17 października 2014) Matematyka Stosowana I stopień spec. Matematyka nowoczesnych technologii stacjonarne 2015/2016Z
Bardziej szczegółowoZaawansowane programowanie w języku C++
Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów
Bardziej szczegółowo[1] [2] [3] [4] [5] [6] Wiedza
3) Efekty dla studiów drugiego stopnia - profil ogólnoakademicki na kierunku Informatyka w języku angielskim (Computer Science) na specjalności Sztuczna inteligencja (Artificial Intelligence) na Wydziale
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Bardziej szczegółowoEfekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka
Efekty kształcenia wymagane do podjęcia studiów 2 stopnia na kierunku Informatyka Test kwalifikacyjny obejmuje weryfikację efektów kształcenia oznaczonych kolorem szarym, efektów: K_W4 (!), K_W11-12, K_W15-16,
Bardziej szczegółowo