Metody oceny charakterystyk obliczeniowych problemów dziedzinowych i wspierających je platform sprzętowych. Federalna Agencja Edukacji. Pojemność i prędkość dysku twardego

Porównanie komputerów ze sobą zwykle rozpoczyna się od oceny ich wydajności. Wymagało to wprowadzenia odpowiednich jednostek pomiaru produktywności oraz opracowania standardowych metod jej oceny.

Metody oceny wydajności systemów obliczeniowych muszą spełniać określone wymagania. Przede wszystkim muszą być powszechnie uznawane, oceniać systemy obliczeniowe w jak najpełniejszy sposób i odpowiadać zadaniom użytkownika. Należy zapewnić ich dostępność do niezależnego i samodzielnego zbadania.

Czas jest podstawą obecnie stosowanych metod oceny i porównywania wydajności systemów obliczeniowych.

"Pętle Livermore" to typowy zestaw fragmentów programu FORTRAN. [ , ] Programy te implementują różne algorytmy obliczeniowe:

  • krata;
  • fala;
  • spójny.

Ich wybór oparto na bogatym doświadczeniu w tworzeniu superkomputerów i wykonywaniu najbardziej skomplikowanych obliczeń naukowych i inżynierskich w Livermore National Laboratory. E. Lawrence (Lawrence Livermore National Laboratory, LLNL) Amerykański Departament Energii

Podczas testowania stosuje się mały zestaw (14 cykli) lub duży zestaw (24 cykle).

Współczynnik zrównoleglania zastosowanych algorytmów mieści się w zakresie od 0 do 1. Umożliwia to wykorzystanie "cykli Livermore'a" do oceny wydajności systemów obliczeniowych o różnych architekturach. Test praktycznie nie jest używany.

Testy LINPACK to programy do rozwiązywania układów liniowych równań algebraicznych o dużym wymiarze. Są napisane w języku programowania FORTRAN [

Szybkość procesora jest jedną z jego najważniejszych cech, która decyduje o wydajności całego systemu mikroprocesorowego jako całości. Wydajność procesora zależy od wielu czynników, co utrudnia porównywanie wydajności nawet różnych procesorów z tej samej rodziny, nie mówiąc już o procesorach różnych producentów i przeznaczonych do różnych celów.

Wyróżnijmy najważniejsze czynniki, które wpływają na szybkość procesora.

Przede wszystkim prędkość zależy od częstotliwości taktowania procesora. Wszystkie operacje wewnątrz procesora wykonywane są synchronicznie, taktowane pojedynczym sygnałem zegarowym. Oczywiste jest, że im wyższa częstotliwość zegara, tym szybszy procesor i np. dwukrotny wzrost częstotliwości taktowania procesora skraca czas wykonywania poleceń przez ten procesor o połowę.

Należy jednak wziąć pod uwagę, że różne procesory wykonują te same instrukcje przez różną liczbę cykli, a liczba cykli spędzonych na instrukcji może wahać się od jednego do dziesiątek, a nawet setek. W niektórych procesorach, ze względu na zrównoleglenie mikrooperacji, na jedną instrukcję zużywa się nawet mniej niż jeden cykl.

Liczba cykli wymaganych do wykonania instrukcji zależy od złożoności instrukcji i metod adresowania argumentów. Na przykład najszybszy mniejsza liczba cykli) polecenia są wykonywane w celu przesyłania danych między wewnętrznymi rejestrami procesora. Najwolniejsze (dla dużej liczby cykli) są złożone instrukcje arytmetyczne zmiennoprzecinkowe, których operandy są przechowywane w pamięci.

Początkowo do ilościowego określenia wydajności procesorów wykorzystywano jednostkę miary MIPS (Mega Instruction Per Second), która odpowiadała liczbie milionów instrukcji (poleceń) wykonywanych na sekundę. Oczywiście producenci mikroprocesorów starali się skupić na najszybszych instrukcjach. Oczywiste jest, że taki wskaźnik nie jest zbyt skuteczny. Aby zmierzyć wydajność podczas wykonywania obliczeń z liczbą zmiennoprzecinkową (punktową), nieco później zaproponowano jednostkę FLOPS (Operacje zmiennoprzecinkowe na sekundę), ale z definicji jest ona wysoce wyspecjalizowana, ponieważ w niektórych systemach operacje zmiennoprzecinkowe po prostu nie są używane.

Innym podobnym wskaźnikiem szybkości procesora jest czas potrzebny na wykonanie krótkich (szybkich) operacji. Jako przykład, Tabela 3.1 pokazuje wydajność kilku 8-bitowych i 16-bitowych procesorów. Obecnie ten wskaźnik praktycznie nie jest używany, podobnie jak MIPS.

Czas wykonania polecenia jest ważnym, ale nie jedynym czynnikiem decydującym o wydajności. Duże znaczenie ma również struktura zestawu instrukcji procesora. Na przykład, niektóre procesory będą potrzebowały jednej instrukcji do wykonania jakiejś operacji, podczas gdy inne procesory będą potrzebować kilku instrukcji. Niektóre procesory mają system poleceń, który pozwala szybko rozwiązywać problemy jednego typu, a niektóre - zadania innego typu. Ważne są również metody adresowania dozwolone w dany procesor, obecność segmentacji pamięci oraz sposób interakcji procesora z urządzeniami I / O itp.


Znacząco wpływa na wydajność systemu jako całości oraz na to, jak procesor „komunikuje się” z pamięcią rozkazów i pamięcią danych, czy wybór rozkazów z pamięci jest połączony z wykonaniem wcześniej wybranych rozkazów.

Wydajność jest najważniejszą cechą komputera. Wydajność to zdolność komputera do wykonywania określonych zadań w określonym czasie.

Komputer, który wykonuje tę samą ilość pracy w krótszym czasie, jest szybszy. Czas wykonania dowolnego programu mierzony jest w sekundach. Wydajność jest często mierzona jako częstotliwość występowania określonej liczby zdarzeń na sekundę, więc mniej czasu oznacza większą wydajność.

Jednak w zależności od tego, co myślimy, czas można definiować na różne sposoby. Najprostszym sposobem określenia czasu jest czas astronomiczny, czas odpowiedzi (czas odpowiedzi), czas wykonania (czas wykonania) lub czas, który upłynął (upływ czasu). Jest to opóźnienie zadania, obejmującego dosłownie wszystko: procesor, dostęp do dysku, dostęp do pamięci, we/wy i obciążenie systemu operacyjnego. Jednak podczas pracy w trybie wieloprogramowym podczas oczekiwania na I/O dla jednego programu, procesor może wykonywać inny program i system niekoniecznie będzie minimalizował czas wykonania tego konkretnego programu.

Do pomiaru czasu procesora w danym programie używany jest specjalny parametr - czas procesora, który nie obejmuje czasu oczekiwania na wejścia/wyjścia ani czasu wykonania innego programu. Oczywiście czas odpowiedzi widziany przez użytkownika to całkowity czas wykonania programu, a nie czas procesora. Czas procesora można dalej podzielić na czas spędzony przez procesor bezpośrednio na wykonywaniu programu użytkownika, zwany czasem procesora użytkownika, oraz czas procesora spędzany przez system operacyjny na wykonywaniu zadań żądanych przez program, zwany czasem procesora systemu.

W niektórych przypadkach czas systemowy procesora jest ignorowany ze względu na możliwą niedokładność pomiarów wykonywanych przez sam system operacyjny, a także z powodu problemów związanych z porównywaniem wydajności maszyn z różnymi systemami operacyjnymi. Z drugiej strony kod systemowy na niektórych maszynach jest kodem użytkownika na innych, a poza tym praktycznie żaden program nie może działać bez jakiegoś systemu operacyjnego. Dlatego przy pomiarze wydajności procesora często używa się sumy czasu procesora użytkownika i systemu.

W większości nowoczesnych procesorów szybkość procesów interakcji między wewnętrznymi jednostkami funkcjonalnymi nie jest określona przez naturalne opóźnienia w tych urządzeniach, ale jest ustalana przez pojedynczy układ sygnałów zegarowych generowanych przez jakiś generator impulsów zegarowych, zwykle pracujący ze stałą prędkością. Dyskretne zdarzenia czasowe nazywane są taktami zegara, po prostu taktami, okresami zegara, cyklami lub cyklami zegara. Projektanci komputerów zwykle mówią o okresie zegara, który jest definiowany przez jego czas trwania (np. 10 nanosekund) lub częstotliwość (np. 100 MHz). Czas trwania okresu synchronizacji jest odwrotnością częstotliwości synchronizacji.

