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

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wię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 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ółowo

Metody optymalizacji soft-procesorów NIOS

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

Bardziej szczegółowo

i3: internet - infrastruktury - innowacje

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

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt 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ółowo

Zadania badawcze prowadzone przez Zakład Technik Programowania:

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

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA

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

Bardziej szczegółowo

Systemy na Chipie. Robert Czerwiński

Systemy 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ółowo

Sprzętowo wspomagane metody klasyfikacji danych

Sprzę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ółowo

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Efekty 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ółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Numeryczna algebra liniowa

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

Bardziej szczegółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności oraz łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk

Bardziej szczegółowo

POLITECHNIKA 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 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ółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk

Bardziej szczegółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

EFEKTY 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ółowo

Podsumowanie wyników ankiety

Podsumowanie 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ółowo

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

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

Bardziej szczegółowo

Katedra Mikroelektroniki i Technik Informatycznych

Katedra 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ółowo

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

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

Bardziej szczegółowo

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

Odniesienie 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ółowo

Nowoczesne technologie przetwarzania informacji

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

Bardziej szczegółowo

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Programowanie 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ółowo

Algorytmy i Struktury Danych

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

Bardziej szczegółowo

Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu

Pań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ółowo

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

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

Bardziej szczegółowo

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

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK 1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Część teoretyczna Informacje i wstępne wymagania Cel przedmiotu i zakres materiału Zasady wydajnego

Bardziej szczegółowo

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

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

Bardziej szczegółowo

METODY 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 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ółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK 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ółowo

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NYSIE

PAŃ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ółowo

Historia modeli programowania

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

Bardziej szczegółowo

EFEKTY 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 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ółowo

Opinia o pracy doktorskiej pt. Damage Identification in Electrical Network for Structural Health Monitoring autorstwa mgr inż.

Opinia 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ółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy 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ółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE 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ółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika 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ółowo

Szybkie prototypowanie w projektowaniu mechatronicznym

Szybkie 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ółowo

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Adam 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ółowo

Opinia o pracy doktorskiej pt. On active disturbance rejection in robotic motion control autorstwa mgr inż. Rafała Madońskiego

Opinia 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ółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Dodatkowo 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ółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE 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ółowo

RECENZJA ROZPRAWY DOKTORSKIEJ

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

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU

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

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie 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ółowo

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

Podstawy 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ółowo

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

USŁ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ółowo

Moc płynąca z kart graficznych

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

Bardziej szczegółowo

Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Projektowanie 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ółowo

Kod 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 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ółowo

Mikroprocesory rodziny INTEL 80x86

Mikroprocesory 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ółowo

Opracował: Jan Front

Opracował: 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ółowo

Kryptografia na procesorach wielordzeniowych

Kryptografia 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ółowo

Podstawy programowania

Podstawy 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ółowo

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski

Architektury 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ółowo

Odniesienie symbol II/III [1] [2] [3] [4] [5] Efekt kształcenia. Wiedza

Odniesienie 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ółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie 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ółowo

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Co 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ółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. 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ółowo

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

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

Bardziej szczegółowo

Podstawy 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 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ółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA

INŻ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ółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza 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ółowo

UCHWAŁ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 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ółowo

Dyrektor ACK Cyfronet AGH. z dnia 2 października 2017 roku w sprawie zmian organizacyjnych

Dyrektor 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ółowo

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

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

Bardziej szczegółowo

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

KARTA 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ółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW NAUCZANIE MATEMATYKI I INFORMATYKI

EFEKTY 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ółowo

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

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

Bardziej szczegółowo

Task Parallel Library

Task 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ółowo

1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami

1. 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ółowo

Grzegorz 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 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ółowo

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

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

Bardziej szczegółowo

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wydajność 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ółowo

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

KARTA 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ółowo

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Spis 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ółowo

Zaawansowane technologie w nowoczesnych układach sterowania

Zaawansowane 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ółowo

Informatyka, studia I stopnia (profil ogólnoakademicki) - wersja

Informatyka, 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ółowo

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Elektronika 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ółowo

PROGRAM 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 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ółowo

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki

Zakł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ółowo

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

Zagadnienia 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ółowo

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

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

Bardziej szczegółowo

Efekt kształcenia. Wiedza

Efekt 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ółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA

EFEKTY 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ółowo

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Wykorzystanie 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ółowo

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

zna 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ółowo

Zaawansowane programowanie w języku C++

Zaawansowane 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

[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ółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz 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ółowo

Efekty 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 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