zapoznanie studentów z podstawowymi informacjami o równoległych i funkcyjnych technikach programowania
ukształtowanie wśród studentów zrozumienia i świadomości roli równoległych technik programowania, a także uwypuklenia zwiększającej się roli programowania funkcyjnego
nauka podstawowych umiejętności w zakresie tworzenia programów równoległych w systemach wieloprocesorowych opartych o tradycyjne uniwersalne procesory (CPU) a także o graficzne wieloprocesorowe układy ogólnego zastosowania (GPU)
ukształtowanie podstawowych umiejętności w zakresie paradygmatu programowania funkcyjnego, a w szczególności roli funkcji i rekurencji, programowania bez efektów ubocznych oraz nabycie umiejętności używania techniki obliczeń leniwych
Wymagania wstępne
Metody programowania, Algorytmy i struktury danych, Teoretyczne podstawy informatyki, Logika dla informatyków
Zakres tematyczny
Równoległy model obliczeniowy, klasy złożoności obliczeń równoległych.
Dostępne narzędzia pomagające realizować programy działające w środowiskach równoległych: MPI, OpenMP, CUDA, OpenCL.
Rodzaje prymitywnych operacji równoległych.
Zależność i podział danych, modele równoległych środowisk wykonawczych dla CPU oraz GPU.
Podstawowe konstrukcje funkcyjnego języka programowania na przykładzie języków OCaml, F#, Scala.
Typy danych, wyjątki, pojęcie obiektu.
Funkcje wyższego rzędu, model obliczeń programów funkcyjnych (w postaci uproszczonego opisu operacyjnego).
System typów, leniwe obliczenia oraz konstrukcje programowania równoległego.
Konstrukcje imperatywne w programowaniu funkcyjnym.
Metody kształcenia
Wykład: wykład konwencjonalny/tradycyjny.
Laboratorium: ćwiczenia laboratoryjne, wg listy zadań.
Projekt: praca w grupach, metoda projektu.
Efekty uczenia się i metody weryfikacji osiągania efektów uczenia się
Opis efektu
Symbole efektów
Metody weryfikacji
Forma zajęć
Warunki zaliczenia
Wykład - warunkiem zaliczenia jest uzyskanie pozytywnej oceny z egzaminu przeprowadzonego w formie pisemnej.
Laboratorium - warunkiem zaliczenia jest uzyskanie pozytywnych ocen ze wszystkich sprawdzianów pisemnych z ćwiczeń laboratoryjnych, przewidzianych do realizacji w ramach programu laboratorium.
Projekt - warunkiem zaliczenia jest wykonanie wszystkich zadań projektowych, przewidzianych do realizacji w ramach zajęć projektowych oraz przygotowanie pisemnego raportu ze zrealizowanego projektu.
Składowe oceny końcowej = wykład: 40% + laboratorium: 30% + projekt: 30%
Literatura podstawowa
Mattson G.T., He Y., Koniges E.A.:The OpenMP Common Core: Making OpenMP Simple Again, MIT Press, 2019.
Han J., Sharma B.: Learn CUDA Programming: A beginner's guide to GPU programming and parallel computing with CUDA 10.x and C/C++, Packt Publishing, 2019.
Syme D., Granicz A., Cisternino A.: F# 4.0 dla zaawansowanych, Wydanie IV, Helion 2017.
Sanders J., Kandrot E.: CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU, Helion, 2012.
Michaelson G.: An Introduction to Functional Programming Through Lambda Calculus, Dover Publications Inc., 2011.
Gaster B., Howes L., Kaeli D. R., Mistry P., Schaa D.: Heterogeneous Computing with OpenCL, Morgan Kaufmann, 2011.
Pacheco P.: An Introduction to Parallel Programming, Morgan Kaufmann, 2011.
Sanders J., Kandrot E.: CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison-Wesley Professional, 2010, english edition.
Czech Z.: Wprowadzenie do obliczeń równoległych, Wydawnictwo Naukowe PWN, 2010.
Herlihy M., Shavit N.: Sztuka programowania wieloprocesorowego, Wydawnictwo Naukowe PWN, 2010, edycja polska.
Smith C.: Programming F#, O'Reilly Media, Inc.,Sebastopol, USA, 2010.
Pickering R.: Foundations of F#, Apress,USA, 2007.
Literatura uzupełniająca
Syme D., Granicz A., Cisternino A.: Expert F# 4.0, Apress, 2015.
Farber R.: CUDA Application Design and Development, Morgan Kaufmann, 2011.
Wen-mei W. Hwu, eds: GPU Computing Gems, Emerald Edition and Jade Edition, Morgan Kaufmann, 2011.
Harrop J.: F# for Scientists, John Wiley & Sons, Inc., Hoboken, New Jersey, USA, 2008.
Thomspon S.: Haskell - The Craft of Functional Programming, Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 1999.
Uwagi
Zmodyfikowane przez dr hab. inż. Marek Sawerwain, prof. UZ (ostatnia modyfikacja: 25-04-2020 21:27)
Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Korzystając z niniejszej strony, wyrażasz zgodę na ich używanie. Dowiedz się więcej.