Miary i pomiary wydajności 1
Jak mierzyć wydajność systemów komputerowych? Cel: określić jak sprawnie (szybko) komputer będzie realizował wyznaczone zadania. 2
Miary wydajności komputerów Miary oparte na charakterystykach sprzętu Częstotliwość zegara Drożność procesora Przepustowość magistrali pamięć procesor MIPS, MFLOPS (teoretyczne) nie uwzględniają złożoności działania komputerów dla najważniejszych i najpopularniejszych programów użytkowych 3
Miary wydajności komputerów Miary oparte na parametrach wykonania specjalnie zaprojektowanych programów wzorcowych benchmarków komputerowych Pożądane cechy programów wzorcowych: Reprezentatywność (dla danej klasy zastosowań) Przenośność Łatwość dokonania pomiarów Adekwatność miary związanej z benchmarkiem 4
Rodzaje programów wzorcowych Własne: najlepsze, lecz wymagają osobistego testowania, co z kolei wymaga czasu, pieniędzy i dostępu do systemów Nieformalne: opracowywane przez grupy użytkowników (np. LINPACK, STREAM) Przemysłowe: utrzymywane przez organizacje (np. SPEC, TPC), firmy i instytucje Podział ze względu na charakter zadań testowych: Algorytmy np. LINPACK Aplikacje np. testy SPEC Specyfikacje np. testy TPC 5
LINPACK Zadanie testowe: rozwiązanie układu równań liniowych Miary: DP: ilość operacji zmiennoprzecinkowych na sekundę (MFLOPS) w trakcie rozwiązania zadania 100x100 TPP (Toward Peak Performance): jw. dla zadania 1000x1000 z możliwymi modyfikacjami algorytmu Przykłady (komputery jednoprocesorowe 2006): Intel Pentium Woodcrest (3GHz) DP=3018, TPP=6542, Teor.=12000 (55%) NEC SX 8/1 (2.0GHz) DP=2177, TPP=14960, Teor.=16000 (93.5%) hp rx2020 Itanium 2 (1.6GHz) DP=1761, TPP=5603, Teor.=6400 (87%) Cray 1 (0.08 GHz) DP=12, TPP=110, Teor.=160 (69%) IBM PC XT, 8086 (0.005 GHz) DP = 0.0069 www.netlib.org/performance, performance.netlib.org 6
LINPACK Parallel Podobnie jak LINPACK, lecz rozmiar układu równań i metoda rozwiązania dowolne. Przykłady (z listy Top500 2006): System Nproc Nmax Rmax Cray, Red Storm, Opteron 26544 1700000 101400 IBM, eserver pseries p5 12208 1383600 75760 IBM, BlueGene/L 131072 1769471 280600 Nproc liczba procesorów Nmax rozmiar układu dla którego dokonano pomiaru (największego układu rozwiązanego na maszynie) Rmax wydajność w Mflop/s przy rozwiązaniu układu 7
SPEC Standard Performance Evaluation Corporation Cel: Ustanowienie, utrzymywanie i wspieranie standardowego zbioru stosownych wzorców i miar do oceny wydajności nowoczesnych systemów komputerowych. Konsorcjum producentów sprzętu i oprogramowania, konsultantów, użytkowników i naukowców Wzorce testujące wybrane komponenty systemów (procesor, pamięć, układ we/wy, sieć, grafika, system operacyjny, kompilatory, serwery aplikacji) Obiektywność i wiarygodność wzorców i miar ścisłe reguły Popularność także wśród producentów; duża baza danych www.spec.org 8
9
SPEC CPU2006 Test procesora, systemu pamięci i kompilatora Pomiar szybkości i przepustowości 12 zadań bez obliczeń zmiennoprzecinkowych (m.in. kompilatory, interpretery, przetwarzanie tekstu podstawa miary CINT2006 18 zadań z obliczeniami zmiennoprzecinkowymi (głównie symulacje zagadnień fizycznych, m.in. za pomocą MES) podstawa miary CFP2006 Języki: C, C++, Fortran 10
SPEC CPU2006 Miary: średnia geometryczna stosunków czasu wykonania programów do odpowiednich czasów odniesienia Szybkość komputerów: SPECint2006: agresywna optymalizacja SPECint_base2006: zachowawcza optymalizacja Przepustowość komputerów równoległych SPECint_rate2006: agresywna optymaliazcja SPECint_rate_base2006: zachowawcza optymalizacja (podobnie cztery miary dla CFP2006: SPECfp2006, SPECfp_base2006, SPECfp_rate2006, SPECfp_rate_base2006) 11
12
13
SPEC CPU2006 przykładowe wyniki Procesor SPECint SPECint_base gcc gcc_base Xeon 5160, 3GHz 18.1 17.5 13.7 13.2 Itanium2, 1.6 GHz 15.2 14.0 11.4 10.5 Opteron, 2.6 GHz 12.9 11.6 11.2 9.3 Procesor SPECfp SPECfp_base bwave bwave_base Xeon 5160, 3GHz 15.6 15.3 19.1 19.0 Itanium2, 1.6 GHz 17.7 16.9 38.5 38.5 Opteron, 2.6 GHz 15.4 12.5 55.6 17.5 14
Inne wzorce SPEC SPECapc, SPECviewperf testy grafiki dla procedur bibliotecznych OpenGL i konkretnych programów (3ds Max, Maya, Solid Edge, Solid Works i inne) SPEC HPC2002, SPEC OMP2001, SPEC MPI2006 testy komputerów równoległych (drugi dla środowiska OpenMP; ostatni, dla środowiska MPI, jeszcze w fazie organizacji) SPECjAppServer2004, SPEC JBB2005, SPEC JVM98 testy komputerów jako serwerów i klientów środowiska Javy SPEC MAIL2001 test komputerów jako serwerów poczty elektronicznej SPEC SFS97 test komputerów jako serwerów plików SPEC WEB2005 testy komputerów jako serwerów WWW SPEC POWER test wydajności energetycznej 15
TPC Transaction Processing Performance Council "TPC definiuje wzorce dla przetwarzania transakcji i baz danych oraz dostarcza przemysłowi wiarygodne wyniki" Symulacje rzeczywistych środowisk przemysłowych Określanie warunków wykonania zadania (specyfikacji) zamiast konkretnych programów i baz danych Wszechstronny pomiar systemów komputerowych: interfejs użytkownika, układy we/wy, systemy dyskowe, układy komunikacji, zabezpieczenia systemu 16
17
Wzorce TPC TPC C wzorzec dla bezpośredniego przetwarzania transakcji. Grupa użytkowników wykonuje typowe transakcje względem bazy danych w środowisku przetwarzania zamówień. Miara: ilość transakcji nowych zamówień na minutę (tpmc) i koszt transakcji ($/tpmc) koszt uwzględnia zakup i pięcioletnią eksploatację systemu TPC H wzorzec dla systemów podejmowania decyzji. Miara: ilość zapytań na godzinę (QphH@Size) TPC App wzorzec dla serwerów aplikacji i serwerów WWW inne (wiele już przestarzałych) 18
STREAM STREAM jest wzorcem syntetycznym zaproponowanym przez J.D.McCalpina, który mimo swojej prostoty został powszechnie zaakceptowany i jest stosowany jako istotna miara wydajności układów pamięć procesor STREAM mierzy czas działania niezwykle długich pętli zawierających w pojedynczej operacji niezwykle proste operacje na pojedynczych elementach długich tablic Ze względu na prostotę operacji czas działania procesora w małym stopniu determinuje czas realizacji pętli, jest on praktycznie w całości określany przez szybkość łączy komunikacyjnych pamięć procesor 19
STREAM STREAM mierzy czas realizacji czterech pętli, wykonujących kolejno: kopiowanie wektora, kopiowanie ze skalowaniem wektora, dodawanie wektorów i operację AXPY (zwaną w STREAMie triadą) Czas realizacji pętli wraz ze znaną liczbą odniesień do pamięci pozwala na oszacowanie przepustowości pamięci w MB/s Przepustowość zakłada optymalne wykorzystanie hierarchii pamięci, dla którego każda liczba pobrana do pamięci podręcznej jest wykorzystywana w obliczeniach (obliczenia zakładają, że każda liczba jest potrzebna tylko raz, więc nie da się dalej optymalizować algorytmu) 20
STREAM2 Extensions of the STREAM benchmark for the future are currently being considered. The main issues that need to be addressed are: * Memory Hierarchies: STREAM needs to be extended to measure bandwidths at each level of the memory hierarchy. * Latency: Bandwidth and Latency are a powerful pair of descriptors for memory systems Latency measurements should be added. * Access Patterns: Currently STREAM measures only unit stride performance. This is easy and sensible, but non unit stride and irregular/indirect performance are an important piece of the memory system performance picture. * Locality: Many new machines are being developed with physically distributed main memory. STREAM may be enhanced to measure bandwidth/latency between "nodes" of distributed shared memory systems. A "second generation" STREAM benchmark (STREAM2) is being evaluated, with the source code and some results available at the STREAM2 page. STREAM2 emphases measurements across all levels of the memory hierarchy, and tries to focus on the difference between read and write performance in memory systems. 21
22
Inne wzorce Dhrystone, Whetstone wczesne wzorce syntetyczne (nie oparte o rzeczywiste programy użytkowe) NAS: równoległy wzorzec NASA, jądra programów science.nas.nasa.gov/software/npb Wzorce producentów oprogramowania SAP, BAAN Wzorce ukierunkowane na grafikę 3DMARK Zestawy programów diagnostycznych i mierzących różne aspekty wydajności SANDRA... 23