Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Równoległe implementacje metod numerycznych

Informacje ogólne

Kod przedmiotu: 103A-ELxxx-MSP-RIM Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Równoległe implementacje metod numerycznych
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty techniczne )---EITI
( Przedmioty zaawansowane )-Elektronika-dr.-EITI
( Przedmioty zaawansowane obieralne )-Mikrosystemy i systemy elektroniczne-mgr.-EITI
( Przedmioty zaawansowane techniczne )--mgr.-EITI
Punkty ECTS i inne: 5.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

RIM

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zapoznanie studentów z nowoczesnymi technikami implementacji metod numerycznych i algorytmów przetwarzania sygnałów, w których szczególny nacisk położony jest na efektywność, uzyskaną przez wykorzystanie równoległości obliczeń, zapewnianej przez wielordzeniowe procesory i układy logiki programowalnej.

Pełny opis:

Celem przedmiotu jest zapoznanie studentów z nowoczesnymi technikami implementacji metod numerycznych i algorytmów przetwarzania sygnałów, w których szczególny nacisk położony jest na efektywność, uzyskaną przez wykorzystanie równoległości obliczeń, zapewnianej przez wielordzeniowe procesory i układy logiki programowalnej.

Treść wykładu

  • Ograniczenia klasycznych procesorów jednordzeniowych i sposoby
    ich sprzętowego pokonywania. Praca potokowa, model obliczeń SIMD,
    architektura superskalarna i architektura VLIW. Klasyczne rozwiązania
    wielordzeniowe na przykładzie procesorów x86 i CELL. Procesory
    systoliczne typu Tilera i SeaForth, procesory graficzne firm Nvidia i
    AMD. Komputery równoległe, modele programowania równoległego. Problemy
    zrównoleglania algorytmów, graf zależności. (8h)

  • Historyczny rozwój procesorów graficznych. Architektura i model
    programowania procesorów graficznych, ze szczególnym uwzględnieniem
    rodziny Tesla 10. Hierarchia pamięci; pamięć stała, pamięc globalna,
    pamięć dzielona i pamięć tekstur. Podstawy języka PTX. Programowanie w
    języku CUDA na niskim poziomie, porównanie z językiem OpenCL.
    Programowanie w języku CUDA na wysokim poziomie (CUDA C). Podstawowe
    operacje programowania równoległego w języku CUDA. Wykorzystanie
    bibliotek algebraicznych (BLAS) i sygnałowych (FFT) do języka CUDA.
    Optymalizacja programów na pocesory graficzne. Wzmianka o języku X10.
    Przykłady zastosowań kart graficznych w obliczeniach: sztuczne sieci
    neuronowe, modelowanie procesów fizycznych, biologicznych i
    geologicznych, optymalizacja, symulacje Monte-Carlo, przetwarzanie
    sygnałów i obrazów biomedycznych i radiolokacyjnych, przeszukiwania
    dużych baz danych. (12h)

  • Równoległe realizacje metod numerycznych i algorytmów
    przetwarzania sygnałów wykorzystujące układy FPGA. Zaawansowane metody
    opisu i symulacji sprzętu, język VHDL. Wewnętrzna struktura
    współczesnych układów FPGA na przykładzie rodziny Xilinx Spartan 3.
    Typowe układy peryferyjne wykorzystywane w zastosowaniach do cyfrowego
    przetwarzania sygnałów, współpraca z układami pamięci wykonanymi w
    różnych technologiach. Ograniczenia możliwości układów FPGA. Metody
    przyspieszania obliczeń przez ich zrównoleglanie i wprowadzenie
    przetwarzania potokowego. Przykładowe zastosowania: sposoby
    implementacji funkcji arytmetycznych, szybkie algorytmy obliczeń
    przybliżonych, algorytm iteracyjny Newtona-Raphsona (m.in. w operacjach
    dzielenia i pierwiastkowania) (10h)


Zakres laboratorium
Laboratorium ma na celu nauczenie wszystkich słuchaczy kursu sprawnego
posługiwania się systemami uruchomieniowymi (zarówno w aspekcie
sprzętowym, jak i programowym) dla przedstawicieli obu rozważanych
platform równoległych (procesorów graficznych Nvidia i układów logiki
programowalnej Xilinx). Tematy laboratoriów obejmują pięć ćwiczeń po 3h
każde:

  1. Implementacja podstawowych obliczeń algebry liniowej w języku
    CUDA C i z wykorzystaniem biblioteki CUBLAS.

  2. Implementacja podstawowych algorytmów cyfrowego przetwarzania
    sygnałów w języku CUDA C i z wykorzystaniem biblioteki CUFFT.

  3. Implementacja metod optymalizacji i symulacji Monte-Carlo w
    języku CUDA C.

  4. Przybliżone implementacje podstawowych funkcji arytmetycznych w
    układzie FPGA.

  5. Implementacja banku filtrów i algorytmu FFT w układzie FPGA.


