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