Tak więc czas procesora dla danego programu może być wyrażony na dwa sposoby: liczba cykli zegara dla danego programu pomnożona przez czas trwania cyklu zegara lub liczba cykli zegara dla danego programu podzielona przez częstotliwość zegara.

Ważną cechą często publikowaną w raportach dotyczących procesorów jest średnia liczba cykli zegara na instrukcję - CPI (cykle zegara na instrukcję). Przy znanej liczbie instrukcji wykonywanych w programie opcja ta pozwala szybko oszacować czas procesora dla danego programu.

Tak więc wydajność procesora zależy od trzech parametrów: cyklu zegara (lub częstotliwości) synchronizacji, średniej liczby cykli na instrukcję oraz liczby wykonywanych instrukcji. Niemożliwa jest zmiana któregokolwiek z tych parametrów w oderwaniu od innych, ponieważ podstawowe technologie stosowane do zmiany każdego z tych parametrów są ze sobą powiązane: częstotliwość zegara jest określona przez technologię sprzętową i organizację funkcjonalną procesora; średnia liczba cykli na instrukcję zależy od organizacji funkcjonalnej i architektury systemu instrukcji; a liczba instrukcji wykonywanych w programie jest określona przez architekturę systemu instrukcji i technologię kompilatora. Porównując dwie maszyny, należy wziąć pod uwagę wszystkie trzy komponenty, aby zrozumieć względną wydajność.

W procesie poszukiwania standardowej jednostki miary wydajności komputera przyjęto kilka popularnych jednostek miary. Zostały one szczegółowo omówione w pierwszym rozdziale.

1. Przegląd metod i narzędzi oceny wydajności systemów obliczeniowych. Sformułowanie problemu.

1.1 Wskaźniki oceny wydajności systemów obliczeniowych

MIPS

Jedną z alternatywnych miar wydajności procesora (w stosunku do czasu wykonania) jest MIPS - (milion instrukcji na sekundę). Istnieje kilka różnych interpretacji definicji MIPS.

W ogólnym przypadku MIPS to wskaźnik operacji na jednostkę czasu, tj. dla dowolnego programu MIPS istnieje po prostu stosunek liczby instrukcji w programie do czasu jego wykonania. Tak więc wydajność można zdefiniować jako odwrotność czasu pracy, przy czym szybsze maszyny mają wyższą ocenę MIPS.

Pozytywne strony MIPS polega na tym, że ta cecha jest łatwa do zrozumienia, szczególnie dla klienta, oraz że szybsza maszyna ma większą liczbę MIPS, co jest zgodne z naszymi intuicyjnymi pomysłami. Jednak użycie MIPS jako miernika porównawczego wiąże się z trzema problemami. Po pierwsze, MIPS jest zależny od zestawu instrukcji procesora, co utrudnia porównywanie MIPS na komputerach z różnymi zestawami instrukcji. Po drugie, MIPS nawet na tym samym komputerze różni się w zależności od programu. Po trzecie, MIPS może się zmieniać w stosunku do wydajności w przeciwnym kierunku.

Klasycznym przykładem tego drugiego przypadku jest ocena MIPS dla maszyny zawierającej koprocesor zmiennoprzecinkowy. Ponieważ, ogólnie rzecz biorąc, każda instrukcja zmiennoprzecinkowa wymaga więcej cykli synchronizacji niż instrukcja całkowita, programy używające koprocesora zmiennoprzecinkowego zamiast odpowiednich podprogramów z kompozycji oprogramowanie, działają w krótszym czasie, ale mają niższą ocenę MIPS. W przypadku braku koprocesora, operacje zmiennoprzecinkowe są realizowane za pomocą podprogramów wykorzystujących prostsze instrukcje arytmetyczne na liczbach całkowitych, w wyniku czego takie maszyny mają wyższą ocenę MIPS, ale wykonują tak wiele instrukcji, że całkowity czas wykonania znacznie się wydłuża. Podobne anomalie obserwuje się również podczas korzystania z kompilatorów optymalizujących, gdy w wyniku optymalizacji liczba instrukcji wykonywanych w programie zmniejsza się, spada ocena MIPS, a wydajność wzrasta.

Inna definicja MIPS związana jest z niegdyś bardzo popularnym komputerem DEC VAX 11/780. To właśnie ten komputer został przyjęty jako punkt odniesienia do porównywania wydajności różnych maszyn. Wierzono, że wydajność VAX 11/780 jest równa 1 MIPS (jeden milion instrukcji na sekundę).

W tym czasie szeroko stosowany był test syntetyczny D hrystone, który umożliwiał ocenę wydajności procesorów i kompilatorów języka C dla programów przetwarzających nienumeryczne. Była to testowa mieszanka 53% instrukcji przypisania, 32% instrukcji sterujących i 15% wywołań funkcji. To był bardzo krótki test: całkowita liczba instrukcji wynosiła 100. Szybkość wykonywania programu tych 100 instrukcji została zmierzona w Dhrystone na sekundę. W tym syntetycznym teście VAX 11/780 osiągnął 1757 Dhrystone na sekundę. Tak więc 1 MIPS równa się 1757 Dhrystone na sekundę.

Trzecia definicja MIPS dotyczy IBM RS/6000 MIPS. Faktem jest, że wielu producentów i użytkowników (zwolenników IBM) woli porównywać wydajność swoich komputerów z wydajnością nowoczesne komputery IBM, a nie starą maszyną DEC. Związek między VAX MIPS i RS/6000 MIPS nigdy nie był szeroko publikowany, ale 1 RS/6000 MIPS jest w przybliżeniu równy 1,6 VAX 11/780 MIPS.

MFLOPS

Pomiar wydajności komputerów w rozwiązywaniu problemów naukowych i technicznych, które w znacznym stopniu wykorzystują arytmetykę zmiennoprzecinkową, zawsze budziły szczególne zainteresowanie. To dla takich obliczeń po raz pierwszy pojawiła się kwestia pomiaru wydajności, a uzyskane wyniki często służyły do ​​wyciągania wniosków na temat ogólnego poziomu rozwoju komputerów. Zazwyczaj w przypadku problemów naukowych i technicznych wydajność procesora jest mierzona w MFLOPS (miliony obliczeń zmiennoprzecinkowych na sekundę lub miliony podstawowych operacji arytmetycznych zmiennoprzecinkowych wykonywanych na sekundę).

Jako jednostka miary, MFLOPS jest przeznaczony wyłącznie do oceny wydajności operacji zmiennoprzecinkowych i dlatego nie ma zastosowania poza tym ograniczonym obszarem. Na przykład kompilatory mają ocenę MFLOPS bliską zeru, niezależnie od szybkości maszyny, ponieważ kompilatory rzadko używają arytmetyki zmiennoprzecinkowej.

MFLOPS opiera się na liczbie wykonanych operacji, a nie liczbie wykonanych poleceń. Według wielu programistów ten sam program działający na różnych komputerach będzie wykonywał różną liczbę instrukcji, ale tę samą liczbę operacji zmiennoprzecinkowych. Dlatego ocena MFLOPS miała na celu zapewnienie uczciwego porównania różnych maszyn między sobą.

1.2. Standardowe testy pomiaru wydajności

W tej części omówiono najpopularniejsze standardowe testy kontrolne i oceniające – Whetstone, Dhrystone, Linpack. Linpack i Whetstone charakteryzują przetwarzanie liczb rzeczywistych, podczas gdy Dhrystone charakteryzuje przetwarzanie liczb całkowitych. Bardziej nowoczesne testy SPEC są w rzeczywistości zestawem partii do uzyskania zestawu oszacowań wydajności przetwarzania wsadowego i dlatego są opisane osobno.

1.2.1. Osełka (opis ogólny)

W 1976 roku H.J.Curnow i B.A.Wichmann z brytyjskiego National Physical Laboratory zaprezentowali zestaw programów do pomiaru wydajności napisanych w języku Algol-60. Po raz pierwszy opublikowano testy porównawcze i jest tym bardziej godne uwagi, że pakiet Whetstone składa się z syntetycznych testów opracowanych przy użyciu statystyk dystrybucji instrukcji poziomu pośredniego (instrukcje Whetstone) kompilatora Whetstone Algol (od którego pochodzi nazwa tego pakiet pomiarowy) zebrane na podstawie dużej liczby zadań obliczeniowych. Bardziej szczegółowy opis tego pakietu testowego znajduje się w następnym rozdziale.

