Paralelní algoritmy --- Parallel Algorithms

Podobné dokumenty
IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

Paralelní a distribuované výpočty (B4B36PDV)

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Cvičení MI-PRC I. Šimeček

Pokročilé architektury počítačů

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Teoretická informatika Tomáš Foltýnek Paralelní programování

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Martin Lísal. Úvod do MPI

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. Jiří Barnat

Paralelní a distribuované výpočty (B4B36PDV)

Programování založené na posílání zpráv

4. Úvod do paralelismu, metody paralelizace


Povídání na téma SUPERPOČÍTAČE DNES A ZÍTRA

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.

Úvod do B4B36PDV. Organizace předmětu a seznámení se s paralelizací. B4B36PDV Paralelní a distribuované výpočty

1. Zpracování událostí na pozadí aplikace

Paralelní programování

Paralelní grafové algoritmy

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování

Návrh paralelních algoritmů

Architektury počítačů

Úvod do MPI. Úvod do MPI Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv

Zřízení studijního oboru HPC (High performance computing)

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35

Co je grafický akcelerátor

Karta předmětu prezenční studium

Úvod do GPGPU J. Sloup, I. Šimeček

Profilová část maturitní zkoušky 2013/2014

Motivace. Software. Literatura a odkazy

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

GPGPU Aplikace GPGPU. Obecné výpočty na grafických procesorech. Jan Vacata

Profilová část maturitní zkoušky 2017/2018

Základní komunikační operace

Speciální numerické metody 4. ročník bakalářského studia. Cvičení: Ing. Petr Lehner Přednášky: doc. Ing. Martin Krejsa, Ph.D.

Architektury paralelních počítačů II.

Reálné gymnázium a základní škola města Prostějova Školní vzdělávací program pro ZV Ruku v ruce

Paralelní algoritmy v lineární algebře. Násobení matic

Tvorba počítačových clusterů pomocí Linuxu. Vedoucí práce: Mgr. Jiří Pech, Ph.D. Katedra informatiky

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.

Pokročilé architektury počítačů

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

Pokročilé architektury počítačů


ALGORITMY A DATOVÉ STRUKTURY

Architektury paralelních počítačů I.

Static Load Balancing Applied to Time Dependent Mechanical Problems

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Pokročilé architektury počítačů

Název diplomové práce: Srovnávač životního pojištění. Určení: Bakalářská práce. Vedoucí: Doc. Ing. Petr Sosík, Dr.

PRŮVODCE STUDIEM PRO PREZENČNÍ FORMU STUDIA MODULU IT V PODNIKU DÍLČÍ ČÁST PROGRAMOVÁNÍ BUSINESS APLIKACÍ

Paralelní a distribuované výpočty (B4B36PDV)

České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská OKRUHY. ke státním závěrečným zkouškám BAKALÁŘSKÉ STUDIUM

Úvod do přesnosti MKP, generace sítí a metod řešení soustav lineárních rovnic

GPU jako levný výpočetní akcelerátor pro obrazovou JPEG2000 kompresi. ORS 2011 Karviná,

Algoritmizace- úvod. Ing. Tomáš Otáhal

Paralelní systémy. SIMD jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat

Možnosti programování se sdílenými proměnnými. Týden 6 Programování se sdílenými proměnnými (Shared Variables, SV) Procesy a vlákna.

Procesy a vlákna (Processes and Threads)

Povídání na téma. SUPERPOČÍTAČE DNES A ZÍTRA (aneb krátký náhled na SC) Filip Staněk

Matematika v programovacích

Informatika a výpočetní technika 1. roč./1. sem. 1. roč./2. sem. 2. roč./3. sem. 1 kr. Povinné předměty pro obor IVT

Umělá inteligence a rozpoznávání

Soulad studijního programu. Aplikovaná informatika

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně

Hodnoticí standard. Návrhář software (kód: N) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Úvod do softwarového inženýrství a týmového vývoje

