Miary i pomiary wydajności Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Jak mierzyć wydajność systemów komputerowych? Cel: określić jak sprawnie (szybko) komputer będzie realizował wyznaczone zadania. Krzysztof Banaś Obliczenia Wysokiej Wydajności 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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 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: Pożądane cechy programów wzorcowych: Reprezentatywność (dla danej klasy zastosowań) Przenośność Łatwość dokonania pomiarów Adekwatność miary związanej z benchmarkiem Krzysztof Banaś Obliczenia Wysokiej Wydajności 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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 6
LINPACK Parallel Podobnie jak LINPACK, lecz rozmiar układu równań i metoda rozwiązania dowolne. Przykłady (z listy Top500-2006): System N proc N max R max IBM, BlueGene/L 131072 1769471 280600 Cray, Red Storm, Opteron 26544 1700000 101400 IBM, eserver pseries p5 12208 1383600 75760 N proc - liczba procesorów N max - rozmiar układu dla którego dokonano pomiaru (największego układu rozwiązanego na maszynie) R max - wydajność w Mflop/s przy rozwiązaniu układu Krzysztof Banaś Obliczenia Wysokiej Wydajności 7
Lista Top 500 Krzysztof Banaś Obliczenia Wysokiej Wydajności 8
Top 500 - efektywność Krzysztof Banaś Obliczenia Wysokiej Wydajności 9
Top 500 wydajność na jednostkę energii Krzysztof Banaś Obliczenia Wysokiej Wydajności 10
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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 11
STREAM STREAM mierzy czas realizacji czterech pętli, wykonujących kolejno: kopiowanie wektora, kopiowanie ze skalowaniem wektora, dodawanie wektorów i operację AXPY (triada) Czas realizacji pętli wraz ze znaną liczbą odniesień do pamięci pozwala na oszacowanie przepustowości pamięci w GB/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) Na podstawie przepustowości pamięci można obliczyć średni czas dostępu do pojedynczej danej w teście: średni czas dostępu [ns] = rozmiar danych [B] / przepustowość [GB/s] Krzysztof Banaś Obliczenia Wysokiej Wydajności 12
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. Krzysztof Banaś Obliczenia Wysokiej Wydajności 13
Krzysztof Banaś Obliczenia Wysokiej Wydajności 14
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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 15
Krzysztof Banaś Obliczenia Wysokiej Wydajności 16
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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 17
Charakterystyka programów SPECint Name Description IC 10 9 CPI Tc (ns) Exec time Ref time SPECratio perl Interpreted string processing 2,118 0.75 0.40 637 9,777 15.3 bzip2 Block-sorting compression 2,389 0.85 0.40 817 9,650 11.8 gcc GNU C Compiler 1,050 1.72 0.47 24 8,050 11.1 mcf Combinatorial optimization 336 10.00 0.40 1,345 9,120 6.8 go Go game (AI) 1,658 1.09 0.40 721 10,490 14.6 hmmer Search gene sequence 2,783 0.80 0.40 890 9,330 10.5 sjeng Chess game (AI) 2,176 0.96 0.48 37 12,100 14.5 libquantum Quantum computer simulation 1,623 1.61 0.40 1,047 20,720 19.8 h264avc Video compression 3,102 0.80 0.40 993 22,130 22.3 omnetpp Discrete event simulation 587 2.94 0.40 690 6,250 9.1 astar Games/path finding 1,082 1.79 0.40 773 7,020 9.1 xalancbmk XML parsing 1,058 2.70 0.40 1,143 6,900 6.0 Geometric mean 11.7 Krzysztof Banaś Obliczenia Wysokiej Wydajności 18
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) Krzysztof Banaś Obliczenia Wysokiej Wydajności 19
Krzysztof Banaś Obliczenia Wysokiej Wydajności 20
Krzysztof Banaś Obliczenia Wysokiej Wydajności 21
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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 22
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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 23
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 Krzysztof Banaś Obliczenia Wysokiej Wydajności 24
Krzysztof Banaś Obliczenia Wysokiej Wydajności 25
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) Krzysztof Banaś Obliczenia Wysokiej Wydajności 26
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 Gry Programy użytkowe (np. programy kompresji/dekompresji, szyfrowania, itp.)... Krzysztof Banaś Obliczenia Wysokiej Wydajności 27