1.2.2. Dhrystone (opis ogólny)

Testy Dhrystone opierają się na typowym rozmieszczeniu konstrukcji językowych. Dhrystone zawiera 12 modułów reprezentujących różne typowe tryby przetwarzania. Testy Dhrystone służą do oceny wydajności związanej z funkcjonowaniem określonych typów oprogramowania systemowego i aplikacyjnego (systemy operacyjne, kompilatory, edytory itp.). Bardziej szczegółowy opis tego pakietu testowego znajduje się w następnym rozdziale.

1.2.3. Linpack (opis ogólny)

Linpack to zbiór funkcji algebry liniowej. Programy pakietowe przetwarzają macierze dwuwymiarowe, których wielkość jest głównym parametrem testowania (najczęściej stosowane macierze to 100x100 lub 1000x1000): im więcej elementów w macierzy, tym większa równoległość operacji podczas testów wydajnościowych. Parametr ten ma szczególne znaczenie dla komputerów o architekturze wektorowej (w tym przypadku charakteryzuje on długość przetwarzanych wektorów), ale dużym błędem byłoby nie uwzględnienie go przy testowaniu systemów innych klas. Faktem jest, że prawie wszystkie współczesne komputery szeroko wykorzystują możliwości przetwarzania równoległego (arytmetyka potokowa i/lub superskalarna, architektura procesora VLIW, organizacja systemu MPP itp.), więc ocena wydajności na różnych poziomach równoległości oprogramowania jest bardzo orientacyjna dla każdego nowoczesnego systemu.

Interpretacja wyników:

  • Stopień linpack charakteryzuje przede wszystkim wydajność przetwarzania liczb zmiennoprzecinkowych; gdy określony jest duży rozmiar macierzy (1000x1000), wpływ operacji na liczbach całkowitych i poleceń sterujących (operatorów typu IF) na to oszacowanie jest niewielki.
  • Operator w postaci Y[i]=Y[i]+a*X[i] reprezentowany przez procedurę testową SAXPY/DAXPY (SAXPY — pojedyncza precyzja; DAXPY — podwójna precyzja) ma największą wagę w wynikowej ocenie wydajności. Według Weikera ta procedura zajmuje ponad 75% czasu wykonania wszystkich testów Linpack, a Dongarra daje jeszcze wyższą wartość - 90%. Dlatego ocena Linpacka nie jest reprezentatywna dla całego zestawu operacji zmiennoprzecinkowych, ale głównie dla instrukcji dodawania i mnożenia.
  • Niewielka ilość kodu wykonywalnego Linpack (około 4,5 KB) i niewielka liczba operacji skoku nie powodują znaczącego obciążenia funkcji buforowania poleceń w procesorze: większość modułów pakietu znajduje się w całości w pamięci podręcznej instrukcji i nie wymaga dynamiczne stronicowanie poleceń podczas wykonywania (na przykład najbardziej „ciężka” procedura SAXPY / DAXPY jest reprezentowana przez tylko 234 bajty kodu). Jednak obciążenie ścieżki interakcji procesor-pamięć jest dość duże: testy o pojedynczej precyzji z macierzami 100x100 przetwarzają 40 kB danych, a testy o podwójnej precyzji - 80 kB. Oczywiście w przypadku większości nowoczesnych komputerów cała ilość danych Linpack prawdopodobnie zostanie zlokalizowana w dodatkowej pamięci podręcznej, a mimo to wyniki testu, zwłaszcza dla macierzy o wymiarach 1000x1000, są bardziej zgodne z koncepcją” wydajność systemu przetwarzanie wsadowe” niż wyniki uzyskane za pomocą Whetstone i Dhrystone, które odzwierciedlają głównie wydajność procesora.
  • Brak odniesień do funkcji bibliotecznych w testach Linpack wyklucza możliwość optymalizacji wyników przez producentów komputerów i pozwala interpretować uzyskane wyniki niemal jako „czystą” cechę wydajności systemu.
  • Technika Linpack wymaga obowiązkowej publikacji nazwy kompilatora, który przetłumaczył kod źródłowy (podczas tej procedury zabroniona jest jakakolwiek ręczna ingerencja w działanie kompilatora, nie wolno nawet usuwać komentarzy z tekstu programu), oraz system operacyjny, w którym przeprowadzono testowanie. Brak tych danych, a także informacja o ustawionych atrybutach testowania (Single/Double, Rolled/Unrolled, Coded BLAS/Fortran BLAS) oraz wielkości matryc, powinny być ostrzeżeniem o możliwym naruszeniu warunków standardowych do pomiaru wydajności metodą Linpack. .

1.3 Podstawowe pakiety testowe SPEC

1.3.1. SPECint92, SPECfp92

Znaczenie tworzenia pakietów testowych opartych na rzeczywistych programach aplikacyjnych szerokiego grona użytkowników i zapewniających efektywną ocenę wydajności procesorów dostrzegła większość największych producentów sprzętu komputerowego, którzy w 1988 roku założyli niedochodową korporację SPEC (Standard Performance Evaluation Corporation ) . Głównym celem tej organizacji jest opracowanie i utrzymanie znormalizowanego zestawu specjalnie dobranych programów testowych do oceny wydajności. najnowsze generacje komputery o wysokiej wydajności. Członkiem SPEC może zostać każda organizacja, która uiściła opłatę wstępną.

Główne działania SPEC to: opracowywanie i publikowanie zestawów testów przeznaczonych do pomiaru wydajności komputerów. Przed publikacją kody obiektowe tych zestawów wraz z tekstami źródłowymi i narzędziami są intensywnie sprawdzane pod kątem możliwości importu na różne platformy. Są dostępne dla szerokiego grona użytkowników za opłatą pokrywającą koszty rozwoju i koszty administracyjne. Specjalna umowa licencyjna reguluje wykonywanie testów i publikację wyników zgodnie z dokumentacją dla każdego przypadku testowego. SPEC publikuje kwartalny raport o nowościach i wynikach testów SPEC: „Biuletyn SPEC”, który stanowi scentralizowane źródło informacji o wynikach testów SPEC.

Głównym produktem SPEC są zestawy testowe. Zestawy te są opracowywane przez SPEC przy użyciu kodów pochodzących z różne źródła. SPEC pracuje nad importowaniem tych kodów na różne platformy, a także nad tworzeniem narzędzi do tworzenia znaczących obciążeń z kodu wybranego jako testy. Dlatego testy SPEC różnią się od wolnego oprogramowania. Chociaż mogą istnieć pod podobnymi lub tymi samymi nazwami, ich czas wykonania będzie generalnie inny.

Obecnie istnieją dwa podstawowe zestawy testów SPEC, które koncentrują się na intensywnych obliczeniach i mierzą wydajność procesora, systemu pamięci oraz wydajność generowania kodu przez kompilator. Z reguły testy te skupiają się na działaniu system UNIX, ale są one również importowane na inne platformy. Procent czasu spędzonego na systemie operacyjnym i funkcjach we/wy jest na ogół pomijalny.

Zestaw testów CINT92, który mierzy wydajność procesora podczas przetwarzania liczb całkowitych, składa się z sześciu programów napisanych w języku C i wybranych z różnych obszarów zastosowań: teorii obwodów, interpretera języka Lisp, projektowania obwodów logicznych, pakowania plików tekstowych, arkuszy kalkulacyjnych i kompilacji programów.

Zestaw testowy CFP92, który mierzy wydajność procesora w przetwarzaniu liczb zmiennoprzecinkowych, składa się z 14 programów, również wybranych z różnych obszarów zastosowań: programistyczne obwody analogowe, symulacja Monte Carlo, chemia kwantowa, optyka, robotyka, fizyka kwantowa, astrofizyka, prognozowanie pogody i inne zadania naukowe i inżynierskie. Dwa programy z tego zestawu są napisane w C, a pozostałe 12 w Fortranie. Pięć programów korzysta z pojedynczej precyzji, a pozostałe z podwójnej precyzji.