aneb jiný úhel pohledu na prvák

10. Složitost a výkon

Typy předmětů a pravidla jejich zařazování do studijního plánu

Operační systémy. Přednáška 1: Úvod

Paralelní a distribuované výpočty (B4B36PDV)

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Aplikace metody BDDC

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

DMML, MMLS, TŘD, DP, DI, PSDPI

Základy programování (IZP)

V t í á t V á V s ČVU V T v v P r P a r ze

Úvod do OpenMP. Jiří Fürst

Komunikační sítě paralelních architektur

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III

SYLABUS TVŮRCE SYSTÉMŮ MODULU. Michal Červinka, Ivo Špička

Dynamické programování

Paralelní programování

ZČU/FAV/KIV/PPR 1 Architektury paralelních počítačů, modely dekompozice výpočtu, interakce a výkonnost

Maturitní otázky z předmětu PROGRAMOVÁNÍ

SEZNAM ANOTACÍ. CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_MA4 Analytická geometrie

Představení a vývoj architektur vektorových procesorů

1 Paralelní a distribuované architektury

IB111 Úvod do programování skrze Python Přednáška 13

Transkript:

Paralelní algoritmy --- Parallel Algorithms Přemysl Šůcha suchap@fel.cvut.cz

Motivace Nepopíratelnost trendu směřování k paralelním systémům i více-jádrový telefon je dnes samozřejmostí energetická efektivita Gflops/W Studenti v posledním ročníku nerozumí rozdílu mezi základními synchronizačními primitivy, jako je mutex a semaphor. Studenti se obávají paralelního programování. Neradi si vybírají semestrální a diplomové práce s vazbou na paralelní programování. 2

Příbuzné předměty v ČR FIT: Paralelní algoritmy a systémy 2+3 (Tvrdik) metody programování, výkonnostní charakteristiky, škálovatelnost FJFI: Paralelní algoritmy a architektury 3+0 (Oberhuber) úvod do problematiky s těžištěm na paralelní platformy MFF: Parallel Algorithms 2+0 (Mráz) úvod do teorie paralelního programování FIT VUTBR: Praktické paralelní programování 3+2 (Dvořák) programování různých paralelních systémů FI MU: Architektura superpočítačů a intenzivní výpočty 2+0 (Matyska) paralelní systémy a základy jejich programování 3

Příbuzné předměty na FEL Obecné výpočty na grafických procesorech 1+2 (Sloup) volitelný předmět principy obecných výpočtů na GPU + CUDA Pokročilé architektury počítačů 2+2 (Šnorek, Štepanovský) magisterský program - Počítačové inženýrství (3. sem) 3 přednášky na programování paralelních systémů 4

Idea předmětu Ukázat základy paralelního programování s těžištěm na paralelní algoritmy Primární cílovou paralelní platformou bude běžně dostupný HW (více-jádrové počítače, multiprocesorové servery) to, s čím se programátor může běžně setkat Přesvědčit studenty aby využívaly znalosti paralelního programování i v jiných předmětech a ve svých diplomových pracích 5

Struktura předmětu Rozsah: 2+2c Semestr: zimní Doporučený semestr: 1 semestr Mgr. Studia Požadavky na studenty: znalost C nebo C++ (Programování v jazyku C/C++ /A7B36PJC/ nebo Programovací jazyk C/C++ / A2B37CPP/) základy programování (Programování 2 /A0B36PR2/, Algoritmizace /A4B33ALG/) základy teorie grafů (Logika a grafy /A0B01LGR/) Zakončení: zkouška 6

Struktura předmětu Cvičení: bude probíhat v počítačové učebně náplní bude procvičení látky z přednášek zápočet bude udělen na základě: bodového hodnocení za úlohy bodového hodnocení semestrální práci tématem semestrální práce může být i téma z jiného předmětu či z diplomové práce studenta avšak s jasnou vazbou na paralelní programování 7

