Paralelní algoritmy a architektury

Na této stránce lze najít informace týkající se výuky předmětu Paralelní algoritmy a architektury vyučovaném na katedře matematiky Fakulty jaderné a fyzikálně inženýrské.

Podmínky k udělení klasifikovaného zápočtu:

  1. Splnění ústní zkoušky
  2. Vypracovat semestrální program

Zadání semestrálního programu

  1. Domluvit si vhodnou úlohu nebo si vybrat ze zadaných
  2. Vypracovat jednoduchý sekvenční neoptimalizovaný kód
  3. Provést profilování pomocí vhodného nástroje
  4. Provést optimalizace sekvenčího kódu
  5. Vytvořit paralelní kód pro jednu zvolenou paralelní architekturu
  6. Porovnat výsledky paralelního a sekvenčního výpočtu
  7. Naměřit paralelní urychlení a efektivitu vůči sekvenčním verzím

Návrhy na semestrální programy jsou zde..

Alternativně je možné se domluvit na jiném zadání semestrálního programu. Semestrální práce některých studentů z minulých let jsou zde.

Literatura

  1. A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Pearson/Addison Wesley, 2003, webová stránka.
  2. P. Tvrdík, Paralelní architektury a algoritmy, skripta FEL.
  3. J. Dongarra a kolektiv, Sourcebook of Parallel Computing, Morgan Kaufmann Publisher, 2003.
  4. G.E.Karniadakis, R.M.Kirby II, Parallel Scientific Computing in C++ and MPI, Cambridge University Press, 2003.
  5. B. Chapman, G. Jost, R. van van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, The MIT Press, 2007.

Prezentace k vyuce a playlist všech doprovodných videí

  1. Úvod - video na Youtube
  2. Optimalizace - video na Youtube
  3. Sekvenční architektury - paměť - videa na Youtube: 1. část, 2. část
  4. Sekvenční architektury - zpracování instrukcí - video na Youtube
  5. Vektorizace - video na Youtube
  6. Architektury se sílenou pamětí - video na Youtube: 1. část, 2. část
  7. NUMA architektury se sílenou pamětí - video na Youtube
  8. Úvod do CUDA - video na Youtube
  9. Architektury s distribuovanou pamětí - video na Youtube
  10. Úvod do MPI - video na Youtube
  11. Paralelní architektury - shrnutí
  12. HPC knihovny
  13. Paralelní algoritmy - video na Youtube
  14. Základní operace- video na Youtube: Redukce, prefix sum
  15. Třídění- video na Youtube: Bubble sort a quicksort, Radix sort a bitonic sort
  16. Lineární algebra - video na Youtube

Zdrojové kódy příkladů jsou na Gitlabu

Odkazy na internetu

Úvod

  1. Top 500 - žebříček 500 nejvýkonějších superpočítačů na světě (aktualizace každých 6 měsíců)
  2. History of Processor Performance
  3. Cell Processor - stránka věnovaná výkonému vícejádrovému procesoru Cell
  4. PA-RISC
  5. Folding@home - grid pro modelování proteinů (klient s podporou GPU)
  6. GIMPS - hledání Mersennových prvočísel

Optimalizace

  1. Gprof
  2. Gconv
  3. Oprofile
  4. Valgrind
  5. Intel Vtune Profiler
  6. AMD Code Analyst
  7. PAPI

Sekvenční systémy

  1. What every programmer should know about memory - podrobný článek o fungování operační paměti a efektivním programování.
  2. Software optimization resources - stránky Agnera Foga o procesorech a optimalizacích
  3. AMD Developer Guides & Manuals, Software Optimization Guide
    for AMD Family 16h Processors
    , Software Optimization Guide for AMD Family 15h Processors
  4. Intel® 64 and IA-32 Architectures Optimization Reference Manual
  5. Popis architektury Intel Haswell
  6. Popis architektury Intel Haswell na Tom's Hardware
  7. Procesor DEC Alpha
  8. Intel 8086, Intel 80286, Intel 80386, Intel 80486,Intel Pentium
  9. Porovnání architektur CPU

Vektorizace

  1. Data alignment for speed: myth or reality?
  2. GodBolt - webovy disassemling kódu
  3. SSE instrukce
  4. Přehled instrukcí MMX, SSE, 3DNow!
  5. Intel intrinsics overview
  6. GCC X86 Built-in Functions
  7. Introduction to Intel® Advanced Vector Extensions
  8. Auto-vectorization in GCC
  9. Auto-vectorization with gcc 4.7

Architektury se sdílenou pamětí

  1. OpenMP

NUMA Architektury

CUDA

  1. CUDA Programming Guide
  2. Architektura FERMI
  3. CUDA Occupancy Calculator
  4. GPU Gems 3

Architektury s distribuovanou pamětí

  1. Supercomputer - popis superpočítačů na anglické Wikipedii.
  2. Cray
  3. Komunikační systém Cray Gemini
  4. Superpočítač Summit

Paralelní architektury

  1. Transputery - popis poměrně unikátního procesoru navrženého pro paralelní systémy.
  2. Grid computing (Wikipedia)
  3. Cloud computing (Wikipedia)
  4. GPU(Wikipedia)
  5. Michael J. Flynn - autor Flynnovy taxonomie
  6. Systolické pole (Wikipedia)
  7. Ian Foster

Komunikační sítě

  1. Intel QuickPath Interconnect - wiki
  2. An Introduction to the Intel QuickPath Interconnect
  3. Direct Connect Architecture
  4. Network centrality
  5. Network theory(analysis)

Paralelní redukce a prefix-sum

  1. Guy E. Blelloch, Vector Models for Data-Parallel Computing
  2. Paralelní redukce v CUDA, Mark Harris
  3. Parallel Prefix Sum (Scan) with CUDA, Mark Harris,Shubhabrata Sengupta, John D. Owens

Třídění

  1. Příhrádkové třídění
  2. GPU Quicksort
  3. Batcher, Sorting networks
  4. Odd-even merge sort