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.

Termíny a výsledky testů 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

  1. Úvod
  2. Optimalizace
  3. Sekvenční architektury - paměť
  4. Sekvenční architektury - zpracování instrukcí
  5. Vektorizace
  6. Architektury se sílenou pamětí
  7. NUMA architektury se sílenou pamětí
  8. Úvod do CUDA
  9. Architektury s distribuovanou pamětí
  10. Úvod do MPI
  11. Paralelní architektury - shrnutí
  12. Paralelní algoritmy
  13. Základní operace
  14. Třídění
  15. Lineární algebra
  16. Grafové algoritmy

Zdrojové kódy příkladů

para-src.tgz

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. GodBolt - webovy disassemling kódu
  2. SSE instrukce
  3. Přehled instrukcí MMX, SSE, 3DNow!
  4. Intel intrinsics overview
  5. GCC X86 Built-in Functions
  6. Introduction to Intel® Advanced Vector Extensions
  7. Auto-vectorization in GCC
  8. 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. Paralelní redukce v CUDA, Mark Harris
  2. 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