Literatura Introduction to Parallel Computing Autoři: Ananth Grama - Purdue University, Anshul Gupta - IBM T.J. Watson Research Center George Karypis - University of Minnesota Vipin Kumar - University of Minnesota Používaná v kurzech: Harvard (CS205 Computing Foundations for Computational Science) KTH (Parallel Computations for Large-Scale Problems) Purde (Introduction to Parallel Computing) RICE (COMP 422: Introduction to Parallel Computing) 8

Osnova přednášek 1. Úvod do paralelního programování paralelní architektury a modely, pipelining a superscalarní zpracování, paměťové modely, zakrývání latence přístupu do paměti, komunikace a topologie sítí 2. Principy návrhu paralelních algoritmů dekompozice a granularita, rekurzivní/datová/dynamická/hybridní dekompozice, mapování a vyvažování výkonu, modely paralelních algoritmů 3. Základní komunikační operace různé typy komunikace (one-to-all broadcast, all-to-one reduction, all-to-all broadcast and reduction, all reduce, prefix sum, scatter, gather) z pohledu odlišných sítí (linear array, ring, mesh, hypercube) 4. Vlastnosti paralelních algoritmů speedup, paralelní efektivnost, paralelní cena, škálovatelnost, Amdahlův zákon, asymptotická analýya paralelních algoritmů 5. Programování se sdíleným paměťovým prostorem Pthreads, synchronizační primitiva, OpenMP 9

Osnova přednášek 6. Programování s MPI (Message Passing Interface) komunikace, mapování, blokující a neblokující komunikace, kolektivní komunikace, skupinové komunikace 7. Řazení bitonic sort a jeho mapování na hypercube a mesh, bubblesort, quicksort 8. Maticové algoritmy násobení matice vektorem, násobení matice maticí, řešení soustav lineárních rovnic 9. Grafové algoritmy minimální kostra, nejkratší cesty, algoritmy pro řídké grafy 10. Paralelní kombinatorické algoritmy prohledávání do hloubky a do šířky, search overhead factor, strategie dělení práce, vyvažování zátěže, anomálie ve zrychlení 11. Dynamické programování a metaheuristické algoritmy přídy DP formulací (serial monadic, nonserial monadic, ), paralelní modely pro evoluční algoritmy a tabusearch 10

Osnova cvičení 1. Optimalizace sekvenčního kódu profilování kódu a nalezení hot spots (Valgrind), optimalizace větvení kódu (pipeline), optimalizace přístupu do pamětí (access patterns), inlining, lazy initialization, Úloha: násobení matic 2. Zadání semestrální práce 3. Využití instrukční sady procesoru skrytý paralelismus vektorizace pomocí inline assembleru/ intrinsic functions/openmp 4.0, unrolling aritmetics instructions (SSE4, AVX), non-temporal instructions Úloha: násobení matic 4. Konzultace semestrální práce 5. Pthreads práce s vlákny (create, run,join), synchronizační primitiva (mutex, semaphor, conditional variables) Úloha: Problém knapsack řešený paralelním genetickým algoritmem 6. Konzultace semestrální práce 11

Osnova cvičení 7. Základy OpenMP základní konstrukty (parallel for, atomic critical, task, sections, public/private variables ) pokročilé konstrukty, rozšíření v OpenMP 4.0 Úloha: intro sort 8. Open MPI základní operace v MPI (MPI_Send, MPI_Recv, MPI_Isend, MPI_Irecv), kolektivní komunikace broadcast, reduction, Úloha: dynamické programování pro rozvrhovací problém P Cmax (Rothkopf alg.) 9. Konzultace semestrální práce 10. Hledání nejkratších cest v Open MPI Úloha: algoritmus pro hledání 1-to-all nejkratších cest za využití Open MPI 11. Konzultace semestrální práce 12. Prezentace semestrální práce 13. Odevzdání semestrální práce 12

Paralelní algoritmy --- Parallel Algorithms Přemysl Šůcha suchap@fel.cvut.cz