PA039: Architektura superpočítačů a náročné výpočty Luděk Matýska Fakulta informatiky MU Jaro 2016 Luděk Matýska (Fl MU) Uvod Jaro 2016 1/67 Pravidla hry • Účast na prednáškach není povinná • Zkouška • Pouze písemná, 90 minut • Termíny budou k dispozici během dubna • Kolokvium • Projekt, nutno se přihlásit před koncem března Luděk Matýska (Fl MU) Uvod Jaro 2016 2 / 67 High Performance Computing Formule 1 v oblasti počítačů • Velmi drahé stroje, ovšem špičkových parametrů (výkonu) Specifické uživatelské skupiny • Rozsáhlé simulace • Modelování (automobily, letadla, ...) S jídlem roste chut • Požadavky rostou rychleji než výkon procesorů • Roste ale i složitost procesorů Kvalita programování určuje použitelnost Luděk Matýska (Fl MU) Úvod Jaro 2016 3 / 67 High Performance Computing II • Procesory • CISC • RISC • Vektorové procesory • Streaming procesory (např. GPU) • Speciální systémy FPGA, ...). • Paměti - výkon se zpožduje za procesory Luděk Matýska (Fl MU) Uvod HPC-požadavky • Klesá poměr teoretický_výkon/dosažený_výkon • Reakce: je třeba lépe pochopit • architekturu použitého počítače; • příčiny, proč určitý kód je podstatně rychlejší než zdánlivě ekvivalentn varianta; • způsoby měření reálného výkonu (programu a/nebo procesoru) Luděk Matýska (Fl MU) Uvod Jaro 2016 5 High Throughput Computing Nejvyšší aktuální výkon versus Nejvyšší využití • dlouhodobé efektivní využití počítačových systémů • velké množství menších úloh • Není kritická rychlost zpracování jedné úlohy • Podstatný celkový čas zpracování • Efektivita • maximalizace „investice" • celková propustnost systému Luděk Matýska (Fl MU) Úvod Jaro 2016 6 / 67 PA039: Architektura superpočítačů a náročné výpočty Procesory a paměti Luděk Matýska Fakulta informatiky MU Jaro 2016 Luděk Matýska (Fl MU) Procesory Jaro 2016 7 / 67 Základní aspekty - co určuje výkon o Latence (zpoždění) • zpracování/přenos signálů uvnitř procesorů či paměti • přenos dat mezi procesorem a pamětí • zpoždění přímo v paměti • Rychlost obnovení (cycle times) • rychlost přepínání obvodů • frekvence obovdů (vnitřní hodiny") • obnovení paměti (dynamická pamětí) • Propustnost (rychlost přenosu jednotky dat) • rychlost přenosu dat na chipu • počet instrukcí per cyklus • rychlost přenosu mezi komponentami a Granularita • hustota na chipu • hustota paměti • velikost úlohy Luděk Matýska (Fl MU) Procesory Jaro 2016 8 / 67 Procesory - CISC Complex Instruction Set Computer • Příklady: • PDP 11, VAX, IBM 370, Intel 80x86, Motorola 680x0, ... • Princip: • Nedělej programem to, co může udělat hardware • Pojem CISC fakticky vytvořen až jako protiklad proti RISC procesorům Luděk Matýska (Fl MU) Procesory Jaro 2016 9 / 67 Důvody existence • Velikost a rychlost paměti • Srovnání s rychlostí samotných procesorů a Přímá podpora překladačů • Adresování (přístup k paměti) Luděk Matýska (Fl MU) Procesory M i kroprogra mová n í CISC - složité instrukce • Řídící část procesoru příliš rozsáhlá • Mikroinstrukce: Dekompozice na jednodušší instrukce • Složitá instrukce == mikroprogram Jednodušší návrh hardware • Instrukce jsou emulovány Je možno „snadno" změnit instrukční sadu konkrétního počítače =>* rodina počítačů (IBM 360, 370, VAX, ...) Nevýhody: příliš složité instrukce, stále složitější analýza instrukcí, zátěž zpětné kompatibility (v rámci rodiny) Luděk Matýska (Fl MU) Procesory Jaro 2016 11 / Zvyšovaní výkonu 9 Rychlost hodin udává výkon procesoru • Omezeno aktuálními technologickými možnostmi • Nelze neomezeně zvyšovat • Závislosti mezi komponentami • Rychlost šíření signálu • Řešení: paralelizace procesů Luděk Matýska (Fl MU) Procesory Jaro 2016 12 / 67 Pipelining Překrývání instrukcí v různých fázích rozpracovanosti instrukce — Tři základní oblasti: O Zpracování instrukcí O Přístupy k paměti O Výpočty v pohyblivé řádové čárce výsledky Luděk Matýska (Fl MU) Procesory Jaro 2016 Pipelining II Běžný rozklad instrukcí (pětiúrovňový pipelining): Instruction Fetch instrukce je načtena z paměti Instruction Decode instrukce je rozeznána (dekódována) Operand Fetch jsou připraveny operandy (načteny z registrů a/nebo paměti) Execute instrukce je provedena Writeback výsledky jsou zapsány zpět (do registrů a/nebo paměti) Jednotlivé instrukce jsou zpracovávány paralelně, s posunem o jednu fázi pipeline. Luděk Matýska (Fl MU) Procesory Jaro 2016 14 / Pipelining a pamět „Neviditelný" pipelining • Předsunutí čtení (zápisu) z (do) paměti před vlastní instrukci pracující s daty „Viditelné" pipelines • Explicitní instrukce, s přesně definovaným počtem cyklů do dokončení. • Např. Intel 80860 Luděk Matýska (Fl MU) Procesory Jaro 2016 15 / 67 Procesory - RISC Reduced Instruction Set Computer • První RISC: CDC 6600 (Seymour Cray) • První polovina 60. let (1964) Explicitní RISC koncept představují osmdesátá léta • Podmínky vzniku RISC systémů • Zavedení vyrovnávacích pamětí (cache) • Dramatický pokles ceny a vzrůst velikosti hlavních pamětí • Lepší pipelining • Kvalitně optimalizující překladače Luděk Matýska (Fl MU) Procesory Jaro 2016 16 / 67 RISC podmínky II 9 Rychlost přístupu k paměti přestala být (hlavním) úzkým místem • vužití vyrovnávacích pamětí (cache) • využití interních registrů (méně přímých přístupů do paměti) • Velikost programu přestala být podstatná (i rozsáhlé programy se snadno vejdou do paměti) • Problém: zadržení (stall) při čekání na výsledek předchozí instrukce (v CISC příliš složité vazby) • Není třeba složitých instrukcí (naopak); čitelnost assembleru přestává být podstatná Luděk Matýska (Fl MU) Procesory Jaro 2016 17 / Charakteristiky RISC • Jednotná délka instrukcí • Pečlivý výběr skutečně používaných instrukcí • Jednoduché adresní módy • Architektura Load/Store • Dostatek registrů • Odložené" skoky (delayed branches) • Příklady: • Na začátku předchůdci MIPS (Stanford) a SUN SPARC (UoC, Berkeley) architektur • IBM s její Power Architecture (dnes PowerPC a POWER7) • HP s PA-RISC • DEC Alpha • Intel I860 a i960 či Motorola 88000 • ARC, ARM, ... Luděk Matýska (Fl MU) Procesory Jaro 2016 18 / 67 RISC - pokročilý návrh a Ideál RISC první generace: • Jedna instrukce každý tik hodin • Dnešní realita: • Více jak jedna instrukce na tik Luděk Matýska (Fl MU) Procesory Nové vlastnosti Superskalární Superpipeline (Velmi) dlouhé instrukce ((Very) Long Instruction Word, (V)LIW) Luděk Matýska (Fl MU) Procesory Jaro 2016 20 / 67 Superskalární procesory Vícenásobné procesní jednotky • Aritmetické (ALU), Floating point (FPU) a další Příklady: • RS/6000, SuperSPARC a vyšší, Motorola 88110, HP PA 7100 a vyšší, DEC Alpha, MIPS R8000 a vyšší, Intel Pentium, IBM P4, P5 Luděk Matýska (Fl MU) Procesory Jaro 2016 21 / 67 Superskalární procesory - vlastnosti • Paralelismus v hardware • Sekvenční programy • Automatická11 paralelizace technickými prostředky • Současné načtení více instrukcí • Instrukce MADD (Multiply Add) • Operace X*Y+Z Procesory Jaro 2016 22 / 67 Superpipeline • Další zjednodušení obvodů • Rozsáhlejší dekompozice pipeline • Rychlejší provádění jednotlivých částí • Výsledkem rychlejší výpočet • Jiná forma paralelismu • Nazývány též hluboké (deep) pipelines Luděk Matýska (Fl MU) Procesory Jaro 2016 23 / 67 VLIW • Obdoba superskalárních (mnoho jednotek) • Paralelizace pod kontrolou překladače • nárůst složitosti překladačů 9 zjednodušený hardware dovoluje vyšší výkon • rozhodnutí které instrukce smí běžet paralelně je na překladači • Výhody: • Jednodušší instrukce • Není třeba složitý řídící hardware • Potenciál pro nižší spotřebu energie • Příklady: • Intel Í860 • triMedia media processors • C6000 DSP family (Texas Instruments) • Itanium IA-64 EPIC (částečně) • Crusoe procesory firmy Transmeta • Ruské superpočítače Elbrus Luděk Matýska (Fl MU) Procesory Jaro 2016 24 / 67 RISC - další rysy • Obcházení registrů • Přejmenování registrů • Skoky • nulování operace 9 podmíněné přiřazeni (a = b