Laboratorium odbywa się w środkowej części semestru.

Zakres projektu
W ramach zajęć projektowych, wykonywanych w drugiej połowie semestru, wiedza pozyskana na laboratoriach będzie wykorzystywana do rozwiązywania konkretnych, choć z konieczności odpowiednio uproszczonych, problemów praktycznych na jednej wybranej platformie (albo procesor graficzny Nvidia, albo układ logiki programowalnej Xilinx), w zespołach 2-4 osobowych.

Literatura:

    Podstawowa literatura (oprócz literatury firmowej firm i organizacji
    Nvidia, Xilinx, Khronos i in.):

    1. Fayez Gebali: Algorithms and Parallel Computing. John Wiley & Sons, 2011 (po angielsku).

    2. Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction
      to General-Purpose GPU Programming. Addison-Wesley, 2011 (po angielsku).

    3. Rob Farber: CUDA Application Design and Development. Morgan
      Kaufmann, 2011 (po angielsku).

    4. David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel
      Processors: A Hands-on Approach. Morgan Kaufmann, 2010 (po angielsku).

    5. V. Boreskov, A. A. Kharlamov: Basics of CUDA Technology. DMK
      Press, Moscow, 2010 (po rosyjsku).

    6. Aaftab Munshi, Benedict R. Gaster, Timothy G. Mattson, James
      Fung, Dan Ginsburg: OpenCL Programming Guide. Addison-Wesley, 2012 (po
      angielsku).

    7. David R. Martinez, Robert A. Bond, M. Michael Vai: High
      Performance Embedded Computing Handbook ? A Systems Perspective. CRC
      Press, 2008 (po angielsku).

    8. Karbowski, E. Niewiadomska-Szynkiewicz (red.): Programowanie
      równoległe i rozproszone. Oficyna Wydawnicza PW, 2009.

    9. J. Majewski, P. Zbysiński: Układy FPGA w przykładach. BTC 2007.

    10. K. Skahill: Język VHDL. Projektowanie programowalnych układów
      logicznych, WNT 2001.

Metody i kryteria oceniania:

Weryfikacja założonych efektów kształcenia będzie się odbywała zarówno
w trakcie trwania semestru (weryfikacja umiejętności praktycznych przez
ocenianie laboratoriów i projektów, weryfikacja umiejętności pracy
zespołowej i radzenia sobie ze złożonością będzie także elementem
oceniania projektów), jak i po jego zakończeniu (weryfikacja nabytej
wiedzy przez egzamin końcowy).

Ocenianie laboratorium: 5 ćwiczeń po 8 p. każde - razem max. 40 p.

Ocenianie projektów - razem max. 35 p.:

- Opis problemu i sposobu rozwiązania - 5 p.

- Napisanie kodu źródłowego rozwiązania - 10 p.

- Uruchomienie i testowanie programu - 15 p.

- Dokumentacja końcowa - 5 p.

Ocena z egzaminu końcowego (test) - max. 25 p.

Przedmiot zalicza uzyskanie co najmniej 51 p., do wystawienia oceny
stosuje się standardową skalę ocen (co 10 p. pół stopnia).

Zajęcia w cyklu "rok akademicki 2019/2020 - sem. zimowy" (zakończony)

Okres: 2019-10-01 - 2020-02-21
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Jacek Gambrych, Gustaw Mazurek, Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2018/2019 - sem. zimowy" (zakończony)

Okres: 2018-10-01 - 2019-02-17
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Jacek Gambrych, Gustaw Mazurek, Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2017/2018 - sem. zimowy" (zakończony)

Okres: 2017-10-01 - 2018-02-18
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 40 miejsc więcej informacji
Projekt, 15 godzin, 40 miejsc więcej informacji
Wykład, 30 godzin, 40 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2016/2017 - sem. zimowy" (zakończony)

Okres: 2016-10-01 - 2017-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2015/2016 - sem. zimowy" (zakończony)

Okres: 2015-10-01 - 2016-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 36 miejsc więcej informacji
Projekt, 15 godzin, 36 miejsc więcej informacji
Wykład, 30 godzin, 36 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2014/2015 - sem. zimowy" (zakończony)

Okres: 2014-09-29 - 2015-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2013/2014 - sem. zimowy" (zakończony)

Okres: 2013-10-01 - 2014-02-23
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 40 miejsc więcej informacji
Projekt, 15 godzin, 40 miejsc więcej informacji
Wykład, 30 godzin, 40 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Zajęcia w cyklu "rok akademicki 2012/2013 - sem. zimowy" (zakończony)

Okres: 2012-10-01 - 2013-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 40 miejsc więcej informacji
Projekt, 15 godzin, 40 miejsc więcej informacji
Wykład, 30 godzin, 40 miejsc więcej informacji
Koordynatorzy: Marek Nałęcz
Prowadzący grup: Marek Nałęcz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.