Wyniki uruchomienia każdego pojedynczego testu z tych dwóch zestawów są wyrażone jako stosunek czasu potrzebnego na uruchomienie jednej kopii testu na testowanej maszynie do czasu potrzebnego na wykonanie go na maszynie referencyjnej. Maszyna referencyjna to VAX 11/780. SPEC publikuje wyniki każdego pojedynczego przebiegu testu, a także dwa wyniki złożone: SPECint92, średnia geometryczna z 6 indywidualnych wyników testu z zestawu CINT92, oraz SPECfp92, średnia geometryczna 14 indywidualnych wyników testu z zestawu CFP92.

Należy zauważyć, że wyniki testów na zestawach CINT92 i CFT92 silnie zależą od jakości użytych kompilatorów optymalizujących. Od połowy 1994 roku firma SPEC wprowadziła dwa dodatkowe wyniki złożone, SPECbase_int92 i SPECbase_fp92, w celu dokładniejszego wyjaśnienia możliwości sprzętowych, które nakładają pewne ograniczenia na kompilatory używane przez producentów komputerów.

podczas testów.

1.3.2. SPECrate_int92, SPECrate_fp92

Złożone wyniki SPECint92 i SPECfp92 dość dobrze charakteryzują wydajność procesora i systemu pamięci w trybie jednozadaniowym, ale zupełnie nie nadają się do oceny wydajności systemów wieloprocesorowych i jednoprocesorowych działających w trybie wielozadaniowym. Wymaga to oszacowania przepustowości systemu lub jego pojemności, pokazując liczbę zadań, które system może wykonać w danym okresie czasu. O przepustowości systemu decyduje przede wszystkim ilość zasobów (liczba procesorów, pojemność pamięci RAM i pamięci podręcznej, przepustowość magistrali), które system może zapewnić użytkownikowi w danym momencie. To właśnie ten wynik, zwany SPECrate, który zastąpił wcześniejszy SPECthruput89, zaproponował SPEC jako miarę wydajności systemu wieloprocesorowego.

Jednocześnie do pomiaru wybrano metodę jednorodnej pojemności, która polega na jednoczesnym wykonywaniu kilku kopii tego samego programu badawczego. Wyniki tych testów pokazują, ile zadań danego typu można wykonać w określonym czasie, oraz ich wartości średnich geometrycznych (SPECrate_int92 – na zbiorze testów mierzących wydajność operacji na liczbach całkowitych oraz SPECrate_fp92 – na zbiorze testy mierzące wydajność operacji zmiennoprzecinkowych) wyraźnie odzwierciedlają wydajność konfiguracje jednoprocesorowe i wieloprocesorowe podczas pracy w trybie wielozadaniowym w systemach współdzielonych. Te same zestawy CINT92 i CFT92 zostały wybrane jako programy testowe do testowania przepustowości.

Podczas uruchamiania pakietu testowego dla każdego indywidualnego testu wykonywane są niezależne pomiary. Zazwyczaj taki parametr, jak liczba kopii każdego pojedynczego testu do uruchomienia, jest wybierany na podstawie rozważań dotyczących optymalnego wykorzystania zasobów, które zależy od cech architektury konkretnego systemu. Jedną z oczywistych możliwości jest ustawienie tego parametru na liczbę procesorów w systemie. W takim przypadku wszystkie kopie danego programu testowego są uruchamiane jednocześnie i rejestrowany jest czas zakończenia ostatniego z uruchomionych programów.

1.3.3. TPC

Wraz ze wzrostem wykorzystania komputerów w przetwarzaniu transakcji biznesowych, coraz ważniejsza staje się możliwość rzetelnego porównywania systemów ze sobą. W tym celu w 1988 roku jako organizacja non-profit została powołana Transaction Processing Performance Council (TPC). Członkiem TPC może zostać każda firma lub organizacja po uiszczeniu odpowiedniej opłaty. Obecnie członkami TPC są prawie wszyscy liczący się producenci platform sprzętowych i oprogramowania do automatyzacji biznesu. Do tej pory TPC stworzyło trzy zestawy testów, aby zapewnić bezstronne porównanie różnych systemów przetwarzania transakcji i planuje stworzyć nowe testy porównawcze.

W branży komputerowej termin transakcja może oznaczać niemal każdy rodzaj interakcji lub wymiany informacji. Jednak w świecie biznesu „transakcja” ma bardzo specyficzne znaczenie: handlowa wymiana towarów, usług lub pieniędzy. W dzisiejszych czasach prawie wszystkie transakcje biznesowe przeprowadzane są za pomocą komputerów. Najbardziej typowymi przykładami systemów przetwarzania transakcji są systemy zarządzania księgowością, systemy rezerwacji linii lotniczych oraz systemy bankowe. W związku z tym wzrasta zapotrzebowanie na standardy i pakiety testowe do oceny takich systemów.

Przed 1988 r. nie było ogólnej zgody co do oceny systemów przetwarzania transakcji. Powszechnie stosowane są dwa pakiety testowe: Debit/Kredyt i TPI. Pakiety te nie pozwalały jednak na odpowiednią ocenę systemów: nie miały pełnej, solidnej specyfikacji; nie dostarczyły obiektywnych, weryfikowalnych wyników; nie zawierał pełnego opisu konfiguracji systemu, jego kosztu oraz metodyki testowania; nie zapewniła obiektywnego, bezstronnego porównania jednego systemu z drugim.

Aby rozwiązać te problemy, powstała organizacja TPC, której głównym zadaniem jest dokładne zdefiniowanie pakietów testowych do oceny systemów przetwarzania transakcji i baz danych oraz rozpowszechnianie obiektywnych, weryfikowalnych danych w przemyśle.

TPC publikuje specyfikacje pakietów testowych, które regulują sposób działania testów. Specyfikacje te zapewniają kupującym obiektywne dane do porównania wydajności różnych systemów komputerowych. Chociaż wdrożenie specyfikacji testów ewaluacyjnych pozostawiono poszczególnym sponsorom testów, sami sponsorzy, ogłaszając wyniki TPC, muszą przedłożyć TPC szczegółowe raporty dokumentujące zgodność ze wszystkimi specyfikacjami. Raporty te obejmują w szczególności konfigurację systemu, metodologię wyceny, wykresy wartości wydajności oraz dokumentację pokazującą, że test spełnia wymagania dotyczące niepodzielności, spójności, izolacji i trwałości (ACID), które zapewniają prawidłowe przetwarzanie wszystkich transakcji z testu ewaluacyjnego.

TPC definiuje i zarządza formatem kilku testów wydajności przetwarzania transakcji on-line (OLTP), w tym testów TPC-A, TPC-B i TPC-C. Jak już wspomniano, za stworzenie testu oceniającego odpowiada organizacja przeprowadzająca test. TPC wymaga jedynie spełnienia określonych warunków podczas tworzenia testu oceniającego. Chociaż wspomniane testy TPC nie są specyficznymi testami wydajności baz danych, relacyjne systemy baz danych są kluczowymi elementami każdego systemu przetwarzania transakcji.

Należy zauważyć, że jak każdy inny test, żaden test TPC nie może zmierzyć wydajności systemu, który ma zastosowanie we wszystkich możliwych środowiskach przetwarzania transakcji, ale testy te mogą naprawdę pomóc użytkownikowi w rzetelnym porównaniu podobnych systemów. Jednak gdy użytkownik dokonuje zakupu lub planuje decyzję o zakupie, musi zrozumieć, że żaden test nie może zastąpić jego konkretnej aplikacji.

1.3.3.1. Test TPC-A

Wydany w listopadzie 1989 r. test TCP-A został zaprojektowany w celu oceny wydajności systemów działających w środowisku intensywnie korzystającym z baz danych, typowym dla aplikacji przetwarzania danych online (OLDP). Środowisko to charakteryzuje się:

  • wiele sesji terminalowych w trybie on-line
  • znaczna ilość I/O podczas pracy z dyskami
  • Umiarkowany czas pracy systemu i aplikacji
  • integralność transakcji.

W praktyce podczas wykonywania testu emulowane jest typowe bankowe środowisko obliczeniowe, w tym serwer bazy danych, terminale i linie komunikacyjne. Ten test wykorzystuje pojedyncze, proste transakcje, które intensywnie aktualizują bazę danych. Pojedyncza transakcja (podobnie jak normalna operacja aktualizacji konta klienta) zapewnia prostą, powtarzalną jednostkę pracy, która weryfikuje kluczowe elementy systemu OLTP.

