2 - Katedra Informatyki > Home
Transkrypt
2 - Katedra Informatyki > Home
Architektura systemów komputerowych Wydajność systemów komputerowych Cezary Bolek Katedra Informatyki Plan wykładu Wydajność systemu komputerowego Cykl zegarowy Liczba cykli zegarowych na instrukcję Wyznaczanie wydajności Zwiększenie wydajności Miary wydajności MIPS Wady SPEC Architektura systemów komputerowych Cezary Bolek 2 Wydajność systemu komputerowego Rzeczywisty czas wykonania zadania Liczy się wszystko: czas oczekiwania, operacje we/wy, obsługa przez system operacyjny PoŜyteczne, lecz mało miarodajne do oceny – brak obiektywizacji Na razie: czas wykonania programu przez CPU Czas potrzebny na realizację instrukcji programu Nie brane pod uwagę czas realizacji operacji we/wy oraz czas obsługi przez OS MoŜe być wyraŜone w sekundach Bądź odniesione do liczby cykli zegarowych Architektura systemów komputerowych Cezary Bolek 3 Cykle zegarowe Cykl zegarowy = okres zegara = 1 / szybkość zegara Cykl 1 Cykl 2 Cykl 3 Szybkość zegara = częstotliwość zegara = cykle na sek. 2 Ghz = 2×109 cykli/sek. Zegar o częstotliwości 2 GHz ma okres = 1/(2×109) = 0.5 ns Często uŜywa się cykle zegarowe w celu przedstawienia czasu wykonywania programu przez CPU. Czas wykonania CPU = Cykle CPU × okres zegara = Architektura systemów komputerowych Cezary Bolek Cykle CPU Szybkość zegara 4 Zwiększenie wydajności Aby zwiększyć wydajność naleŜy: Zmniejszyć liczbę cykli niezbędnych do realizacji programu Zmniejszyć długość cyklu zegarowego (zwiększyć szybkość zegara) Przykład: Program realizujący pewne zadanie w ciągu 10 sekund na komputerze X z zegarem 2 GHz Cel: system komputerowy Y realizujący dane zadanie w ciągu 6 sekund Ale: system Y wymaga o 10% więcej cykli zegarowych Jaka musi być szybkość zegara systemu Y ? Rozwiązanie Liczba cykli systemu X = 10 s. × 2 × 109 cykli/s = 20 × 109 cykli Liczba cykli systemu Y = 1.1 × 20 × 109 = 22 × 109 cykli Szybkość zegara Y = 22 × 109 cykli / 6 s. = 3.67 GHz Architektura systemów komputerowych Cezary Bolek 5 Liczba cykli zegarowych na instrukcję Clock Cycles per Instruction (CPI) RóŜne instrukcje potrzebują róŜnej liczby cykli zegarowych MnoŜenie wymaga więcej cykli niŜ dodawanie Dostęp do pamięci wymaga więcej cykli niŜ dostęp do rejestrów CPI określa średnią liczbę cykli zegarowych na instrukcję I1 1 I2 2 3 I3 4 5 6 I4 I5 7 8 9 I6 CPI = 14/7 = 2 I7 10 11 12 13 14 cykl Zmiana długości cyklu zegarowego często powoduje zmianę liczby cykli dla określonych instrukcji Architektura systemów komputerowych Cezary Bolek 6 Czas wykonania programu Aby wykonać pewien program potrzeba: wykonać określoną liczbę instrukcji określonej liczby cykli zegarowych wynikającą z tego określonego czasu Liczba cykli zegarowych wynika z liczby wykonanych instrukcji: Cykle zegarowe CPU = Liczba instrukcji × CPI Czas wykonywania programu (wydajność): Czas = Liczba instrukcji × CPI × długość cyklu Architektura systemów komputerowych Cezary Bolek 7 Wyznaczanie wydajności ZałoŜenie: dwa systemy o takim samym model programowym jednostki centralnej (ISA), lecz odmiennie zaimplementowane Dla pewnego programu: Komputer A - zegar 4GHz (cykl zegarowy 250ps) oraz CPI=2,0 Komputer B - zegar 2GHz (cykl zegarowy 500ps) oraz CPI=1,2 Wydajność: Obydwa komputery wykonują taką samą liczbę instrukcji – N Czas wykonywania CPU (A) = N × 2,0 × 250 ps = 500 × N ps Czas wykonywania CPU (B) = N × 1,2 × 500 ps = 600 × N ps Komputer A jest szybszy od B: Architektura systemów komputerowych 600 × I 500 × I Cezary Bolek = 1,2 razy 8 Określanie CPI RóŜne klasy instrukcji wykonywane są róŜnej liczbie cykli ZałoŜenie: CPIi = liczba cykli zegarowych dla inst. klasy i C = liczba instrukcji klasy i ∑ (CPI × C ) n ∑ (CPI × C ) i n Cykle CPU = i CPI = i i=1 i=1 i ∑C n i i=1 Projektanci często wyznaczają CPI na podstawie symulacji Architektura systemów komputerowych Cezary Bolek 9 Określanie CPI - przykład Dla określonego zestawu instrukcji procesora MIPS Jaki jest średnie CPI ? Jaki jest średni, procentowy udział kaŜdej klasy instrukcji w czasie wykonywania ? Klasa Częst CPI CPI × Częst % czasu ALU Load Store Branch 50% 20% 10% 20% 1 5 3 2 0,5×1 = 0,5 0,2×5 = 1,0 0,1×3 = 0,3 0,2×2 = 0,4 0,5/2,2 = 23% 1,0/2,2 = 45% 0,3/2,2 = 14% 0,4/2,2 = 18% Średnie CPI = 0,5 + 1,0 + 0,3 + 0,4 = 2,2 Architektura systemów komputerowych Cezary Bolek 10 MIPS jako miara wydajności MIPS: Millions Instructions Per Second, Milion instrukcji na sekundę UŜywana jako miara wydajności systemów komputerowych Szybszy system ⇒ większe MIPS MIPS określa średnią szybkość wykonywania instrukcji MIPS = Instruction Count Execution Time × 106 = Clock Rate CPI × 106 MIPS moŜe określać czas wykonywania Execution Time = Architektura systemów komputerowych Inst Count MIPS × 106 = Inst Count × CPI Clock Rate Cezary Bolek 11 Wady MIPS jako miary wydajności Nie uwzględnia moŜliwości poszczególnych instrukcji Nie moŜna porównywać komputerów z róŜnymi zestawami instrukcji gdyŜ udział poszczególnych instrukcji jest róŜny Współczynnik MIPS dla róŜnych programów na tym samym komputerze jest róŜny Nie moŜna uŜywać tego samego współczynnika MIPS dla wszystkich programów MIPS moŜe maleć wraz ze wzrostem rzeczywistej wydajności WyŜszy współczynnik MIPS nie zawsze musi oznaczać wyŜszą wydajność MIPS nie uwzględnia architektury całego komputera, odnosi się tylko do CPU Architektura systemów komputerowych Cezary Bolek 12 MIPS – przykład 1/2 Dwa róŜne kompilatory zostały uŜyte do wygenerowania kodu dla komputera taktowanego częstotliwością 4GHz. UŜyte zostały instrukcje naleŜące do trzech klas: A, B i C, które realizowane są w odpowiednio: 1, 2 i 3 cyklach zegarowych. Pierwszy kompilator wygenerował kod, który podczas realizacji wykonuje: 5 miliardów instrukcji klasy A, 1 miliard instrukcji klasy B i 1 miliard instrukcji klasy C Drugi: 10 miliardów instrukcji klasy A, 1 miliard instrukcji klasy B i 1 miliard instrukcji klasy C Który kompilator generuje wyŜszy współczynnik MIPS ? Który kompilator generuje szybciej wykonywany kod ? Architektura systemów komputerowych Cezary Bolek 13 MIPS – przykład 2/2 Liczba cykli CPU dla obydwu kodów: Liczba cykli CPU (kompilator 1) = (5×1 + 1×2 + 1×3)×109 = 10×109 Liczba cykli CPU (kompilator 2) = (10×1 + 1×2 + 1×3)×109 = 15×109 Czas wykonywania dla obydwu kodów: Czas wykonywania (kompilator 1) = 10×109 cykli / 4×109 Hz = 2,5 s. Czas wykonywania (kompilator 2) = 15×109 cykli / 4×109 Hz = 3,75 s. Kompilator 1 generuje szybszy kod (krótszy czas wykonyw.) Współczynnik MIPS dla obydwu kompilaotrów: MIPS = Liczba instrukcji / (Czas wykonywania × 106) MIPS (kompilator 1) = (5+1+1) × 109 / (2,5 × 106) = 2800 MIPS (kompilator 1) = (10+1+1) × 109 / (3,75 × 106) = 3200 Kod wygenerowany przez kompilator 2 charakteryzuje się wyŜszym współczynnikiem MIPS Architektura systemów komputerowych Cezary Bolek 14 Miary wydajności Wydajność najlepiej jest ocenić w kontekście szybkości działania rzeczywistych aplikacji Programy generujące typowe obciąŜenie Reprezentujące klasy typowych zastosowań Kompilatory, edytory, CAD/CAM, przetwarzanie grafiki SPEC (System Performance Evaluation Corporation) załoŜona w 1988 r. organizacja z siedzibą w Warrenton, Virginia, zajmująca się ustanawianiem standardowych benchmarków oceniających wydajność komputerów. Jej pierwszym testem wydajności był SPECmark badający CPU, w którym jednostką był ekwiwalent wydajności maszyny VAX 11/780. ChociaŜ testy SPEC w dalszym ciągu badają CPU, organizacja opracowała teŜ inne testy, np. do oceny podsystemu graficznego czy rozmaitych kategorii aplikacji. Architektura systemów komputerowych Cezary Bolek 15 SPEC CPU2006 12 Integer benchmarks (C and C++) 14 FP benchmarks (Fortran 77, 90, and C) Name Description Name Description gzip vpr gcc mcf crafty parser eon perlbmk gap vortex bzip2 twolf Compression FPGA placement and routing GNU C compiler Combinatorial optimization Chess program Word processing program Computer visualization Perl application Group theory, interpreter Object-oriented database Compression Place and route simulator wupwise swim mgrid applu mesa galgel art equake facerec ammp lucas fma3d sixtrack apsi Quantum chromodynamics Shallow water model Multigrid solver in 3D potential field Partial differential equation Three-dimensional graphics library Computational fluid dynamics Neural networks image recognition Seismic wave propagation simulation Image recognition of faces Computational chemistry Primality testing Crash simulation using finite elements High-energy nuclear physics Meteorology: pollutant distribution Miarą jest rzeczywisty czas wykonania odniesiony do systemu wzorcowego Architektura systemów komputerowych Cezary Bolek 16 SPECmark – przykładowe zestawy komputerowe System Dell Precision M90 (Intel T7600, 2.33 GHz) CINT2006 CFP2006 Rdze nie Proce sory Rdzeni/ proc. 23 19.5 2 1 2 Intel Core 2 Duo T7600 2333 2 GB (2x1 GB 667 MHz CL5 DDR2 SDRAM) 3000 4 GB (4x1 GB 800 MHz ECC CL6 DDR2) Procesor Taktowanie proc. [GHz] Pamięć Dell Precision T3400 (Intel E6850, 3.00 GHz) 33.7 28.8 2 1 2 Intel Core 2 Duo E6850 Dell Precision T3400 (Intel E8500, 3.16 GHz) 36.8 30.5 2 1 2 Intel Core 2 Duo E8500 3166 4 GB (4x1 GB 800 MHz ECC CL6 DDR2) Dell Precision 690 (Intel Xeon 5160, 3.00 GHz) 53.2 42.3 4 2 2 Intel Xeon 5160 3000 8 GB (8x1 GB 667 MHz ECC CL5 DDR2 FBDIMM) XPS M1710 (Intel Core 2 Duo T7600) 23.9 19.9 2 1 2 Intel Core 2 Duo T7600 2333 2 GB (2x1GB Hynix DDR2-667 CL5) Architektura systemów komputerowych Cezary Bolek 17 Koniec Architektura systemów komputerowych Cezary Bolek 1 8