PA039: Architektura superpočítačů a náročné výpočty Luděk Matýska Fakulta informatiky MU Jaro 2014 Luděk Matýska (Fl MU) Jaro 2014 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) Jaro 2014 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, .. .) a 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) Jaro 2014 3 / 67 High Performance Computing II • Procesory • CISC a RISC • Vektorové procesory • Streaming procesory (např. GPU) • Speciální systémy FPGA, .. .). • Paměti - výkon se zpožďuje za procesory Luděk Matýska (Fl MU) Jaro 2014 4 / 67 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) Jaro 2014 5 / 67 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 o maximalizace „investice" » celková propustnost systému Luděk Matýska (Fl MU) Jaro 2014 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 2014 Luděk Matýska (Fl MU) Proceson Jaro 2014 7 / 67 Základní aspekty - co určuje výkon • 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) a Propustnost (rychlost přenosu jednotky dat) • rychlost přenosu dat na chipu • počet instrukcí per cyklus • rychlost přenosu mezi komponentami • Granularita • hustota na chipu • hustota paměti • velikost úlohy Luděk Matýska (Fl MU) Proceson Jaro 2014 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) Proceson Jaro 2014 9 / 67 Důvody existence Velikost a rychlost paměti o Srovnání s rychlostí samotných procesorů Přímá podpora překladačů Adresování (přístup k paměti) Luděk Matýska (Fl MU) Jaro 2014 10 / 67 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) Proceson Jaro 2014 11 / 67 Zvyšovaní výkonu • 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) Proceson Jaro 2014 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) Proceson Jaro 2014 13 / 67 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) Proceson Jaro 2014 14 / 67 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) Proceson Jaro 2014 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 a 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) Proceson Jaro 2014 16 / 67 RISC podmínky II • 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) Proceson Jaro 2014 17 / 67 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) Proceson Jaro 2014 18 / 67 RISC - pokročilý návrh • 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) 19 / 67 Nové vlastnosti • Superskalární • Superpipeline • (Velmi) dlouhé instrukce ((Very) Long Instruction Word, (V)LIW) Luděk Matýska (Fl MU) Proceson Jaro 2014 20 / 67 S u perská lá 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) Proceson Jaro 2014 21 / 67 Superskalární procesory - vlastnosti • Paralelismus v hardware • Sekvenční programy • „Automatická" paralelizace technickými prostředky • Současné načtení více instrukcí • Instrukce MADD (Multiply Add) o Operace X*Y+Z Luděk Matýska (Fl MU) Proceson Jaro 2014 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 2014 23 / 67 VLIW • Obdoba superskalárních (mnoho jednotek) • Paralelizace pod kontrolou překladače o nárůst složitosti překladačů • 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 a 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) Proceson Jaro 2014 24 / 67 RISC - další rysy • Obcházení registrů • Přejmenování registrů • Skoky • nulování operace • podmíněné přiřazeni (a = b 64B L2 to L1 data bus • 2x data cache to execution dataflow Enhanced Prefetch • Instruction speculation awareness • Data prefetch depth awareness • Adaptive bandwidth awareness • Topology awareness < Performance vs. POWER7 ~1.6x Single Thread ~2x Max SMT Luděk Matýska (Fl MU) 64 / 67 Víceprocesorové systémy o Frekvenci už nelze příliš zvyšovat o Zvyšování výkonu zvýšením počtu jader o Propojení více procesorů (socketů) Víceprocesorové systémy • Míra škálování (počet socketů) • AMD: 4, Intel 8, IBM 32 • vlastní řešení HP (Intel) 8, Bull 16, SGI ~100 • Distribuovaná pamět • centralizovaná by byla úzkým místem • N UMA (Non-Uniform Memory Architecture) Luděk Matýska (Fl MU) Proceson Jaro 2014 66 / 67 Víceprocesorové systémy • Koherence cache • přečtu, co jsem sám zapsal • přečtu, co zapsal dříve někdo jiný o pořadí zápisů vidí všichni stejné • Stavy řádků cache • uncached, shared, modified, .. . • Protokoly udržování koherence • adresářové • snooping Luděk Matýska (Fl MU) 67 / 67