Test porównawczy TPC-A mierzy przepustowość systemu mierzoną liczbą transakcji na sekundę (tps A), które system może wykonać podczas pracy z wieloma terminalami. Chociaż specyfikacja TPC-A nie definiuje dokładnej liczby terminali, dostawcy systemów muszą zwiększać lub zmniejszać liczbę terminali w zależności od przepustowości. Test TPC-A można przeprowadzić w sieciach lokalnych lub regionalnych. W takim przypadku jego wyniki określają przepustowość „lokalną” (przepustowość lokalna TPC-A) lub „regionalną” (przepustowość szeroka TPC-A). Oczywiście tych dwóch benchmarków nie można bezpośrednio porównywać. Specyfikacja testów TPC-A wymaga od wszystkich firm pełnego ujawnienia szczegółów działania testowego, konfiguracji systemu i jego kosztu (przy założeniu pięcioletniego okresu konserwacji). Pozwala to określić znormalizowany koszt systemu ($/tpsA).

1.3.3.2. Test TPC-B

W sierpniu 1990 roku TPC zatwierdziło TPC-B, intensywny test bazy danych charakteryzujący się następującymi elementami:

  • znaczna ilość dysków we/wy
  • Umiarkowany czas pracy systemu i aplikacji
  • integralność transakcji.

TPC-B mierzy przepustowość systemu w transakcjach na sekundę (tpsB). Ponieważ istnieją znaczne różnice między dwoma testami TPC-A i TPC-B (w szczególności TPC-B nie emuluje terminali i linii komunikacyjnych), nie można ich bezpośrednio porównywać.

1.3.3.2. Test TPC-C

Zestaw testów TPC-C symuluje aplikację do przetwarzania zamówień. Modeluje dość złożony system OLTP, który musi zarządzać przyjmowaniem zamówień, zarządzaniem zapasami oraz dystrybucją towarów i usług. Test TPC-C testuje wszystkie główne komponenty systemu: terminale, łącza, procesor, dyskowe wejścia/wyjścia i bazę danych.

TPC-C wymaga, aby odbywało się pięć rodzajów transakcji:

  • nowe zlecenie wprowadzone za pomocą złożonej maski
  • prosta aktualizacja bazy danych związana z płatnościami
  • prosta aktualizacja bazy danych związana z dostawą
  • informacje o stanie zamówienia

certyfikat księgowania towarów

Wśród tych pięciu rodzajów transakcji co najmniej 43% muszą stanowić płatności. Transakcje związane z zaświadczeniami o statusie zamówień, statusie dostawy i rozliczeniu powinny wynosić po 4%. Następnie mierzy szybkość transakcji nowych zamówień przetwarzanych w połączeniu z kombinacją innych transakcji działających w tle.

Baza danych TPC-C oparta jest na modelu dostawcy hurtowego z obszarami peryferyjnymi i magazynami. Baza danych zawiera dziewięć tabel: Magazyny, Okręg, Odbiorca, Zamówienie, Zamówienie Zamówienie, Nowe Zamówienie, Pozycja na fakturze, Zapasy i Historia.

Zwykle publikowane są dwa wyniki. Jeden z nich, tpm-C, reprezentuje szczytowy wskaźnik transakcji (wyrażony w transakcjach na minutę). Drugi wynik, $/tpm-C, to znormalizowany koszt systemu. Koszt systemu obejmuje cały sprzęt i oprogramowanie użyte w teście, plus koszt utrzymania przez pięć lat.

Jądra syntetyczne i naturalne testy porównawcze nie mogą służyć jako prawdziwe zestawy testów do oceny systemu: nie mogą dokładnie modelować środowiska użytkownika końcowego i oceniać wydajności wszystkich istotnych komponentów systemu. Bez takiej gwarancji wyniki pomiarów wydajności pozostają pod znakiem zapytania.

1.4. Nowoczesne podstawowe konfiguracje komputerów

Dobór konfiguracji komputera na podstawie szacunkowych kosztów materiałowych na zakup i/lub listy zadań, które będą na nim rozwiązane, jest tym, do czego zmuszona jest niemal każda osoba decydująca się na zakup komputera. Aby dokonać prawidłowego wyboru, musisz wziąć pod uwagę kryteria, według których jest on dokonywany:

Występ

Ograniczanie wydajności komputera „od góry” w zasadzie nie ma sensu: „jeśli możesz być 100 razy szybszy niż wszyscy inni, ale za te same pieniądze, to dlaczego nie?”. Ale dolna granica wynika przede wszystkim z wymagań najczęściej spotykanych w ten moment w środowisku użytkownika oprogramowania. Na przykład de facto standardem dla komputera biurowego jest obecnie system operacyjny z rodziny Microsoft Windows nie młodszy niż Windows 98SE, zatem komputer biurowy, który nie może obsługiwać tego systemu operacyjnego, prawdopodobnie nie zadowoli kupującego, nawet jeśli kosztuje 100 rubli. Oznacza to, że użytkownik będzie miał możliwość nie tylko obserwowania klepsydry, ale także wykonywania sensownych, przydatnych czynności.

Niezawodność

Nowoczesne technologie sprzęt komputerowy posuwa się do przodu o dziesięć mil, ale przy konfigurowaniu komputera dla szerokiego grona użytkowników nie jest rozsądne uwzględnianie produktów sprzed kilku tygodni. Tak, tego rodzaju urządzenie może wydawać się szczytem doskonałości. Tak, jak dotąd recenzje są najbardziej pozytywne i nikt nie zauważył żadnych problemów. W końcu tak, może wcale nie będzie! A może to zrobią... To po prostu nieznane. Zwróć uwagę na produkty wiodących zachodnich marek - HP, Dell, IBM. Na pierwszy rzut oka może się wydawać, że ich oferta komputerowa jest nieco konserwatywna. Jednak właśnie dlatego użytkownicy kupujący swoje komputery mogą być pewni, że zainstalowane tam podzespoły nie zostaną „wyrzucone na śmietnik historii” za pół roku, nie pozostaną bez pomoc techniczna i aktualizacje sterowników itp.

Możliwość rozbudowy

Niestety obsługa konfiguracji sprzętowej komputera w celu dalszego zwiększenia mocy poprzez wymianę części (a nie wszystkich) głównych podzespołów to wciąż sporo dość drogich modeli. Tych. za możliwość późniejszej aktualizacji musisz zapłacić natychmiast przy zakupie. W związku z tym najbardziej „zmodernizowane” są modele ze średniego i wyższego przedziału cenowego. Jednak każdy, nawet najtańszy komputer, musi mieć minimalną możliwość aktualizacji. Przynajmniej pozwalają na przykład na zainstalowanie procesora z półtora do dwóch razy wyższym taktowaniem i podwojeniem (najlepiej potrojeniem) ilości pamięci.

Tabela 1.1. podano opis nowoczesnych konfiguracji komputerowych, wskazując, w jakich dziedzinach życia są one wykorzystywane.

Tabela 1.1.

Opis nowoczesnych konfiguracji komputerowych

Minimalna konfiguracja, która powstaje zgodnie z zasadą „najważniejsza jest cena, jakoś zniesiemy wszystko inne”. W związku z tym płyta główna jest używana nawet bez gniazda AGP, co oznacza, że ​​możliwości dalszych aktualizacji systemu są w rzeczywistości ograniczone tylko przez zainstalowanie mocniejszego procesora i zwiększenie ilości pamięci. Jednocześnie taki komputer jest w stanie obsługiwać ograniczony zestaw aplikacji biurowych - Edytor tekstu, arkusz kalkulacyjny, przeglądarka internetowa i klient poczty. Wraz ze wzrostem ilości pamięci RAM praca staje się wygodniejsza, ale w większości przypadków można się bez niej obejść. Windows 2000 (a tym bardziej Windows XP) jest „kategorycznie przeciwwskazany” dla takiej maszyny, podobnie jak najnowsza generacja pakietów biurowych.

biuro średniej klasy

Pełnoprawna maszyna robocza, wyposażona w mocny procesor i wystarczającą ilość pamięci RAM, może zaspokoić potrzeby niemal każdego pracownika biurowego. Oprócz tego, że jest używany jako „elektroniczna maszyna do pisania”, taki komputer może stać się całkiem wygodnym miejscem pracy zarówno dla księgowego, jak i „własnego projektanta” pracującego z prostą grafiką biznesową. Na szczęście karta graficzna firmy ATI zapewnia świetna jakość obrazy nawet w bardzo wysokich rozdzielczościach.

