OWW_W04_Pomiary_wyda..
Transkrypt
OWW_W04_Pomiary_wyda..
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: – – – – 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 IBM, BlueGene/L Cray, Red Storm, Opteron IBM, eServer pSeries p5 Nproc 131072 26544 12208 Nmax 1769471 1700000 1383600 Rmax 280600 101400 75760 • 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 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×109 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 Krzysztof Banaś 11.7 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