wspolczesne_systemy_komputerowe:wydajnosc [mgr Wiki]

[[wspolczesne_systemy_komputerowe:wydajnosc]]
mgr Wiki

# Miary wydajności

Pomiar wydajności systemów komputerowych ma na celu określenie szybkości (sprawności) realizacji wyznaczonych mu zadań.

Wyróżniamy miary oparte na:

1. Charakterystykach sprzętu:

- częstotliwość zegara
- drożność procesora
- przepustowość magistrali pamięć – procesor

    Mflops (ang. Mega Floating Point Instruction Per Second) - Milion instrukcji zmiennopozycyjnych na sekundę.
    Jednostka miary wydajności obliczeniowej procesora.

    MIPS (ang. Million Instructions per second) - milion instrukcji na sekundę - jedna z jednostek pomiaru
    wydajności systemu komputerowego.

2. Parametrach wykonania specjalnie zaprojektowanych programów wzorcowych – benchmarków komputerowych:

Pomiar wydajności systemu praktycznie nigdy nie jest realizowany analityczne, zawsze pociąga konieczność przeprowadzenia eksperymentu. Natomiast eksperyment wymaga symulacji jak najbardziej realistycznego obciążenia wybranej konfiguracji systemu. Rozwiązaniem idealnym byłoby budowanie nowego środowiska eksperymentalnego na potrzeby każdego wdrożenia. Ponieważ jednak wdrożenia bywają do siebie podobne, dlatego w przemyśle informatycznym narodziła się dziedzina badania wydajności systemów przy użyciu standardowych benchmarków.

Benchmark to aplikacja sztucznie obciążająca system informatyczny w celu pomiaru jego wydajności. Zwykle benchmarki dzieli się na uniwersalne i aplikacyjne (domain-specific). Benchmarki uniwersalne starają się jednakowo traktować wszystkie elementy systemu. Benchmarki aplikacyjne specyfikują obciążenie systemu modelujące charakterystykę „typowej aplikacji” z wybranej dziedziny zastosowań. Ponieważ wydajność systemu komputerowego może się istotnie różnić dla różnych typów aplikacji, dlatego w praktyce benchmarki aplikacyjne cieszą się większym zainteresowaniem.

Pożądane cechy programów wzorcowych (benchmarków):

- adekwatność do dziedziny zastosowań,
- przenośność - umożliwienie implementacji w różnych systemach i architekturach komputerowych,
- skalowalność – możliwość stosowania zarówno w małych systemach, jak i w wielkich,
- wszechstronność badania systemu,
- łatwość dokonania pomiaru - nieskomplikowany, aby użytkownicy rozumieli i akceptowali przyjęty model obciążenia testowego.

W praktyce, benchmarki najczęściej służą porównywaniu rozwiązań według następujących kategorii:

- różne oprogramowanie i różny sprzęt dla tej samej klasy aplikacji,
- różne oprogramowanie na tym samym sprzęcie,
- różne komputery należące do tej samej rodziny,
- różne wydania oprogramowania na tym samym komputerze.

Rodzaje programów wzorcowych:

- Własne: są najlepsze, lecz wymagają osobistego testowania co wymaga czasu, pieniędzy i dostępu do systemów.
- Nieformalne: opracowywane przez grupy użytkowników (np. LINPACK, STREEM),
- Przemysłowe: utrzymywane przez organizacje (np. SPEC, TPC), firmy i instytucje.

Podział ze względu na charakter zadań testowych:

- Algorytmy: np. LINPACK
- Aplikacje: np. SPEC,
- Specyfikacje: np. TPC

# LINPACK

Zadanie testowe: rozwiązanie układu równań liniowych.

Miary:

- DP: ilość operacji zmiennoprzecinkowych na sekundę (MFLOPS) w trakcie rozwiązania zadania 100×100,
- TPP (Toward Peak Performance): ilość operacji zmiennoprzecinkowych na sekundę w trakcie rozwiązania zadania 1000×1000 z możliwością modyfikacji algorytmu.

# SPEC (Standard Performance Evaluation Corporation)

Cel: Ustanowienie, utrzymywanie i wspieranie standardowego zbioru stosowanych 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, serwer aplikacji.
- obiektywność i wiarygodność wzorców i miar.

##### SPEC CPU2000

- Test procesora, systemu pamięci i kompilator
- Pomiar szybkości i przepustowości
- 12 zadań bez obliczeń zmiennoprzecinkowych - podstawa miary CINT2000
- 14 zadań z obliczeniami zmiennoprzecinkowymi - podstawa miary CFP2000
- Rozmiar kodów: od 400 do 193 000 linii
- Rozmiar procesów: od 0.7 do 193 MB

Miary: średnia geometryczna stosunków czasu wykonania programów do odpowiednich czasów odniesienia

Szybkość komputerów:

- SPECint2000: agresywna optymalizacja
- SPECint_base2000: zachowawcza optymalizacja

Przepustowość komputerów równoległych:

- SPECint_rate2000: agresywna optymaliazcja
- SPECint_rate_base2000: zachowawcza optymalizacja

(podobnie cztery miary dla CFP2000: SPECfp2000, SPECfp_base2000, SPECfp_rate2000, SPECfp_rate_base2000)

# TPC (Transaction Processing Performance Council)

- Definiuje wzorce dla przetwarzania transakcji i baz danych oraz dostarcza przemysłowi wiarogodne 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.

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, TPC-R: wzorce dla systemów podejmowania decyzji. Miara: ilość zapytań na godzinę (QphH@Size)

TPC-W: wzorzec transakcji internetowych. Miary: liczby interakcji sieciowych na sekundę dla różnych rodzajów operacji; najważniejsza dla zakupów (WIPS).

# Inne wzorce

Dhrystone, Whetstone: wczesne wzorce syntetyczne (nie oparte o rzeczywiste programy użytkowe).

STREAM: wzorzec syntetyczny dla pomiaru osiągalnej przepustowości pamięci (szerokości pasma).

NAS: równoległy wzorzec NASA, jądra programów.

Wzorce producentów oprogramowania: SAP, BAAN.

wspolczesne_systemy_komputerowe/wydajnosc.txt · Last modified: 2006/05/19 09:58 by 213.134.172.237