Obecność 128 MB pamięci RAM w zasadzie pozwala na zainstalowanie nawet systemu Windows 2000 na takim komputerze, chociaż nie jest rozsądne zalecanie tego systemu operacyjnego na zwykły komputer biurowy. Najlepszym sposobem na zwiększenie wydajności jest zainstalowanie większej ilości pamięci - procesor 800 MHz działający na szynie 100 MHz raczej nie będzie „wystarczał” do pracy biurowej przez co najmniej kolejne półtora roku.

Te konfiguracje należą do kategorii biurowej wyłącznie z tego powodu, że wprowadzenie podziału komputera PC na więcej niż dwie grupy jest niepraktyczne. Trudno wyobrazić sobie sekretarkę pracującą z dokumentami elektronicznymi i jednocześnie odczuwającą pilną potrzebę Pentium 4 1,5 GHz. Oznacza to, że jeśli dwie pierwsze konfiguracje miały charakter czysto biurowy – zarządzanie dokumentami, księgowość i praca w sieci, to „biurowy high-end” jest Miejsce pracy jakiś „zaawansowany użytkownik”, który również jest w biurze, ale zajmuje się nie tylko kompilacją i przeglądaniem dokumentów, ale także układem, projektowaniem, pracą z dźwiękiem lub wideo, czy np. pisaniem prostych programów „do użytku wewnętrznego” . W tym przypadku potężny procesor i wymagana będzie duża ilość pamięci RAM. Ponadto komputery te mają doskonałe wskaźniki możliwości rozbudowy - obsługa nowoczesnych procesorów o wysokiej częstotliwości i pamięci DDR (w przypadku platformy AMD) pozwoli na "dokończenie" tych systemów bez radykalnych przeróbek przez dość długi czas.

rozrywka low-end

Często komputer jest używany nie tylko (a często nawet nie tak bardzo) do pracy: bardzo popularne są również komputery domowe. Ale wymagania dla tych dwóch odmian tego samego komputera są zupełnie inne. Dla użytkownika takiego systemu jego głównym przeznaczeniem są gry i rozrywka, które nakładają pewne ograniczenia „od dołu” na konfigurację sprzętową – dźwięk AC „97 i słaby akcelerator 3D w komputer domowy już zupełnie nieistotne. Rozrywka na niskim poziomie – jeśli ograniczenia finansowe są bardzo restrykcyjne, to za skromną kwotę można dostać urządzenie, od którego użytkownik rozpocznie swoją podróż w świat komputerowej rozrywki. Ponadto możliwości dalszej modernizacji tego systemu są dość szerokie, co w przypadku istnienia środków finansowych, chęci lub potrzeby pozwoli na stopniowe zwiększanie jego wydajności bez uciekania się do dużych jednorazowych kosztów pieniężnych.

rozrywka średni koniec

Dość potężna konfiguracja, która przy zakupie nowej gry pozwala nie zastanawiać się nad pytaniami: „Czy mój komputer będzie miał na to wystarczającą moc? Czy proces gry zamieni się w kontemplację pokazu slajdów?” Ponadto obecność karty dźwiękowej obsługującej dźwięk pięciokanałowy umożliwi organizowanie na podstawie tego komputera kino domowe lub amatorskie studio dźwiękowe. W podstawowej konfiguracji Procesor AMD Duron 1GHz zainstalował płytę główną opartą na chipsecie VIA Apollo KT266A z obsługą pamięci DDR, chociaż zgodnie z wynikami testów Durona w połączeniu z PC2100 DDR nie ma znaczącego wzrostu wydajności w porównaniu do PC133.

Właściciel tej konfiguracji może zapomnieć o wszystkich możliwych niedogodnościach, które pojawiają się podczas rozgrywek. "Wszystko do maksimum" - to optymalny zestaw opcji dla prawie każdej gry, która istnieje dzisiaj, jeśli działa na tym komputerze. Karta dźwiękowa zapewnia doskonałą jakość dźwięku i obsługę wszystkich nowoczesnych standardów audio 3D. W obecności wysokiej jakości akustyki system ten może stać się domowym centrum rozrywki. Nie ma sensu mówić o jego działającej aplikacji, ponieważ wszyscy od dawna wiedzą, że wymagania aplikacji do gier dotyczące zasilania komputera są o rząd wielkości wyższe niż wymagania oprogramowania aplikacyjnego.

1.5. Obliczanie funkcji rekurencyjnych

Rekurencja to proces definiowania lub wyrażania funkcji, procedury, konstrukcji języka, rozwiązywania za ich pomocą problemu.

Rekurencja w obliczeniach to sytuacja, w której ta sama wartość (funkcja) obliczona w innych warunkach (argumenty funkcji) jest używana do obliczenia określonej wartości wielkości (funkcji). Własność rekurencyjna nie ogranicza się do problemów obliczeniowych. Jest to ogólna właściwość, którą mogą mieć algorytmy i programy dowolnej natury.

Rekurencja w programie (algorytm) to zdolność programu (procedury, algorytmu) do odwoływania się do siebie do wykonywania tego samego typu sekwencji operacji w różnych warunkach zewnętrznych (parametrach). Oznaką obecności rekurencji jest skonstruowanie wywołania programu (procedury), które występuje w tekście tego programu.

Rekurencje w algorytmach i programach to potężne i wydajne narzędzia programistyczne. Z jednej strony odzwierciedlają wewnętrzny charakter problemu i sposób jego rozwiązania, w którym różne części algorytmu są do siebie podobne. Można powiedzieć, że algorytmy rekurencyjne są algorytmicznym przejawem właściwości równości i podobieństwa, które rzeczywiście istnieją w świecie obiektów. Z drugiej strony rekursje pozwalają w pełni wykorzystać programowanie proceduralne - procedura lub funkcja wykorzystuje wywołanie własnych operacji. Dzięki temu tekst programu jest najbardziej zwarty i łatwy do zrozumienia.

Każda procedura rekurencyjna i wywołanie funkcji wykorzystuje część pamięci RAM komputera, zorganizowaną w specjalny sposób - stos. Stos przechowuje informacje potrzebne do powrotu do wykonania programu wywołującego. Ponieważ rozmiar stosu, podobnie jak każdej pamięci, jest ograniczony, jest zbyt duża liczba struktura połączeń w warunkach rzeczywistych jest niemożliwa. Należy o tym pamiętać, kiedy oczekiwana liczba wywołań rekurencyjnych (głębokość rekurencji) może wynosić setki.

Najbardziej znaną z funkcji w pełni rekurencyjnych jest funkcja Ackermanna. Wskazane jest sprawdzenie możliwości wykorzystania tej funkcji podczas testowania różnych konfiguracji komputera.

1.6. Sformułowanie problemu

Na podstawie ogólnych wymagań przedstawionych w zadaniu do pracy dyplomowej sformułujemy bardziej szczegółowy opis pakietu opracowywanych programów testowych.

Wymagane jest opracowanie algorytmu dla programu obliczającego funkcję Ackermanna oraz wykonanie testu wydajności systemów obliczeniowych wykorzystujących ten algorytm. Program powinien mieć prosty i wygodny interfejs użytkownika: użytkownik musi tylko wybrać wymagany test i określić jego parametry. Korzystając z opracowanego testu, należy porównać sekwencje konfiguracji komputerów. Aby porównanie było uczciwe, te same konfiguracje muszą zostać przetestowane standardowymi testami porównawczymi. Otrzymane wyniki należy przeanalizować i na ich podstawie wyciągnąć odpowiednie wnioski.

Ostatnim etapem projektowania jest przygotowanie dokumentacji programu, która oprócz specyfikacji istotnych warunków zamówienia zawiera teksty programu, opis programu oraz program i metodologię testów.

2. Projektowanie i tworzenie oprogramowania

w budowie oprogramowanie zawiera trzy programy testowe: jeden główny i dwa dodatkowe. Jako dodatkowe wybrano standardowe testy do pomiaru wydajności komputera: Whetstone i Dhrystone. Programy te charakteryzują odpowiednio przetwarzanie liczb rzeczywistych i przetwarzanie danych całkowitych. Głównym testem jest program oparty na obliczeniu funkcji Ackermanna.

2.1. Opis dodatkowych testów

2.1.1. Osełka (opis zabiegu)

