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
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 = / szybkość zegara Cykl Cykl Cykl 3 Szybkość zegara = częstotliwość zegara = cykle na sek. Ghz = 0 9 cykli/sek. Zegar o częstotliwości GHz ma okres = /( 0 9 ) = 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 Cykle CPU = Szybkość zegara Architektura systemów komputerowych Cezary Bolek 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 0 sekund na komputerze X z zegarem GHz Cel: system komputerowy Y realizujący dane zadanie w ciągu 6 sekund Ale: system Y wymaga o 0% więcej cykli zegarowych Jaka musi być szybkość zegara systemu Y? Rozwiązanie Liczba cykli systemu X = 0 s. 0 9 cykli/s = 0 0 9 cykli Liczba cykli systemu Y =. 0 0 9 = 0 9 cykli Szybkość zegara Y = 0 9 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ę I I I3 I4 I5 I6 I7 CPI = 4/7 = 3 4 5 6 7 8 9 0 3 4 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 50ps) oraz CPI=,0 Komputer B - zegar GHz (cykl zegarowy 500ps) oraz CPI=, Wydajność: Obydwa komputery wykonują taką samą liczbę instrukcji N Czas wykonywania CPU (A) = N,0 50 ps = 500 N ps Czas wykonywania CPU (B) = N, 500 ps = 600 N ps Komputer A jest szybszy od B: 600 I 500 I =, razy Architektura systemów komputerowych Cezary Bolek 8
Określanie CPI RóŜne klasy instrukcji wykonywane są róŝnej liczbie cykli ZałoŜenie: CPI i = liczba cykli zegarowych dla inst. klasy i C = liczba instrukcji klasy i n Cykle CPU = (CPI i C i ) CPI = i = n i = (CPI i C i ) n C i i = 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 50% 0,5 = 0,5 0,5/, = 3% Load 0% 5 0, 5 =,0,0/, = 45% Store 0% 3 0, 3 = 0,3 0,3/, = 4% Branch 0% 0, = 0,4 0,4/, = 8% Średnie CPI = 0,5 +,0 + 0,3 + 0,4 =, Architektura systemów komputerowych Cezary Bolek 0
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 Instruction Count MIPS = = Execution Time 0 6 Clock Rate CPI 0 6 MIPS moŝe określać czas wykonywania Inst Count Execution Time = = MIPS 0 6 Inst Count CPI Clock Rate Architektura systemów komputerowych Cezary Bolek 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
MIPS przykład / 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:, i 3 cyklach zegarowych. Pierwszy kompilator wygenerował kod, który podczas realizacji wykonuje: 5 miliardów instrukcji klasy A, miliard instrukcji klasy B i miliard instrukcji klasy C Drugi: 0 miliardów instrukcji klasy A, miliard instrukcji klasy B i 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 3 MIPS przykład / Liczba cykli CPU dla obydwu kodów: Liczba cykli CPU (kompilator ) = (5 + + 3) 0 9 = 0 0 9 Liczba cykli CPU (kompilator ) = (0 + + 3) 0 9 = 5 0 9 Czas wykonywania dla obydwu kodów: Czas wykonywania (kompilator ) = 0 0 9 cykli / 4 0 9 Hz =,5 s. Czas wykonywania (kompilator ) = 5 0 9 cykli / 4 0 9 Hz = 3,75 s. Kompilator generuje szybszy kod (krótszy czas wykonyw.) Współczynnik MIPS dla obydwu kompilaotrów: MIPS = Liczba instrukcji / (Czas wykonywania 0 6 ) MIPS (kompilator ) = (5++) 0 9 / (,5 0 6 ) = 800 MIPS (kompilator ) = (0++) 0 9 / (3,75 0 6 ) = 300 Kod wygenerowany przez kompilator charakteryzuje się wyŝszym współczynnikiem MIPS Architektura systemów komputerowych Cezary Bolek 4
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 988 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 /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 5 SPEC CPU006 Integer benchmarks (C and C++) Name Description gzip Compression vpr FPGA placement and routing gcc GNU C compiler mcf Combinatorial optimization crafty Chess program parser Word processing program eon Computer visualization perlbmk Perl application gap Group theory, interpreter vortex Object-oriented database bzip Compression twolf Place and route simulator 4 FP benchmarks (Fortran 77, 90, and C) Name Description wupwise Quantum chromodynamics swim Shallow water model mgrid Multigrid solver in 3D potential field applu Partial differential equation mesa Three-dimensional graphics library galgel Computational fluid dynamics art Neural networks image recognition equake Seismic wave propagation simulation facerec Image recognition of faces ammp Computational chemistry lucas Primality testing fma3d Crash simulation using finite elements sixtrack High-energy nuclear physics apsi Meteorology: pollutant distribution Miarą jest rzeczywisty czas wykonania odniesiony do systemu wzorcowego Architektura systemów komputerowych Cezary Bolek 6
SPECmark przykładowe zestawy komputerowe System CINT006 CFP006 Rdze nie Proce sory Rdzeni/ proc. Procesor Taktowanie proc. [GHz] Pamięć Dell Precision M90 ( T7600,.33 GHz) 3 9.5 Core Duo T7600 333 GB (x GB 667 MHz CL5 DDR SDRAM) Dell Precision T3400 ( E6850, 3.00 GHz) 33.7 8.8 Core Duo E6850 3000 4 GB (4x GB 800 MHz ECC CL6 DDR) Dell Precision T3400 ( E8500, 3.6 GHz) 36.8 30.5 Core Duo E8500 366 4 GB (4x GB 800 MHz ECC CL6 DDR) Dell Precision 690 ( Xeon 560, 3.00 GHz) 53. 4.3 4 Xeon 560 3000 8 GB (8x GB 667 MHz ECC CL5 DDR FB- DIMM) XPS M70 ( Core Duo T7600) 3.9 9.9 Core Duo T7600 333 GB (xgb Hynix DDR-667 CL5) Architektura systemów komputerowych Cezary Bolek 7 Koniec Architektura systemów komputerowych Cezary Bolek 8