Teaching at Faculty of Informatics and Information Technology STU Slovakia

not to make better students - to make better human beings

Subjects


  • Parallel programming [SK]


    Podrobné informácie k predmetu

    Obsah predmetu

    • Úvod do paralelného a distribuovaného spracovania
    • Synchronizačné problémy
    • Architektúry paralelných systémov
    • Základné komunikačné operácie
    • Analytické modelovanie paralelných systémov
    • POSIX Threads and Semaphores
    • Open MP
    • MPI
    • CUDA

    Prostredie pre prácu

    Zadanie 1

    • Jednoduché synchronizačné úlohy
      Úlohy na postupné precvičenie použitia knižnice Pthread. Predstavuje základ pre úspešné zvládnutie 1 zadania.
    • Synchronizačné problémy
      (Vylučovanie, signalizácia, barierová synchronizácia, znovupoužiteľná bariéra. Pomocou semafórov, pomocou mutexov + podm. premenných)
    • Synchronizačné modely
      (Producenti-Konzumenti, Čitatelia-Zapisovatelia s preferenciou/bez preferencie)
    • Príklady zadaní na precvičenie
      (Cieľom je vhodne skombinovať znalosti z predchádzajúcich cvičení a prednášok pre vyriešenie úloh. Ide o vzorové zadania, ktoré slúžia na precvičenie. Reálne zadanie sa môže líšiť!)

    Zadanie 2


    • Študent vybranú tému vypracováva samostatne doma alebo na cvičení a následne ju musí na cvičení odprezentovať osobne cvičiacemu s VYSVETLENÍM jej implementácie.
    • Hodnotenie sa študent dozvie väčšinou hneď po prezentácií, prípadne môže byť vyzvaný aby zadanie dopracoval pre získanie dodatočných bodov alebo naopak pre získanie aspoň minimálneho počtu.
    • Študent musí preukázať dopad použitia stanovených prostriedkov pri vyriešení témy a to ukážkou fungujúceho riešenia v rámci prezentácie a vypracovanými štatistickými podkladmi tvoriacich dokumentáciu.
    • Aplikácia MUSÍ mať preukázatelné (meratelné) zrýchlenie voči implementácii bez paralelizácie.
    • Len aplikácie využívajúce sučasne obe technológie (OpenMP a MPI) môžu získať plný počet bodov. Pri MPI je podmienkou beh programu aspoň na dvoch PC.
    • Odovzdávajú sa vypracované zdrojové súbory a dokumentácia obsahujúca popis témy a riešenia spolu s výslednými meraniami behu programu v sekvenčnom a paralelnom móde (len s OpenMP, len s MPI, MPI + OpenMP) s použitím predpísanych prostriedkov. To znamená, že pre merania v jednotlivých módoch môže vzniknúť viacero spustiteľných programov, alebo jeden program s prepínačom na vstupe.
    • PoužitieMPI clustra na fakulte je kladne hodnotené.

    Semestrálny projekt

    • Návrh zadania v 11. týždni do AISu po konzultácií s cvičiacim.
    • Prezentácie projektov začínajú na konci semestra v 12. týždni (v 11. týždni +2b)
    • Pre uznanie odovzdania v riadnom termíne musia byť projekty odovzdané do AISu v 12. týždni.
    • Neskoršie odovzdania už podliehajú penalizácií (-2b za každý omeškaný týždeň).
    • Použitie metód a prostriedkov paralelného spracovania vo vašej bakalarskej práce alebo semestrálnom projekte – oznámiť aj vedúcemu práce (jednotlivec)
    • Spracovanie a odprezentovanie zvolenej problematiky nepokrytej v prednáškach (jednotlivec, dvojice)
    • Spracovanie synchronizačného problému tak, ako sú spracovaní obedujúci filozofi (dvojice)
      • Spracovanie problému spiaceho holiča
      • ...
    • Spracovanie jednoduchej synchronizačnej úlohy (ako 1. úloha pri počítačoch) (jednotlivec)
      Pre vzorové riešenie úlohy si môžete zvoliť vypracovanie:
      • cez podmienené premenné a mutexy
      • cez tzv.monitory v zvolenom programovacom jazyku (Java, C# etc.)

      Príklady
      • Študenti a profesori
      • Santa a Elfovia
      • Hokej
      • ...
    • Témy z oblasti strojového učenia (jednotlivec, dvojice)
      • Genetický algoritmus (z predmetu Umelá inteligencia)
      • ...
    • Témy z oblasti počítačovej grafiky (jednotlivec, dvojice)
      • Spracovanie 2. zadania v CUDA
      • Spracovanie 2. zadania v OpenCL
      • ...
    • Vlastné ... (jednotlivec, dvojice)
      • Možnosti paralelného programovania v jazyku LUA
      • Možnosti paralelného programovania v jazyku PHP (Pthreads)
      • Možnosti paralelného programovania v jazyku Ruby
      • ...

    • Študent projekt vypracováva doma samostatne alebo vo dvojici a následne ho musí na cvičení odprezentovať cvičiacemu s VYSVETLENÍM. Hodnotenie sa študent dozvie väčšinou hneď po prezentácií, prípadne môže byť vyzvaný aby projekt dopracoval pre získanie dodatočných bodov alebo naopak pre získanie aspoň minimálneho počtu.
    • Projekt môžu vypracovať aj dvojice, no musí sa to odraziť na rozsahu a podrobnosti spracovania témy.
    • Ak je to vhodné, dokumentácia môže byť spracovaná vo forme prezentácie (powerpoint, html).
    • Rozsah spracovania projektu je nutné konzultovať s cvičiacim.
    • Prezentujú obaja z dvojice
    • Pri prezentácií a z dokumentácie musí byť jasné kto z dvojice pracoval na ktorých častiach projektu.

  • Team Project [SK]


    Podrobné informácie k predmetu


  • Object Oriented Programming (OOP) - Basics [EN]


    Source




Publications