Zestaw testów Whetstone składa się z kilku modułów, które symulują ładowanie programu w najbardziej typowych trybach wykonywania zadań obliczeniowych (arytmetyka zmiennoprzecinkowa, instrukcje typu IF, wywołania funkcji itp.). Każdy moduł jest wykonywany wielokrotnie, zgodnie ze wstępną statystyką instrukcji Whetstone (praktycznie jest to realizowane poprzez łączenie modułów w konstrukcje cykliczne o różnej liczbie „zwojów” pętli), a wydajność obliczana jest jako stosunek liczby instrukcji Whetstone do całkowitego czasu wykonania wszystkich modułów w pakiecie. Wynik ten jest prezentowany w KWIPS (kiloinstrukcje osełek na sekundę) lub MWIPS (mega instrukcje osełek na sekundę). Istotną zaletą tych oszacowań jest to, że instrukcje Whetstone nie są powiązane z systemem dowodzenia żadnego komputera, tj. oszacowanie wydajności w MWIPS jest niezależne od modelu.

Program został dostosowany w następujący sposób: dodatkowo wprowadzono parametr „czas wykonania testu” – parametr ten ustawiany jest przez użytkownika. Zrobiono to tak, aby dowolna funkcja Ackermana (z dowolnymi parametrami) mogła być powiązana z liczbą przejść (liczbą wykonanych pętli zewnętrznych) testu Whetstone, co pozwala nam oszacować liczbę operacji wykonywanych przez procesor podczas obliczeń danej funkcji Ackermana.

Zgodnie z powyższym opisem testu opracowano ogólny schemat programu Whetstone przedstawiony na rysunku 2.1.

Rys.2.1. Ogólny schemat programu Osełka

Główna logika programu zawarta jest w funkcji Whets. W ramach tej funkcji realizowane jest ładowanie oprogramowania, które składa się z ośmiu kolejno wykonywanych modułów:

  • obliczanie elementów tablicy
  • obliczanie elementów tablicy (tablica jest podana jako parametr funkcji)
  • operacje oddziałowe (jeśli - inaczej)
  • arytmetyka liczb całkowitych (opcje odejmowania, dodawania i mnożenia)
  • funkcje trygonometryczne (sin, cos, atan)
  • wywoływanie procedur operujących na wskaźnikach
  • obsługa tablicy łączy
  • wywoływanie standardowych funkcji (sqrt, log, exp)


schemat algorytmu procedury badawczej przedstawiono na rysunku 2.2.


Ryż. 2.2. Schemat algorytmu procedury testowej


Interpretacja wyników

  • Pakiet Whetstone koncentruje się na ocenie wydajności liczb zmiennoprzecinkowych: prawie 70% czasu wykonywania zajmuje arytmetyka zmiennoprzecinkowa i wykonywanie bibliotecznych funkcji matematycznych.
  • Duża liczba wywołań biblioteki funkcji matematycznych osadzonych w testach Whetstone wymaga szczególnej ostrożności przy porównywaniu wyników uzyskanych dla różnych komputerów: producenci mają możliwość optymalizacji oszacowania Whetstone poprzez wprowadzanie zmian w bibliotece.
  • Ponieważ moduły testowe Whetstone są reprezentowane przez bardzo zwarty kod wykonywalny, nowoczesne procesory nie pozwalają na ocenę skuteczności mechanizmu dynamicznej zamiany instrukcji w pamięci podręcznej instrukcji: każdy moduł Whetstone jest w całości umieszczony w pamięci podręcznej, nawet najmniejsza pojemność.
  • Cechą rozważanych testów jest prawie całkowity brak zmiennych lokalnych. W efekcie wyniki Whetstone w dużej mierze zależą od wydajności zasobów komputera, które zapewniają dostęp do pamięci RAM i buforowania danych w procesorze (w tym liczby rejestrów, pojemności pamięci podręcznej danych i mechanizmu jej zastępowania). Jednak ta sama okoliczność sprawia, że ​​testy Whitstone'a są praktycznie niewrażliwe na sposoby poprawy efektywności pracy ze zmiennymi lokalnymi.

2.1.2. Dhrystone (opis procedury)

Opis algorytmu testowego

Testy Dhrystone są przeznaczone do oceny wydajności określonych typów oprogramowania systemowego i aplikacji (systemy operacyjne, kompilatory, edytory itp.). Pozostawiło to zauważalny ślad na strukturze danych i kodzie wykonawczym: testy Dhrystone nie obsługują liczb zmiennoprzecinkowych, ale przeważają operacje na innych typach danych (znaki, łańcuchy, wartości logiczne, wskaźniki itp.). Ponadto, w porównaniu z testami Whetstone, liczba struktur zapętlających się jest zmniejszona, używane są prostsze wyrażenia obliczeniowe, ale wzrosła liczba instrukcji IF i wywołań procedur.

Procedury testowe Dhrystone są połączone w jeden cykl pomiarowy, który w wersji C zawiera 103 stwierdzenia. Ten globalny cykl jest traktowany jako jednostka pracy (jeden Dhrystone), a wydajność jest mierzona liczbą cykli pomiarowych wykonywanych na sekundę (Dhrystones/s). Co prawda w ostatnim czasie przy publikowaniu szacunków Dhrystone używano również innych jednostek miary – MIPS VAX. Takie odstępstwo od standardowych zasad jest podyktowane dwoma okolicznościami: po pierwsze, jednostki Dhrystone/ów wyglądają zbyt egzotycznie; po drugie, wynik MIPS VAX pokrywa się w znaczeniu z konwencjonalnymi jednostkami bardzo powszechnych testów SPEC, które charakteryzują wydajność komputera w stosunku do systemu VAX 11/780 (na przykład 1,5 MIPS VAX oznacza, że ​​testowany system działa półtora raza szybciej niż VAX 11/780).

2.2. Opracowanie testu opartego na funkcji Ackermana

2.2.1 Wykorzystanie rekurencji do oceny osiągów statku powietrznego

Rekurencja wyraża charakterystyczną właściwość obiektu, która polega na tym, że obiekt odnosi się do siebie. W programowaniu termin „rekurencja” opisuje sytuację, w której program kontynuuje wywoływanie siebie do momentu, gdy dany warunek. Aby rozwiązać takie problemy, konieczna jest ocena efektywności pracy system komputerowy na którym ten problem został rozwiązany podczas wykonywania rekursji. Poniżej omówiono kilka typowych sytuacji użycia algorytmów i programów rekurencyjnych do rozwiązywania rzeczywistych problemów.

Factorial

Rozważ niektóre funkcje zdefiniowane w następujący sposób:

F(n) = 1 * 2 * 3 * ... * n, gdzie n jest określoną liczbą naturalną. Taki iloczyn liczb naturalnych od 1 do n nazywamy w matematyce silnią liczby n i oznaczamy: „n!”. Ogólnie rzecz biorąc, wartość „n!” jest również zdefiniowany dla wartości zerowej. Zatem pełna definicja silni liczby nieujemnej to:

2.n! = 1 * 2 * 3 * ... * n, dla n > 0

Funkcja "n!" ma ogromne znaczenie w tych problemach matematyki, które dotyczą zdobywania i odkrywania różnych opcji. Na przykład liczba różne drogi układ grupy n różnych obiektów jest równy „n!”. W tym przypadku rekurencyjna własność polega na tym, że wartość silni dowolnej liczby n można uzyskać na podstawie wartości silni dla poprzedniej liczby: (n-1).

Rzeczywiście, łatwo zauważyć, że:

4! = (1 * 2 * 3) * 4 = 3! * 4

Innymi słowy, aby określić algorytm obliczeń czynnikowych, możesz ustawić następujące relacje:

n! = (n-1)! * n, dla n > 0 (2,2)

Zwróćmy uwagę na wyrażenie o numerze 2.2. Zarówno po prawej, jak i po lewej stronie wyrażenia znajduje się ta sama obliczona funkcja! Aby obliczyć silnię n, musisz obliczyć (n-1)!, obliczyć (n-1)! musisz wiedzieć, czym jest (n-2)! itp.

Wydajność lub szybkość komputera to szybkość, z jaką wykonuje operacje. Wydajność jest wartością złożoną i bezpośrednio zależy od komponentów, z jakich składa się komputer. Na przykład dwa komputery z takimi samymi, ale różnymi woluminami będą miały różną wydajność. Komputer z 16 GB RAM będzie działał lepiej niż komputer z 8 GB RAM. Podczas pracy komputer stale odczytuje i zapisuje dane do ultraszybkiej pamięci RAM, a im więcej ma, tym więcej danych może w nim przechowywać do bieżącej pracy, bez uciekania się do wolnego dysku twardego.

