Fakulta informačních technologií VUT v Brně

Detail předmětu

Architektura a programování paralelních systémů

ARC Ak. rok 2018/2019 letní semestr 5 kreditů

Předmět pokrývá architekturu i programování paralelních systémů s funkčním a datovým paralelismem. Nejdříve je pojednáno o teorii paralelních systémů a paralelizaci programů. Následuje výklad programování systémů se sdílenou pamětí v prostředí OpenMP a popis nejrozšířenějších mnoho-jádrových multiprocesorů SMP i pokročilých systémů DSM NUMA. Pokračuje výklad programování pro systémy se zasíláním zpráv ve standardizovaném rozhraní MPI. Propojovací sítě jsou probrány samostatně a po té jejich uplatnění ve svazcích, mnoho-jádrových čipech i v nejvýkonnějších systémech.

Garant předmětu

Jazyk výuky

česky

Zakončení

zápočet+zkouška (písemná)

Rozsah

26 hod. přednášky, 12 hod. pc laboratoře, 14 hod. projekty

Bodové hodnocení

60 zkouška, 10 půlsemestrální test, 30 projekty

Zajišťuje ústav

Přednášející

Cvičící

Jaroš Marta, Ing. (UPSY FIT VUT)
Kukliš Filip, Ing. (UPSY FIT VUT)

Získané dovednosti, znalosti a kompetence z předmětu

Přehled principů výstavby paralelních systémů a propojovacích sítí, schopnost odhadnout výkonnost paralelních aplikací. Přehled o možnostech paralelizace základních technických úloh, znalost paralelního programování v MPI a v OpenMP. Praktické zkušenosti s prací na superpočítačích Anselm a Salomon.

Dovednosti, znalosti a kompetence obecné

Znalost možností a omezení paralelního zpracování, schopnost odhadnout výkonnost paralelních aplikací. Jazyková výbava pro komunikaci a synchronizaci procesů/vláken. Kompetence v technických a programových prostředcích pro náročné vědecké výpočty a simulace.

Cíle předmětu

Orientovat se v nabídce paralelních systémů, umět posoudit komunikační a výpočetní možnosti konkrétní architektury a predikovat výkonnost paralelních aplikaci. Seznámit se s nejdůležitějšími prostředky paralelního programování (MPI, OpenMP), naučit se je prakticky používat a řešit problémy paralelně.

Proč je předmět vyučován

Tento předmět vás zavede do oblasti, kde jedno procesorové jádro ani zdaleka nestačí pro řešení daného problému. Každý z nás máme minimálně 4 jádrový procesor, v serverech není výjimka mít 32 jader. Otázka je, jak ale všechna jádra efektivně využívat. Proto se rámci kurzu zaměříme na architektury výcejádrových systémů a všechny problémy spojené s rozdělením práce mezi více jader. Naučíme se velice efektivní knihovnu OpenMP, která pomocí několika jednoduchých příkazů umožní rozdělit náš problém na všechna procesorová jádra.

Co ale dělat v momentě, kdy ani ten nejlepší počítač nestačí na řešení dané úlohy (ať už nemá dostatek RAM nebo je prostě příliš pomalý)? Pak je jedinou možností rozdělit práci na několik strojů a zajistiti jejich vzájemnou komunikaci a synchronizaci. Pro tyto účely si podrobně představíme knihovnou MPI, kterou budeme následně zkoušet na superpočítači Salomon. Aby naše kódy dobře šlapaly, nahlédneme i pod kapotu těchto stojů a seznámíme se s architekturou uzlů a propojovacích sítí.

Požadované prerekvizitní znalosti a dovednosti

Von Neumannova architektura počítače, paměťová hierarchie, paměti cache a jejich organizace, programování v JSI a v C/C++.

Literatura studijní

Literatura referenční

  • Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 912 s., ISBN: 9780123747501 
  • Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605 

Osnova přednášek

  1. Úvod do paralelního zpracování.
  2. Vzory pro paralelní programování.
  3. Programování se sdílenou pamětí - úvod do OpenMP.
  4. Synchronizace nejen v OpenMP, analýza výkonnosti. 
  5. Sdílená paměť a koherence pamětí cache.
  6. Komponenty symetrických multiprocesorů.
  7. Architektury CC-NUMA DSM.
  8. Rozhraní zasílání zpráv MPI.
  9. Kolektivní komunikace, komunikátory a diskové operace. 
  10. Hybridní programování OpenMP/MPI
  11. Propojovací sítě: topologie a směrovací algoritmy.
  12. Propojovací sítě: přepínání, řízení toku, zpracování zpráv a výkonnost.
  13. Architektury se zasíláním zpráv, současné super-počítačové systémy. Distribuované souborové systémy.

Osnova ostatní - projekty, práce

  • Vývoj aplikace na SMP v OpenMP na NUMA uzlu superpočítače.
  • Paralelní program v MPI superpočítači.

Průběžná kontrola studia

Vyhodnocení dvou projektů v celkovém rozsahu 13 hodin, bodovaná počítačová cvičení, půlsemestrální písemka.

Kontrolovaná výuka

  • Zameškaná cvičení je možné nahradit v alternativní termín (pondělí nebo pátek)
  • V poslední týdnu semestru budou probíhat náhradní civčení

Podmínky zápočtu

Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Popřednáškavýuky D0207 08:0009:50 1MIT 2MIT MPV MSK xx
Popoč. labvýuky O204 10:0011:50 1MIT 2MIT xx
Popoč. labvýuky O204 12:0013:50 1MIT 2MIT xx
Popoč. labvýuky O204 14:0015:50 1MIT 2MIT xx
Čtzkouška2019-05-23 E112 11:0012:50 1MIT 2MIT řádná
Čtzkouška2019-05-30 E105 12:0013:50 1MIT 2MIT 1. oprava
poč. labvýuky O204 10:0011:50 1MIT 2MIT xx
zkouška2019-03-22 D0207 14:0014:50Pulsemestralka ARC
zkouška2019-06-07 A112 14:0015:50 1MIT 2MIT 2. oprava

Zařazení předmětu ve studijních plánech

Nahoru