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:
- Splnění ústní zkoušky
- Vypracovat semestrální program
Zadání semestrálního programu
- Domluvit si vhodnou úlohu nebo si vybrat ze zadaných
- Vypracovat jednoduchý sekvenční neoptimalizovaný kód
- Provést profilování pomocí vhodného nástroje
- Provést optimalizace sekvenčího kódu
- Vytvořit paralelní kód pro jednu zvolenou paralelní architekturu
- Porovnat výsledky paralelního a sekvenčního výpočtu
- 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
- A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Pearson/Addison Wesley, 2003, webová stránka.
- P. Tvrdík, Paralelní architektury a algoritmy, skripta FEL.
- J. Dongarra a kolektiv, Sourcebook of Parallel Computing, Morgan Kaufmann Publisher, 2003.
- G.E.Karniadakis, R.M.Kirby II, Parallel Scientific Computing in C++ and MPI, Cambridge University Press, 2003.
- 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í
- Úvod - video na Youtube
- Optimalizace - video na Youtube
- Sekvenční architektury - paměť - videa na Youtube: 1. část, 2. část
- Sekvenční architektury - zpracování instrukcí - video na Youtube
- Vektorizace - video na Youtube
- Architektury se sílenou pamětí - video na Youtube: 1. část, 2. část
- NUMA architektury se sílenou pamětí - video na Youtube
- Úvod do CUDA - video na Youtube
- Architektury s distribuovanou pamětí - video na Youtube
- Úvod do MPI - video na Youtube
- Paralelní architektury - shrnutí
- HPC knihovny
- Paralelní algoritmy - video na Youtube
- Základní operace- video na Youtube: Redukce, prefix sum
- Třídění- video na Youtube: Bubble sort a quicksort, Radix sort a bitonic sort
- Matice - video na Youtube
- Grafové algoritmy
- Numerická matematika
Zdrojové kódy příkladů jsou na Gitlabu
Odkazy na internetu
Úvod
- Top 500 - žebříček 500 nejvýkonějších superpočítačů na světě (aktualizace každých 6 měsíců)
- History of Processor Performance
- Cell Processor - stránka věnovaná výkonému vícejádrovému procesoru Cell
- PA-RISC
- Folding@home - grid pro modelování proteinů (klient s podporou GPU)
- GIMPS - hledání Mersennových prvočísel
Optimalizace
- Gprof
- Gconv
- Oprofile
- Valgrind
- Intel Vtune Profiler
- AMD Code Analyst
- PAPI
Sekvenční systémy
- What every programmer should know about memory - podrobný článek o fungování operační paměti a efektivním programování.
- Software optimization resources - stránky Agnera Foga o procesorech a optimalizacích
- AMD Developer Guides & Manuals, Software Optimization Guide
for AMD Family 16h Processors , Software Optimization Guide for AMD Family 15h Processors
- Intel® 64 and IA-32 Architectures Optimization Reference Manual
- Popis architektury Intel Haswell
- Popis architektury Intel Haswell na Tom's Hardware
- Procesor DEC Alpha
- Intel 8086, Intel 80286, Intel 80386, Intel 80486,Intel Pentium
- Porovnání architektur CPU
Vektorizace
- Data alignment for speed: myth or reality?
- GodBolt - webovy disassemling kódu
- SSE instrukce
- Přehled instrukcí MMX, SSE, 3DNow!
- Intel intrinsics overview
- GCC X86 Built-in Functions
- Introduction to Intel® Advanced Vector Extensions
- Auto-vectorization in GCC
- Auto-vectorization with gcc 4.7
Architektury se sdílenou pamětí
- OpenMP
NUMA Architektury
CUDA
- CUDA Programming Guide
- Architektura FERMI
- CUDA Occupancy Calculator
- GPU Gems 3
Architektury s distribuovanou pamětí
- Supercomputer - popis superpočítačů na anglické Wikipedii.
- Cray
- Komunikační systém Cray Gemini
- Superpočítač Summit
Paralelní architektury
- Transputery - popis poměrně unikátního procesoru navrženého pro paralelní systémy.
- Grid computing (Wikipedia)
- Cloud computing (Wikipedia)
- GPU(Wikipedia)
- Michael J. Flynn - autor Flynnovy taxonomie
- Systolické pole (Wikipedia)
- Ian Foster
Komunikační sítě
- Intel QuickPath Interconnect - wiki
- An Introduction to the Intel QuickPath Interconnect
- Direct Connect Architecture
- Network centrality
- Network theory(analysis)
Paralelní redukce a prefix-sum
- Guy E. Blelloch, Vector Models for Data-Parallel Computing
- Paralelní redukce v CUDA, Mark Harris
- Parallel Prefix Sum (Scan) with CUDA, Mark Harris,Shubhabrata Sengupta, John D. Owens
Třídění
- Příhrádkové třídění
- GPU Quicksort
- Batcher, Sorting networks
- Odd-even merge sort