C2115 Praktický úvod do superpočítání -1-XIII. lekce / Modul 1 C2115 Praktický úvod do superpočítání Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno XIII. lekce / Modul 1 Revize 1 C2115 Praktický úvod do superpočítání -2-XIII. lekce / Modul 1 Architektura počítače Navyšování výpočetního výkonu C2115 Praktický úvod do superpočítání -3-XIII. lekce / Modul 1 CPU Procesor též CPU (anglicky Central Processing Unit) je základní součástí počítače; jde o velmi složitý sekvenční obvod, který vykonává strojový kód uložený v operační paměti počítače. Strojový kód je složen z jednotlivých strojových instrukcí počítačových programů nahraných do operační paměti. www.wikipedia.org CPU řadič ALU ALU (arithmetic and logic unit), vykonává aritmetické operace, vyhodnocuje podmínky načítá strojové instrukce a data a připravuje jejich zpracování v ALU sekvenční zpracovávání strojových instrukcí je řízeno vnitřním hodinovým taktem Jakým způsobem CPU (ALU) pracuje s číselnými hodnotami? C2115 Praktický úvod do superpočítání -4-XIII. lekce / Modul 1 Zvyšování výpočetního výkonu Strategie: • zvyšování frekvence – fyzikální limitace (přehřívání), řešení: miniaturizace, snižování napětí • navyšování počtu ALUs a jejich specializace (out-of-order execution, speculative execution, vector instructions) – účinnost dle vykonávaného kódu • sdílení ALU více instrukčními řadiči (vlákna, hyperthreading) – účinnost dle vykonávaného kódu • více jaderné procesory – účinnost dle vykonávaného kódu hyperthreading multi-core processor optimalizace software nebo nové algoritmy jsou zapotřebí k zužitkování výpočetního výkonu C2115 Praktický úvod do superpočítání -5-XIII. lekce / Modul 1 Symetrický multiprocesing (SMP) processor (package, socket, circuit) CPU cores interconnect (vendor specific) RAM RAM computer Symetrický multiprocesing (Symmetric multiprocessing) představuje systémy obsahující identické CPU se sdílenou pamětí. bus RAM CPU#1 CPU#2 processor (package, socket, circuit) Využití více CPU navyšuje výpočetní výkon systému. nové algoritmy jsou zapotřebí k zužitkování výpočetního výkonu C2115 Praktický úvod do superpočítání -6-XIII. lekce / Modul 1 Vyrovnávací paměť CPU (CPU Cache) memory L3 L2 L1 L1 CPU Vyrovnávací paměť značně navyšuje účinnost přístupu CPU do centrální paměti (latenci a propustnost). processor PU = processing unit (=control unit)CPU core C2115 Praktický úvod do superpočítání -7-XIII. lekce / Modul 1 Vyrovnávací paměť CPU (CPU Cache) dvě výpočetní jednotky (processing units) na CPU jádro (hyperthreading) L1i – instrukční vyrovnávací paměť L1d – datová vyrovnávací paměť L2, L3 – ostatní vyrovnávací paměti Rychlost: L1d,L2d >> L2 > L3 C2115 Praktický úvod do superpočítání -8-XIII. lekce / Modul 1 NUMA (Nonuniform Memory Access ) cache memory driver RAM#3 cache memory driver RAM#1 cache memory driver cache memory driver RAM#4RAM#2 NUMA links (vendor specific interconnect) multi-core processor #3 multi-core processor #1 multi-core processor #2 multi-core processor #4 Srovnej komunikaci mezi CPU#1 <> RAM#1 a PCPU#1 <> RAM#4. NUMA spoje mohou mít rozdílnou topologii pro urychlení přístup CPU do centrální paměti. C2115 Praktický úvod do superpočítání -9-XIII. lekce / Modul 1 NUMA (Nonuniform Memory Access ) cache memory driver RAM#3 cache memory driver RAM#1 cache memory driver cache memory driver RAM#4RAM#2 NUMA links (vendor specific interconnect) multi-core processor #3 multi-core processor #1 multi-core processor #2 multi-core processor #4 rychlejší pomalejší Srovnej komunikaci mezi CPU#1 <> RAM#1 a PCPU#1 <> RAM#4. NUMA spoje mohou mít rozdílnou topologii pro urychlení přístup CPU do centrální paměti. C2115 Praktický úvod do superpočítání -10-XIII. lekce / Modul 1 Cvičení M1.1 1. Určete typ a parametry CPU na vaší pracovní stanici (příkaz lscpu, soubor /proc/cpus). 2. Určete typ NUMA topologie na vaší pracovní stanici (příkaz lstopo, module hwloc). 3. Podporuje CPU na vaši pracovní stanici hyperthreading? 4. Co je to proces? 5. Jaký je rozdíl mezi CPU a datově intenzivní úlohou? 6. Paralelní úloha je datově intenzivní, přičemž každý její proces pracuje s vlastními daty. Která s níže uvedených strategií povede k lepšímu využití HW prostředků? 1. Zdvojnásobení počtu CPU jader na jednom fyzickém CPU. 2. Zdvojnásobení počtu fyzických CPU. Užitečné příkazy: $ lscpu $ lstopo # module add hwloc $ cat /proc/cpuinfo $ ams-host # Infinity