Albo inny przykład: komputer z szybkim dyskiem SSD (dysk twardy) będzie bardziej produktywny niż komputer ze zwykłym. Dysk twardy SSD to rodzaj dużego dysku flash, w którym prędkości zapisu i odczytu są wielokrotnie wyższe niż prędkość zwykłego dysku twardego, ze względu na brak ruchomych części i zaawansowaną technologię odczytu / zapisu.

Tak samo z jednostka centralna PC: im więcej w nim rdzeni przetwarzających i im wyższa częstotliwość ich pracy, tym bardziej produktywny będzie komputer.

Komfort pracy z nim zależy od wydajności komputera. Przy małej ilości pamięci RAM komputer może zwolnić, zwłaszcza jeśli otwartych jest kilka programów, a wolny dysk twardy nie może zapewnić szybkiego ładowania systemu operacyjnego i szybkiego uruchamiania oprogramowania w porównaniu z c Dysk SSD. Musisz jednak zrozumieć, że im bardziej produktywny jest komputer, tym jest droższy. Teraz spójrzmy, jak sprawdzić wydajność swojego komputera.

Jak sprawdzić wydajność komputera?

Istnieje wiele metod pomiaru wydajności komputera, ale wszystkie z nich, w taki czy inny sposób, obliczają określoną liczbę lub wskaźnik wydajności, który im wyższy, tym szybszy komputer. Istnieje wystarczająca liczba programów obliczających wydajność komputera, zwanych testami porównawczymi (z angielskiego testu porównawczego - „punkt orientacyjny”, „standard”). Użyjemy standardu Narzędzie Windows, który oblicza wskaźnik wydajności.

Indeks wydajności systemu Windows

Aby sprawdzić wydajność swojego komputera, wykonaj następujące czynności:

Przez pewien czas komputer będzie sprawdzał wydajność poszczególnych podzespołów, na podstawie których wyświetli ogólną ocenę komputera i jego podzespołów z osobna.

Szybkość i wydajność komputera.

Federalna Agencja ds. Edukacji

GOU VPO ʼʼTwerski Państwowy Uniwersytet Technicznyʼʼ

Sprzęt systemów komputerowych.

Notatki z wykładów.

Twer 2012ᴦ.

Główne cechy, obszary zastosowań komputerów różnych klas.

Historia rozwoju komputerów.

Pierwszym pracującym komputerem był ENIAC (USA, 1945-46). ENIAC zawierał 18 000 lamp próżniowych i zużywał 150 kilowatów energii elektrycznej. Jednocześnie maszyna ta nie korzystała jeszcze z zasady programu zapisanego w pamięci. Amerykański matematyk John von Neumann wniósł wielki wkład w rozwój komputerów. Jedna z najważniejszych zasad projektowania komputerów zaproponowana przez Neumanna - zasada programu przechowywanego została po raz pierwszy zaimplementowana w Anglii w 1949 roku w maszynie EDSAC i jest również stosowana w nowoczesnych komputerach. Zasada ta wymaga, aby program był wprowadzany do pamięci komputera w taki sam sposób, w jaki wprowadza się do niego dane.Pierwszy komputer domowy (MESM) powstał w 1951 r. . pod kierownictwem S.A. Lebiediew. W połowie lat 60. powstała maszyna BESM, która była podstawową maszyną w ZSRR w badaniach naukowych, obronnych i kosmicznych. Z pozostałych komputerów należy wspomnieć o „Mińsku”, „Uralu”, „Mir” itp., stworzonych pod kierownictwem I.S. Bruk, V.M. Głuszkow i inni W historii rozwoju technologii komputerowej zwyczajowo wyróżnia się generacje komputerów. Przejście z jednej generacji na drugą wiąże się ze zmianą bazy elementów, na których zbudowany jest komputer.
Hostowane na ref.rf
Wyróżnia się następujące cztery generacje komputerów:

Pierwsza generacja: 1946-1957; podstawa elementarna - elektroniczne lampy próżniowe; pamięć o dostępie swobodnym (RAM) - do 100 bajtów; wydajność - do 10 000 operacji na sekundę;

druga generacja: 1958-1964; podstawa elementu - tranzystory; RAM - do 1000 bajtów; wydajność - do 1 miliona operacji na sekundę;

trzecie pokolenie: 1965-1975; podstawa elementu - małe układy scalone; RAM - do 10 KB; szybkość - do 10 milionów operacji na sekundę;

czwarta generacja: 1976; podstawa elementów - układy scalone duże (LSI) i bardzo duże (VLSI); RAM - od 100 KB i więcej; wydajność - ponad 10 milionów operacji na sekundę.

Należy zauważyć, że granica między trzecią a czwartą generacją komputerów na podstawie bazy pierwiastków jest raczej warunkowa: nastąpiła raczej ilościowa zmiana parametrów bazy pierwiastków.

Główne cechy komputera.

Szybkość i wydajność komputera.

Jednocześnie jednostka miary szybkości komputera „operacje na sekundę” jest przestarzała. Nie odzwierciedla dokładnie wydajności. W przypadku komputerów pierwszych generacji „operacja” była często rozumiana jako dodanie dwóch liczb całkowitych o określonej długości. Operacja mnożenia była wykonywana dziesięciokrotnie wolniej niż dodawanie. Z tego powodu w przypadku nowoczesnych komputerów częściej stosuje się charakterystykę - częstotliwość taktowania. Częstotliwość zegara - ϶ᴛᴏ liczba impulsów na sekundę (herc) generowana przez generator zegara komputera. Częstotliwość zegara jest mniejszą jednostką miary niż liczba operacji na sekundę. Producenci komputerów dążą do zmniejszenia liczby cykli wymaganych do wykonania podstawowych operacji, a tym samym do zwiększenia szybkości komputerów. komputery osobiste charakteryzuje się szybkością powyżej 2 GHz i pamięcią RAM - ponad 256 MB.Podział komputerów na podstawie wydajności i funkcjonalności przedstawiono na rysunku 1.1.

Ryż. 1.1 Klasyfikacja komputerów według wydajności.

Wyznaczanie cech szybkości i wydajności jest bardzo złożonym zadaniem inżynieryjno-naukowym, które do tej pory nie ma ujednoliconych podejść i metod rozwiązywania.

Wydawałoby się, że szybsza technologia obliczeniowa powinna również zapewnić wyższą wydajność. Jednocześnie praktyka mierzenia wartości tych charakterystyk dla komputerów różnych typów może dawać sprzeczne wyniki. Główne trudności w rozwiązaniu tego problemu tkwią w problemie wyboru: co i jak mierzyć. Wskażmy tylko najczęstsze podejścia.

Jedną z alternatywnych jednostek pomiaru wydajności była i pozostaje wartość mierzona w MIPS (milion instrukcji na sekundę - milion operacji na sekundę). Jako operacje tutaj zwykle brane są pod uwagę najkrótsze operacje typu dodawania. MIPS jest szeroko stosowany do oceny dużych maszyn drugiej i trzeciej generacji, ale rzadko jest używany do oceny nowoczesnych komputerów z następujących powodów:

‣‣‣ Zestaw instrukcji nowoczesnych mikroprocesorów może zawierać setki instrukcji, które znacznie różnią się czasem wykonania;

‣‣‣ Wartość wyrażona w MIPS różni się w zależności od funkcji programów;

‣‣‣ Wartość MIPS i wartość wydajności mogą powodować konflikt, gdy oceniane są różne typy komputerów (na przykład komputery z koprocesorem zmiennoprzecinkowym i bez niego).

Podczas rozwiązywania problemów naukowych i technicznych w programach udział operacji zmiennoprzecinkowych gwałtownie wzrasta. Ponownie, w przypadku dużych maszyn jednoprocesorowych, w tym przypadku została użyta charakterystyka wydajności wyrażona w MFPOPS (milion operacji zmiennoprzecinkowych na sekundę). W przypadku komputerów osobistych wskaźnik ten praktycznie nie jest używany ze względu na specyfikę rozwiązywanych zadań i cechy strukturalne komputera.

Szybkość i wydajność komputera. - koncepcja i rodzaje. Klasyfikacja i cechy kategorii „Prędkość i wydajność komputera”. 2017, 2018.