ISBN 83-909958-3-2. Copyright by Jacek Kitowski Email: kito@uci.agh.edu.pl Kraków 2000



Podobne dokumenty
Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Numeryczna algebra liniowa

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Obliczenia Wysokiej Wydajności

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Podsumowanie wyników ankiety

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

INŻYNIERIA OPROGRAMOWANIA

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

zakładane efekty kształcenia

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

PRZEWODNIK PO PRZEDMIOCIE

Obliczenia Wysokiej Wydajności

Miary i pomiary wydajności

KIERUNKOWE EFEKTY KSZTAŁCENIA

Algorytmy i Struktury Danych

INŻYNIERIA OPROGRAMOWANIA

Architektura komputerów

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Dr inż. hab. Siergiej Fialko, IF-PK,

Kierownik Katedry: Prof. dr hab. inż. Tadeusz BURCZYŃSKI

Budowa Mikrokomputera

Analiza ilościowa w przetwarzaniu równoległym

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Efekty kształcenia dla makrokierunku: INFORMATYKA STOSOWANA Z KOMPUTEROWĄ NAUKĄ O MATERIAŁACH Wydział: MECHANICZNY TECHNOLOGICZNY

Państwowa Wyższa Szkoła Techniczno-Ekonomiczna w Jarosławiu

Wstęp do Informatyki. Klasyfikacja oprogramowania

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki

USŁUGI HIGH PERFORMANCE COMPUTING (HPC) DLA FIRM. Juliusz Pukacki,PCSS

Dostawa oprogramowania. Nr sprawy: ZP /15

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

DLA SEKTORA INFORMATYCZNEGO W POLSCE

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Algorytmy dla maszyny PRAM

Informatyka. II stopień. Ogólnoakademicki. Stacjonarne/Niestacjonarne. Kierunkowy efekt kształcenia - opis WIEDZA

Zakładane efekty kształcenia dla kierunku

Zakładane efekty kształcenia dla kierunku

Kierunek Informatyka stosowana Studia stacjonarne Studia pierwszego stopnia

1. Tabela odniesień efektów kierunkowych do efektów obszarowych z komentarzami

Architektura komputerów

EFEKTY UCZENIA SIĘ DLA KIERUNKU INŻYNIERIA DANYCH W ODNIESIENIU DO EFEKTÓW UCZENIA SIĘ PRK POZIOM 6

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Załącznik nr 1 do Zapytania ofertowego: Opis przedmiotu zamówienia

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW INFORMATYKA. STUDIA PIERWSZEGO STOPNIA - PROFIL OGÓLNOAKADEMICKI

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Systemy Informatyki Przemysłowej

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

Program Obliczeń Wielkich Wyzwań Nauki i Techniki (POWIEW)

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

KIERUNKOWE EFEKTY KSZTAŁCENIA

PRZEWODNIK PO PRZEDMIOCIE

Metody optymalizacji soft-procesorów NIOS

Kurs wybieralny: Zastosowanie technik informatycznych i metod numerycznych w elektronice

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

PRZEWODNIK PO PRZEDMIOCIE

Efekt kształcenia. Wiedza

Architektura mikroprocesorów TEO 2009/2010

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Uniwersytet Śląski w Katowicach str. 1 Wydział Informatyki i Nauki o Materiałach

PRZEWODNIK PO PRZEDMIOCIE

Metodyka projektowania komputerowych systemów sterowania

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Informatyka, studia I stopnia (profil ogólnoakademicki) - wersja

Odniesienie do obszarowych efektów kształcenia Kierunkowe efekty kształcenia WIEDZA (W)

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Zapisywanie algorytmów w języku programowania

PRZEWODNIK PO PRZEDMIOCIE

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

[1] [2] [3] [4] [5] [6] Wiedza

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

KIERUNKOWE EFEKTY KSZTAŁCENIA

Podstawy Informatyki Systemy sterowane przepływem argumentów

Nazwa przedmiotu. Załącznik nr 1 do Uchwały nr 70/2016/2017 Rady Wydziału Elektrycznego Politechniki Częstochowskiej z dnia r.

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Efekty kształcenia dla kierunku: TELEINFORMATYKA Wydział: WYDZIAŁ AUTOMATYKI, ELEKTRONIKI I INFORMATYKI

Repetytorium z matematyki 3,0 1,0 3,0 3,0. Analiza matematyczna 1 4,0 2,0 4,0 2,0. Analiza matematyczna 2 6,0 2,0 6,0 2,0

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

Technologie informacyjne

Odniesienie symbol II/III [1] [2] [3] [4] [5] Efekt kształcenia. Wiedza

KIERUNKOWE EFEKTY KSZTAŁCENIA

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

Recenzenci: Dr hab. inż. Adam Mrozek], Prof. nadz. Politechniki Śląskiej Prof. dr hab. inż. Jacek Mościński, Katedra Informatyki AGH Projekt okładki: Elżbieta Alda Książka jest przeznaczona dla zainteresowanych architekturą współczesnych komputerów wieloprocesorowych, przetwarzaniem równoległym i rozproszonym, systemami wysokiej dostępności oraz metodami ochrony danych przed utratą lub zniszczeniem, a więc m.in. dla studentów kierunku informatyka, dla pracowników instytutów naukowo-badawczych i dla projektantów systemów informatycznych. Copyright by Jacek Kitowski Email: kito@uci.agh.edu.pl Kraków 2000 ISBN 83-909958-3-2 Utwór w całości ani we fragmentach nie może być powielony ani rozpowszechniony bez pisemnej zgody posiadacza praw autorskich. Wydawnictwo i druk CCNS, Sp. z o.o. Kraków, ul. Piastowska 44B

Spis treści Przedmowa 11 1 Wprowadzenie 15 2 Metody oceny wydajności systemów... 21 2.1 Wstęp......... 21 2.2 Klasyczne miary wydajności... 22 2.3 Cechy miar wydajności... 23 2.4 Syntetyczne miary wydajności... 25 2.5 Jądra programowe... 26 2.6 LINPACK... 27 2.7 Perfect... 30 2.8 SPEC... 31 2.8.1 Zestaw SPEC CPU95... 32 2.8.2 Zestaw SPEC CPU2000... 36 2.8.3 Pozostałe zestawy... 38 2.9 SAP R/3... 41 2.10 BaanIY... 43 2.11 TPC.... 2.11.1 Zestaw TPC-C..... 44 2.11.2 Zestaw TPC-D...... 47 2.11.3 Zestawy TPC-H i TPC-R... 48 2.12 Podsumowanie.'.'TT'...... 49 3 Tendencje rozwojowe procesorów 53 3.1 Wstęp... 53 3.2 Procesory komputerów systemów otwartych... 54

8 SPIS TREŚCI 3.2.1 Technologia CISC... 57 3.2.2 Technologia RISC... 58 3.2.3 Rozwój pamięci operacyjnej... 59 3.3 Procesory IBM... 59 3.4 Procesory firmy SUŃ Microsystems... 62 3.5 Procesory firmy Compaq.....64 3.6 Procesory firmy SGI... 65 3.7 Procesory firmy Hewlett-Packard... 66 3.8 Procesory Intel... 68 3.8.1 Architektura IA-32...:... 69 3.8.2 Architektura IA-64....,... 70 3.9 Porównanie współczesnych procesorów............. 74 3.9.1 Wnioski... 77 3.10 Tendencje rozwojowe procesorów.... 78 3.10.1 Rozwój procesorów w najbliższych latach.... 78 3.10.2 Nowe projekty procesorów... 79 3.11 Podsumowanie....,...,;.... 80 4 Komputery systemów otwartych i modele programowania 83 4.1 Wstęp... 84 4.2 Modele obliczeń równoległych... 86 4.3 Klasyfikacja architektur komputerowych... 87 4.3.1 Mechanizm sterowania... 88 4.3.2 Organizacja przestrzeni adresowej... 90 4.3.3 Granulacja procesów... 93 4.3.4 Teoretyczny model komputera równoległego... 94 4.3.5 Warstwa komunikacyjna... 95 4.4 Przykład architektury... 99 4.5 Metody oceny wydajności obliczeń równoległych... 101 4.5.1 Metryki wydajności... 102 4.6 Podsumowanie... 105 5 Architektury komputerowe dla zastosowań przemysłowych, ł komercyjnych 109 5.1 Wstęp... 109 5.2 Kształtowanie się trendów rynku komputerowego... 112

SPIS TREŚCI 9 5.2.1 Przetwarzanie scentralizowane... 112 5.2.2 Przetwarzanie rozproszone... 113 5.2.3 Cechy systemów rozproszonych...115 5.3 Rozwój systemów sieciowych... 117 5.3.1 Koncepcja obliczeń sieciowych... 117 5.3.2 Przegląd trendów rozwojowych... 118 5.3.3 Podsumowanie... 119 5.4 Przegląd architektur... 120 5.4.1 Systemy SMP... 120 5.4.2 Architektury cc-numa... 122 5.4.3 Równoległe SMP... 125 5.4.4 Systemy wysokiej dostępności... 127 5.4.5 Systemy operacyjne... 128 5.5 Podsumowanie... 130 5.5.1 Wysoka dostępność i bezpieczeństwo systemów komputerowych... 130 5.5.2 Wybór architektury i wnioski... 131 6 Systemy komputerowe wysokiej dostępności 135 6.1 Wymagania wysokiej dostępności... 135 6.1.1 System pracy ciągłej... 139 6.2 Wprowadzenie w zagadnienia projektowania... 141 6.2.1 Wymagania projektowe i redundancja... 141 6.2.2 Usługi serwisowe... 146 6.2.3 Wnioski... 146 6.3 Pamięci masowe... 147 6.3.1 Magistrale pamięci masowej... 148 6.3.2 Podsystemy dysków magnetycznych... 149 6.3.3 Przykłady rozwiązań... 153 6.4 Sieciowe zaplecze danych... 155 6.5 Implementacja wymagań RAS... 156 6.5.1 Przykłady rozwiązań... 157 6.6 Klastry wysokiej dostępności... 161 6.7 Systemy oprogramowania... 165 6.8 Podsumowanie... 167

10 SPIS TREŚCI 7 Składowanie i udostępnianie dużych zbiorów danych 169 7.1 Wstęp... 169 7.2 Przegląd problematyki zarządzania zbiorami wielkiej objętości 170 7.2.1 Modele składowania i udostępniania danych... 171 7.2.2 Porównanie parametrów nośników informacji i podstawowych urządzeń... 172 7.3 Technologia zapisu liniowego... 174 7.4 Urządzenia o dostępie pośrednim... 175 7.4.1 Zautomatyzowane biblioteki... 175 7.4.2 Elementy integrujące... 176 7.4.3 Przykłady urządzeń... 176 7.5 Systemy zarządzania danymi... 179 7.5.1 Rodzaje systemów... 179 7.5.2 Przykłady systemów zarządzania... 181 7.6 Podsumowanie... 184 8 Porównanie producentów w zakresie systemów otwartych 185 8.1 Porównanie wydajności maszyn... 185 8.2 Wybór producenta... 190 8.3 Przegląd producentów sprzętu... 194 8.3.1 SUŃ Microsystems... 195 8.3.2 Hewlett-Packard... 196 8.3.3 IBM... 196 8.3.4 Compaq Computer Corporation... 197 9 Zakończenie 199 Spis rysunków Spis tablic Literatura 201 203 '':,* 207

Rozdział l Wprowadzenie Burzliwy wzrost zapotrzebowania na usługi informatyczne praktycznie w każdej dziedzinie życia ludzkiego powoduje gwałtowny i wszechstronny rozwój prac podstawowych, a zwłaszcza aplikacyjnych z tego zakresu. Wiąże się to z bardzo szerokim obszarem problemowym informatyki, jako nauki o przetwarzaniu, pobieraniu, przesyłaniu, przechowywaniu i interpretacji informacji. Jej udział w życiu społeczeństwa ciągle wzrasta, stając się jednocześnie coraz bardziej naturalnym i mniej widocznym. Zastosowanie metod, środków i narzędzi informatyki w życiu codziennym i do realizacji celów w pracy zawodowej stanowić będzie wkrótce (i niejednokrotnie już stanowi) niekwestionowany element egzystencji ludzi. Istotnym problemem jest nabycie umiejętności, które pozwolą na dostrzeganie zadań i celów rozwiązywalnych z użyciem technik informatycznych. Dla wspomagania wymienionych procesów konieczny jest dalszy rozwój tej nauki, aby jej usługi uczynić bardziej przyjaznymi dla użytkownika. Sieci rozległe oraz ogólnoświatowy zasięg Internetu sprzyjają postrzeganiu rozproszonych w świecie zasobów jako całości, co znajduje wyraz w globa-lizacji usług informatycznych, realizowanych niezależnie od miejsca i czasu. Rozwijane są strategie służące temu celowi (np. grid computing) [25, 113]. Takie podejście stawia wysokie wymagania dotyczące efektywności przetwarzania i transmisji danych, zastosowania odpowiednich paradygmatów obliczeniowych i architektur komputerowych, ochrony i poufności danych, a także wysokiej dostępności usług. Wygodne i niezawodne usługi informatyczne można rozumieć jako usługi dostarczane w sposób wystarczająco efektywny, w sposób ciągły i trwały, a także w sposób zapewniający bezpieczeństwo oraz poufność informacji. Zagadnienia te są tematyką naukowo-badawczą intensywnie realizowaną przez wiele ośrodków na świecie. 15

16 Rozdział l. Wprowadzenie Efektywność realizacji usług informatycznych może być rozumiana bardzo szeroko i niewątpliwie wiele elementów wpływa na jej osiągnięcie. Dla potrzeb przedstawianej pracy ograniczymy się do zagadnień związanych z architekturą systemów komputerowych oraz ich najważniejszego elementu, jakimi są procesory. Na podstawie heurystycznego prawa Moore'a (np. [118]) ocenia się, że ciągu każdych 18-24 miesięcy pojawia się nowy procesor, posiadający moc obliczeniową dwukrotnie wyższą w porównaniu z poprzednikiem. Procesory, architektury systemów wieloprocesorowych, modele programowania oraz środowiska programowe są przedmiotem intensywnych badań pod względem zapewnienia odpowiedniej wydajności i ciągłości pracy. Bezpieczeństwo informacji może być analizowane w wielu aspektach dotyczących jej ochrony przed przypadkowym lub umyślnym zniszczeniem, ujawnieniem lub modyfikacją. W odniesieniu do systemów komputerowych pracy ciągłej zagadnienia te obejmują, między innymi, metody składowania i wykorzystania danych oraz ochronę systemów informatycznych przed penetracją zewnętrzną. Inwestycje w zakresie informatyzacji przejawiają się korzystnie w wielu dziedzinach. Wśród przykładów wymienić można: rozwój społeczeństwa w zakresie powszechnego wykorzystania usług informatycznych, w zastosowaniach przemysłowych lub komercyjnych globalizacja przedsiębiorstw, objawiająca się wyższą konkurencyjnością produktów, skuteczną ich promocją i marketingiem oraz mniejszymi kosztami produkcji, w badaniach naukowo-technicznych prowadzenie badań na światowym poziomie. Podejmując decyzje dotyczące inwestycji w zakresie systemów informatycznych uwzględniać się powinno wzajemne zależności pomiędzy sprzętem i oprogramowaniem. Określić trzeba kilka elementów, m.in.: podstawowe cele informatyzacji, rodzaj wykonywanych obliczeń wraz z zakresem zastosowań, na przykład: naukowo-techniczne, wspomaganie zarządzania przedsiębiorstwem, usługi sieciowe,

17 - udział przetwarzania rozproszonego, własności aplikacji, uwzględniające: - wybrany model programowania i algorytm obliczeniowy, - zastosowaną metodę implementacji danego algorytmu, - docelową architekturę komputera i system operacyjny, - rozmiar zagadnienia i liczbę użytkowników, - środki programistyczne, służące do oceny wydajności i optymalizacji aplikacji, strategie w zakresie niezawodności systemu i ochrony informacji, w tym: - wymagany poziom dostępności i architekturę systemu, - model składowania i udostępniania danych wraz z realizacją, - środki ochrony informacji przed niepowołanym dostępem. W typowych zastosowaniach, obliczenia naukowo-techniczne różnią się od obliczeń stosowanych we wspomaganiu zarządzania przedsiębiorstwem stosunkiem ilości obliczeń zmiennoprzecinkowych do obliczeń stałoprzecinkowych oraz stopniem wykorzystania zbiorów rezydujących na nośnikach zewnętrznych. W pierwszym przypadku najważniejsza jest wydajność procesora oraz przepustowość podsystemu pamięci operacyjnej; w drugim ograniczeniem wydajności całego systemu jest często wielkość i czas dostępu do informacji umieszczonej na nośnikach zewnętrznych system powinien być bardziej zrównoważony. Oczywiście przy najbardziej złożonych obliczeniach symulacyjnych i wizualizacji dużych zbiorów danych, wykonywanych na przykład w ramach projektu ASCI [121], istotny jest każdy element architektury systemu. Rozwijane są algorytmy równoległych procedur we/wy oraz obliczeń na sieci komputerów. W przypadku obszernych problemów, jak na przykład wspomaganie zarządzania przedsiębiorstwem o zdecentralizowanej strukturze, istotne jest zaprojektowanie systemu rozproszonego, który dopuszczając autonomiczność oddziałów przedsiębiorstwa, będzie zapewniał jednocześnie integralność strategii jego rozwoju i głównych kierunków działalności. Model komputerowy, będący implementacją algorytmu obliczeniowego, powinien uwzględniać cechy charakterystyczne wykorzystywanej architektury komputerowej. Tak więc w projekcie algorytmu korzystnie jest brać pod uwagę zarówno cechy charakterystyczne problemu obliczeniowego, jak również możliwie wierne jego odwzorowanie na architekturę, które pozwala maksymalnie wykorzystać jej efektywność. Zagadnienie to jest zwłaszcza istotne

18 Rozdział l. Wprowadzenie w przypadku systemów wieloprocesorowych, na których jest możliwe użycie różnych modeli obliczeń równoległych. Aplikacje winny cechować się odpornością na błędy ze strony użytkowników i być łatwo rozbudowywane. Jest to ważne szczególnie w przypadku aplikacji rozproszonych uruchamianych zdalnie. Przydatne może się okazać wykorzystanie programowania komponentowego, systemów agentowych oraz innych zaawansowanych technik z zakresu inżynierii systemów. Należy się spodziewać większego udziału prac z zakresu jakości oprogramowania. Rozmiar problemu (określonego w uproszczeniu przez rozmiar struktur danych wykorzystywanych w implementacji) jest sprawą bardzo istotną. Przy bardzo małych rozmiarach problem może mieścić się w całości w pamięci podręcznej jednego procesora, przy większym rozmiarze wykorzystana zostaje pamięć operacyjna wraz z mechanizmami stronicowania dostarczanymi przez system operacyjny. Obliczenia naukowo-techniczne o największej skali złożoności oraz w zasadzie wszystkie aplikacje komercyjne realizowane są dla danych znajdujących się poza pamięcią operacyjną i rezydujących na nośnikach zewnętrznych (ang. outof-core). Podczas określenia efektywności aplikacji lub systemu komputerowego wykonującego daną aplikację, korzysta się z licznego zbioru narzędzi wspomagających. Podejście takie jest zasadne zwłaszcza w przypadku algorytmów równoległych; zastosowanie narzędzi monitorujących obciążenie poszczególnych węzłów obliczeniowych, jak również określających momenty synchronizacji obliczeń oraz narzut komunikacyjny pozwala na optymalizację programu. Dla określenia wydajności w typowych zastosowaniach stosuje się standardowe metody opracowane przez międzynarodowe organizacje. Wymaganie wysokiej dostępności czyli zapewnienie ciągłości pracy i dostarczania usług informatycznych w trwały sposób leżące u podstaw projektów systemów komputerowych przeznaczonych do odpowiedzialnych zastosowań zakłada, iż prawdopodobieństwo wystąpienia błędu w elementach systemu jest niezerowe. Ogólne podejście do tolerowania uszkodzeń polega więc na użyciu redundancji. Wyróżnia się co najmniej jej trzy rodzaje czasu, informacji i redundancję fizyczną każda z nich może być przedmiotem oddzielnych studiów. Dwa ostatnie rodzaje uznano za najważniejsze przy realizacji systemu informatycznego o przeznaczeniu przemysłowym. Problematyka jakości oprogramowania, wpływająca bezpośrednio na spełnienie założeń projektowych, jako dziedzina posługująca się odrębnymi metodami i środkami, winna być traktowana do pewnego stopnia niezależnie od zagadnień sprzętowych. Projektant rozbudowanego systemu komputerowego pełni najczęściej obecnie rolę integratora w odniesieniu do aplikacji i sprzętu. Zapewnienie pracy ciągłej wiąże się z wbudowaniem odpowiednich mecha-

19 nizmów uodporniających system informatyczny na błędy oczekiwane. Jednak wraz ze wzrostem złożoności współczesnych systemów zwiększa się możliwość wystąpienia błędów (lub stanów) nieoczekiwanych (41 j, których skutków nie potrafi się w pełni przewidzieć. Wśród tego typu błędów, szczególnie niebezpieczne są błędy nadciągające, o przedłużonym okresie występowania i ich całkowite usunięcie jest istotnie trudniejsze, niż innych błędów. Typowym przykładem błędów nadciągających był tak zwany problem roku 2000. Ze względu na złożony charakter istniejących aplikacji i rozbudowany sprzęt komputerowy, ich usunięcie może okazać się czasochłonne i wymagać prac jeszcze przez kilka lat po przełomie wieków. Problem ten jest zwłaszcza ważny w systemach czasu rzeczywistego; zainteresowanego Czytelnika należy w tym miejscu odesłać do specjalistycznej literatury. Na zakończenie warto jest zwrócić uwagę na dosyć oczywisty fakt, że każda nauka, a zwłaszcza informatyka rozwija się bardzo szybko i wymaga ciągłego uzupełniania i rozszerzania wiedzy. Dostarczyć jej mogą specjalistyczne czasopisma, czynny udział w konferencjach naukowych oraz śledzenie nowości publikowanych w Internecie.

Rozdział 2 Metody oceny wydajności systemów Celem niniejszego rozdziału jest przedstawienie szeregu typowych, standardowych metod oceny wydajności systemów komputerowych, z uwzględnieniem zróżnicowanego zakresu zastosowań [18]. Znajomość metod oceny pozwala na właściwą interpretację wyników podawanych przez producentów oraz wybór systemu komputerowego najbardziej odpowiedniego do potrzeb. Dla ilustracji zamieszczono przykładowe wartości uzyskane dla typowych konfiguracji sprzętu i oprogramowania. 2.1 Wstęp Producenci systemów komputerowych określają ich osiągi (ang. performance) za pomocą różnych parametrów. Określenie rzetelnych wskaźników osiągów systemów komputerowych (zwanych także metrykami [18] lub mniej precyzyjnie miarami wydajności) nie jest łatwe, gdyż, jak wspomniano w Rozdziale l, zależą one od szeregu wzajemnie zależnych czynników. Dla użytkownika ważnym czynnikiem jest szybkość obliczeń i/lub przepustowość systemu w odniesieniu do konkretnych aplikacji, dla realizacji których ma być on przeznaczony. Najprostsze rozwiązanie to wykonanie testowego ich przetwarzania na wybranym sprzęcie. Niestety, rzadko jest to możliwe. Zachodzi więc konieczność oceny w oparciu o wskaźniki osiągów określone na podstawie precyzyjnie zdefiniowanych zadań testowych, zwanych benchmar-kami komputerowymi 1 (ang. computer benchmarks). l Ze względu na brak dobrego polskiego odpowiednika często używa się określenia pochodzącego z języka angielskiego. 21

22 Rozdział 2. Metody oceny wydajności systemów 2.2 Klasyczne miary wydajności Wielu użytkowników ogranicza porównywanie szybkości komputerów do prostej analizy tabel liczb podawanych jako MIPS lub MFLOPS. Są to miary używane zarówno przy ocenie systemów przeznaczonych do zastosowań komercyjnych (pierwsza z nich używana jest zwłaszcza w odniesieniu do komputerów systemów centralnych typu mainframe),jak i obliczeń naukowo technicznych, dla oceny których stosuje się jednostki MFLOPS. Ich wspólną cechą jest stosunkowo niewielka praktyczna przydatność. Miara MIPS. MIPS jest skrótem pochodzącym z języka angielskiego Milion Instructions Per Socond. Niestety nie zostały sprecyzowane warunki dokonywania pomiaru, w szczególności nie wymaga się określenia programu z którego pochodzą te instrukcje oraz języka zapisu algorytmu, a także wersji kompilatora. W zastosowaniach komercyjnych mogą to być instrukcje pochodzące z programów napisanych tradycyjnie w COBOLu; niektórzy producenci procesorów podają wartości maksymalne (ang. peak) MIPS w oparciu o realizację najszybszych (a tym samym najprostszych) instrukcji. Z upowszechnieniem komputerów z procesorami typu RISC podawanie szybkości komputerów w MIPS jest coraz mniej uzasadnione procesory tego typu wykonują wiele instrukcji prostych, łatwych do dekodowania i przetwarzania potokowego, stąd też szybkości komputerów podawane w tzw. native MIPS są znacznie zawyżone. Z tych też powodów dokonano redefinicji pojęcia MIPS: przyjmując, że szybkość l MIPS ma komputer DĘĆ VAX 11/780 (wprowadzony na rynek w roku 1978). Biorąc jednak pod uwagę wymienione powyżej czynniki, trudno przyjąć MIPS za użyteczną miarę szybkości komputerów. Komputer Liczba procesorów MIPS IBM S/390 G6/ZZ7 (664 MHz) IBM S/390 G5/YX6 IBM S/390 G5/RX6 SUN E10000 (400 MHz) HP V2500 (440 MHz) 12 10 10 64 24 1644 1069 901 3000 1550 Tablica 2.1: Wybrane wartości metryki IBM MIPS Najpopularniejszym obecnie zakresem zastosowań tej jednostki miary wydajności jest rynek komputerów typu centralnego (ang. mainframes), zwanych obecnie superserwerami firmy IBM (systemu S/390). Porównań modeli

2.3. Cechy miar wydajności 23 dokonuje się właśnie z użyciem tej jednostki, definiując ją jako IBM MIPS [59, 64]. Ponieważ IBM nie publikuje wyników wydajności komputerów typu centralnego z wykorzystaniem innych metryk, dlatego pozostali producenci starają się oszacować wydajność swoich maszyn także na podstawie miary MIPS. Przykładowe wyniki zamieszczono w Tablicy 2.1 [59, 135]. Miara MFLOPS. MFLOPS (używane jest też oznaczenie Mflop/s) jest tradycyjną jednostką szybkości komputerów w zakresie obliczeń numerycznych; dosłownie oznacza `milion operacji zmiennoprzecinkowych w sekundzie' (ang. Million Floating-Point Operations per Second). Producenci sprzętu komputerowego podają często wydajność maksymalną, Peak Mflop/s (lub theoretical peak, oznaczaną przez Rpeak) teoretycznie najwyższą możliwą szybkość operacji zmiennoprzecinkowych (obejmujących zazwyczaj dodawanie i mnożenie). Jak łatwo się przekonać, dla większości współczesnych komputerów wyposażonych w mikroprocesory typu RISC, wielkość ta ma 2- lub 4-krotną wartość częstości zegara, gdyż architektura superskalarna procesorów umożliwia realizację 2 lub 4 operacji zmiennoprzecinkowych w jednym cyklu. Własność ta nosi nazwę drożności procesora. W przypadku maszyn o wielu procesorach często podaje się moc zagregowaną, wynikającą z liczby procesorów. Dla przykładu, dla serwera klasy podstawowej L2000, produkcji firmy Hewlett-Packard, wyposażonego w jeden 4-drożny procesor PA-8500, pracujący z częstotliwością 440 MHz, maksymalna wydajność przetwarzania zmiennoprzecinkowego, Rpeak = 1760 Mflop/s, a dla serwera Compaq GS 140 6/575 (z ośmioma 2-drożnymi procesorami Alpha 21264 o częstotliwości 575 MHz) Rpeak = 9200 Mflop/s [16]. Jest rzeczą oczywistą, że tak określone wartości nie mogą być wystarczającymi miarami osiągów sprzętu komputerowego. 2.3 Cechy miar wydajności Jak wspomniano, najlepszym sposobem oceny przydatności sprzętu komputerowego i oprogramowania do określonego celu, jest testowe wykonanie na nim własnych programów, reprezentatywnych dla klasy zadań realizowanych w przyszłości. Nie zawsze jest to możliwe, gdyż często dokonuje się zakupu sprzętu jednocześnie z tworzeniem oprogramowania. Konieczne jest podjęcie decyzji na podstawie dostępnych wyników standardowykh zadań testowych, przeznaczonych do mierzenia osiągów systemów komputerowych lub ich podsystemów. Stawiane są im, m.in., następujące wymagania [18]:

reprezentacja wybranej klasy rzeczywistych zastosowań (zgodność z potencjalnymi aplikacjami), dobra metryka: liniowa, monofoniczna, ortogonalna, zapis w językach programowania wysokiego poziomu - dla zapewnienia przenośności pomiędzy platformami sprzętowymi i programowymi, łatwość dostosowania do zmian wynikających z postępu w zakresie technologii (np. pojawienie się dużych pamięci podręcznych, kompilatorów o wysokim stopniu optymalizacji, nowych rodzajów obliczeń i przetwarzania danych), objęcie możliwie szerokiego zakresu testowanych elementów składowych systemów komputerowych (na przykład: procesor, pamięć podręczna, pamięć operacyjna, dyski, sieci, kompilatory i współpraca z typowymi systemami zarządzania bazami danych), łatwość wykonania pomiarów, powszechna akceptacja ze strony użytkowników i producentów. Miary wydajności można podzielić na następujące główne kategorie: syntetyczne miary wydajności (ang. synthetic benchmarcs), są programami, których celem nie jest wykonanie konkretnych, użytecznych obliczeń czy przetwarzania danych o charakterze komercyjnym, lecz określenie wydajności dla różnych, podstawowych operacji wykonywanych przez komputer. Przykładami są testy Dhrystone i Whetstone. Były one w powszechnym użyciu w latach 80-tych, obecnie praktycznie nic są stosowane. jądra programowe (ang. kernels), są takimi wybranymi fragmentami rzeczywistych programów, których wykonanie zajmuje najwięcej czasu. Przykłady to Livermore Fortran Kernels i NAS Kernel Benchmark Program. Mimo niewątpliwie dużej wiarygodności uzyskiwanych wyników są stosunkowo mało rozpowszechnione w praktyce ze względu na trudności implementacyjne. algorytmy (ang. algorithms), to programy testowe reprezentujące kompletne algorytmy obliczeń numerycznych, np. FTT czy algorytmy numerycznej algebry liniowej. Typowym przykładem tej kategorii jest popularny zestaw LINPACK.

2.4. Syntetyczne miary wydajności 25 aplikacje (ang. applications), są kompletnymi programami komputerowymi, przeznaczonymi do rozwiązywania dobrze zdefiniowanych zagadnień z zakresu fizyki, chemii lub techniki, a także wspomagania zarządzania przedsiębiorstwem. Do tej kategorii należą Perfect Benchmarks, ParkBench, a także bardzo istotne dla oceny przetwarzania o charakterze komercyjnym - miary z rodziny SPEC, SAP, NotesBench i Baan. specyfikacje (ang. specifications), stanowią zbiór wymagań funkcjonalnych, jakie powinny być zrealizowane przy dowolnej implementacji sprzętowej i programowej. Przykładem specyfikacji są rozpowszechnione w zakresie przetwarzania komercyjnego miary TPC-C, TPC-D oraz inne z rodziny TPC. 2.4 Syntetyczne miary wydajności Whetstone. Jest to pierwszy program napisany w celu porównywania osiągów komputerów; został opublikowany w roku 1976 [12]. Jest on przeznaczony do porównań wydajności komputerów w zakresie obliczeń numerycznych. Znaczącą część tego programu, napisanego w Algolu, stanowią wywołania funkcji z biblioteki matematycznej. Mały rozmiar programu i danych jest powodem ograniczenia badania osiągów do podsystemu procesor - pamięć podręczna. Ostatnia oficjalna wersja (pochodząca z British Standard Institute) jest napisana w języku Pascal. Dhrystone. Miara ta została opublikowana w roku 1984 (77j. Powstała w oparciu o statystyki częstotliwości występowania operacji typowych dla zastosowań nienumerycznych, takich jak systemy operacyjne, kompilatory lub edytory. Są to głównie operacje na liczbach stałoprzecinkowych (w tym na ciągach znaków), ze stosunkowo prostymi instrukcjami, znacznie mniejszą liczbą obliczeń iteracyjnych niż w typowych zastosowaniach obliczeniowych, a większą liczbą instrukcji warunkowych i wywołań procedur. Pierwsza wersja była zaprogramowana w języku Ada, aktualnie używana w języku C. Ze względu na mały rozmiar programu i danych również w tym przypadku badany jest co najwyżej udział pamięci podręcznej.

26 Rozdział 2. Metody oceny wydajności systemów 2.5 Jądra programowe Livermore Fortran Kernels (LFK). Powstawały w Lawrence Livermore National Laboratory od roku 1970 [52]. Aktualnie jest ich 24 i pochodzą z programów do obliczeń numerycznych, realizowanych w tym ośrodku i dzięki temu obejmują one typowe przypadki pętli występujące w obliczeniach zmiennoprzecinkowych. Komputer HP C200 SUN Ultra2 LFK (Mflop/s) Fortran 77 C 99.3 76.1 107.4 54.7 Rpeak Mflop/s 800 600 Tablica 2.2: Przykładowe wyniki dla zestawu LFK porównane z wydajnością maksymalną Metryką LFK jest średnia geometryczna wydajności obliczeń typowych pętli (podawana w Mflop/s, dla dwóch różnych języków programowania - Fortranu77 i C). Przykładowe wyniki pokazano w Tablicy 2.2 [47]. Różnice w wartościach występujące przy implementacji algorytmów w różnych językach programowania pozwalają jednocześnie wysnuć wnioski na temat zdolności optymalizacji poszczególnych kompilatorów. Widać także, jak wiele różni się moc osiągana w konkretnym zastosowaniu od mocy maksymalnej. NAS Kernels. Numerical Aerodynamic Simulation Kernel Benchmark Program (NAS) został opracowany w NASA Ames Research Center i obejmuje 7 testowych jąder programów [2]; każdy z testów składa się z pętli iteracyjnie wywołującej określony podprogram. Podprogramy te powstały w trakcie realizacji projektów z zakresu obliczeniowej mechaniki przepływów i zapisane są we Fortranie. Oryginalnie przeznaczone dla maszyn wektorowych, zostały uzupełnione zestawem odpowiednim dla komputerów równoległych, składającym się z 5 jąder programowych i 3 programów o charakterze symulacyjnym [122, 123). Zestaw NAS pozostawia dowolność implementacji, definiując jedynie problem i metodę rozwiązania. W Tablicach 2.3 i 2.4 przedstawiono jądra i programy wchodzące w skład zestawu. Dominującą problematyką są obliczenia numeryczne, stąd też przydatność tego typu testów dla przetwarzania danych komercyjnych jest ograniczona.

2.6. LINPACK 27 Nazwa EP MG CG FT IS Opis Generacja liczb pseudolosowych - bardzo małe wymagania komunikacyjne Obliczenia wielosiatkowe, wysoki stopień strukturalności - komunikacja bliskiego i dalekiego zasięgu Metoda gradientów sprzężonych dla obliczeń wartości własnych macierzy rzadkiej Rozwiązanie cząstkowych równań różniczkowych z transformata FFT - duży narzut komunikacyjny Sortowanie Tablica 2.3: Jądra programowe równoległego zestawu NAS Nazwa LU SP BT Opis Rozwiązanie układu równań liniowych metodą triangulacji Rozwiązanie równań liniowych bez dominującej głównej przekątnej Rozwiązanie równań liniowych bez dominującej głównej przekątnej metodą blokową 2.6 LINPACK Tablica 2.4: Programy testowe równoległego zestawu NAS Miary wydajności w zakresie obliczeń naukowo-technicznych uzyskane z wykorzystaniem zestawu LINPACK należą do najczęściej cytowanych [16] i z tego względu zasługuje on na dokładniejsze omówienie. LINPACK jest nazwą biblioteki procedur numerycznej algebry liniowej [17], która jest używana także jako algorytm do oceny wydajności. Wydajność komputerów jest określana na podstawie szybkości rozwiązywania układu równań liniowych z macierzą gęstą, przy czym przeważają operacje zmiennoprzecinkowe. W oparciu o teoretyczną złożoność obliczeniową (liczbę operacji zmiennoprzecinkowego mnożenia i dodawania wynoszącą 2n 3 /3 + 2n 2, gdzie n jest liczbą równań w układzie) czas obliczeń jest przeliczany na liczbę operacji zmiennoprzecinkowych na sekundę i podawany w jednostkach Mflop/s lub Gflop/s. Warto zwrócić uwagę, że w tych obliczeniach testowych nie występują operacje dzielenia i nie są wywoływane funkcje matematyczne. Większość czasu zajmuje procedura o małej liczbie instrukcji, co oznacza, że nawet mała pamięć podręczna procesora dla instrukcji (ang. instruction cache) nie

28 Rozdział 2. Metody oceny wydajności systemów wpływa na degradację osiągów (występuje lokalność kodu), natomiast organizacja pamięci podręcznej dla danych (ang. data cache) może mieć wpływ na zmierzone osiągi. W systematycznie uaktualnianym Raporcie [16] podawane są trzy metryki: DP Mflop/s, TPP Mfiop/s, Rpeok Mflop/S. Pierwsza z nich DP, zwana również LINPACK Benchmark to liczba Mflop/s uzyskana przy rozwiązywaniu układu 100 równań za pomocą programu z biblioteki LINPACK (procedury DGEFA i DGESL), w którym zabrania się wykonywania zmian; jest tylko możliwe wykorzystanie dowolnej optymalizacji dokonywanej przez kompilator. Jest to tzw. LINPACK 100x100. Druga metryka TPP (ang. Toward Peak Performance) to liczba Mflop/s uzyskana przy rozwiązywaniu układu 1000 równań (LINPACK 1000x1000). Dozwolone jest wprowadzenie dowolnej zmiany w algorytmie oraz optymalizacji jego implementacji pod warunkiem uzyskania takiej samej dokładności rozwiązania, jak przy stosowaniu standardowej metody eliminacji Gaussa (używanej w przypadku DP). Musi być także użyty tzw. driver program, który ustala wartość poszczególnych elementów macierzy, wywołuje procedury rozwiązujące układ równań, weryfikuje poprawność uzyskanego rozwiązania oraz wyznacza liczbę operacji zmiennoprzecinkowych na podstawie czasu obliczeń. Ostatnia wielkość Rpeak stanowi teoretyczną maksymalną wydajność przetwarzania, podawaną także w Mflop/s i określaną na podstawie maksymalnej liczby operacji zmiennoprzecinkowych wykonywanych w jednym cyklu procesora. Przykładowe wyniki umieszczono w Tablicy 2.5. W podobny sposób (na podstawie czasu potrzebnego na rozwiązanie układu równań) są porównywane osiągi komputerów równoległych. Miara oznaczona jest nazwą LINPACK Parallel. W tym przypadku rozmiar układu równań nie jest ustalony rozwiązywany jest największy układ równań, możliwy do implementacji na danej maszynie. W raporcie podawane są następujące metryki: Rmax - szybkość (w Gflop/s) rozwiązywania największego układu równań na danym komputerze,

2.6. LINPACK 29 Komputer Cray T9xx (32 proc. 2.2ns) Cray T9xx (8 proc. 2.2 ns) Cray T9xx (l proc. 2.2ns) Compaq 8400 6/575 (8 proc. 575MHz) Compaq 8400 6/575 (l proc. 575MHz) (procesor Alpha 21264) HP N4000 (8 proc. 440MHz) HP N4000 (l proc. 440MHz) (procesor PA-8500) DP Mflop/s - - 705-460 - 375 TPP Mflop/s Rpeak Mflop/s 29360 57600 10880 4400 1603 1800 5305 847 9600 1150 6410 14080 1290 1760 IBM RS6K/397 (160MHz) (procesor POWER2) 315 532 640 IBM RS6K SP SMP (8 proc. 222MHz) IBM RS6K SP SMP (l proc. 222MHz) (procesor POWER3) - 250 3516 684 7104 888 SUN HPC 450 (4 proc. 400MHz) SUN HPC 450 (l proc. 400MHz) (procesor UltraSPARCII) - 183 1841 552 3200 800 PC (l proc. 450MHz) (procesor Intel Pentium II Xeon) 98 295 450 Tablica 2.5: Przykładowe wyniki dla zestawu LINPACK Nmax ~ rozmiar największego układu równań, M1/2 ~ rozmiar układu, dla którego uzyskuje się l/2rmax, Rpeak ~ teoretyczna maksymalna wydajność przetwarzania w Gflop/s dla danej maszyny. Są one określone dla konkretnej instalacji wyposażonej w Nproc procesorów. Wyniki są istotne zwłaszcza w przypadku komputerów w wielu procesorach. W Tablicy 2.6 przedstawiono przykładowe wyniki dla zestawu LINPACK Parallel [16]. Pozwalają one ocenić jak wiele różni się wydajność otrzymana w konkretnej aplikacji od wydajności maksymalnej, a także jak duży jest rozmiar problemu, dla którego uzyskuje się połowę wydajności dla aplikacji. Na podstawie wartości tych parametrów ocenić można przydatność architektury określonego typu w obliczeniach naukowo-technicznych. Na czele listy w Tablicy 2.6 lokują się maszyny wykonywane jednostkowo w ramach programu ASCI [121], zawierające wiele tysięcy procesorów. Pełna lista zawiera także maszyny o mniejszej ich liczbie, dostępne w przeciętnym centrum obliczeniowym.

30 Rozdział 2. Metody oceny wydajności systemów Komputer Nproc Rmax Gflop/s Nmax Nl/2 Rpeak Gflop/s ASCI Red Intel 9632 2380 362880 75400 3207 (Pentium II Xeon, 333MHz) ASCI Blue-Pacific, IBM SP 5808 2144 431344-3868 (PPC604e, 332MHz) ASCI Blue-Mountain SGI 5040 1608 374400 138000 2520 Cray T3E-1200 1488 1127 148800 28272 1786 (Alpha 21164, 600 MHz) SGI Origin2000 2048 691 229248 80640 1024 (R10000, 250MHz) IBM SP 475 nodes 1900 547 244000 58000 1262 (PPC 604e, 332MHz) Tablica 2.6: Przykładowe wyniki dla zestawu LINPACK Parallel Najważniejszą zaletą miar wydajności określonych z wykorzystaniem zestawów LINPACK jest ich powszechność. Jest to przyczyna, dla której niektórzy producenci zwracają szczególna uwagę na optymalizowanie sprzętu i oprogramowania pod względem uzyskania możliwie najlepszych wyników właśnie dla tego typu obliczeń. Nie musi to stosować się bezpośrednio do zadań innego typu. LINPACK służy do badania jedynie procesora i pamięci z uwagi na realizację operacji zmiennoprzecinkowych. Ze względu na wykorzystywany charakter obliczeń nie jest on użyteczny przy wyborze sprzętu do zastosowań komercyjnych oraz tam, gdzie przewidywany jest duży udział operacji wejścia/wyjścia. Można go używać do porównań wtedy, gdy brak jest wyników pochodzących z zadań testowych innego rodzaju, na przykład ze zbioru SPEC lub/i TPC. Warto zwrócić uwagę na to, że na podstawie Rmax tworzona jest inna, ważna lista lista 500 systemów komputerowych o największej mocy obliczeniowej tzw. lista TOP500 [19], służąca, m.in., do oceny rozpowszechnienia w świecie sprzętu określonego typu. 2.7 Perfect Perfect (ang. Perfect - Performance Evaluation for Cost-Effective Transformation) jest przykładem zestawu aplikacji powstałego we współpracy środowisk naukowego i przemysłowego, zainicjowanej w roku 1987 [45]. Celem tej współpracy było opracowanie metodologii i narzędzi oceny osiągów (wektorowych) superkomputerów. W wyniku powstał zestaw 13 programów testo-

2.8. SPEC 31 wych, obejmujących różnorodne zagadnienia obliczeniowe (m.in. dynamika przepływów, modelowanie procesów chemicznych i fizycznych, przetwarzanie sygnałów) liczących łącznie około 60000 linii w Fortranie [13]. Istotnym problemem okazało się przeniesienie na różne komputery skomplikowanych programów do obliczeń naukowych i inżynierskich; jest to zadanie o wiele trudniejsze niż w przypadku miar syntetycznych, jąder programowych czy też realizacji pojedynczych algorytmów. 2.8 SPEC SPEC (ang. Standard Performance Evaluation Corporation) jest niekomercyjną organizacją powołaną w 1988 roku w celu tworzenia, rozwijania i upowszechniania standardowego zestawu zadań testowych dla oceny osiągów komputerów nowych generacji. Opracowana metodyka pomiaru wydajności jest obecnie najbardziej rozpowszechniona, a publikowane wskaźniki osiągów stanowią podstawową, ogólną miarę wydajności sprzętu, powszechnie akceptowaną przez użytkowników. Praktycznie każdy system komputerowy (z grupy systemów otwartych) jest charakteryzowany przez metryki SPEC. W skład SPEC wchodzą trzy grupy robocze i każda z nich opracowuje swoje zestawy testowe: Open Systems Group (OSG) - określenie miar wydajności dla procesorów i systemów komputerowych pracujących w środowiskach UNIK, NT, VMS; najważniejsze z nich to CINT95 i CFP95; High Performance Computing Group (HPC) - ocena wydajności systemów przeznaczonych dla intensywnych obliczeń numerycznych dużej skali; pod koniec roku 1996 został wprowadzony zestaw SPEChpc96 obejmujący dwie aplikacje: z zakresu obliczeń sejsmicznych (SPEC-seis96) oraz chemii obliczeniowej (SPECchem96); Graphics Performance Characterization Group (GPC) - określenie metod oceny wydajności podsystemów graficznych oraz środowisk OpenGL i Xwindows. Działalność korporacji SPEC obejmuje: opracowywanie zestawów testowych przeznaczonych do pomiaru osiągów komputerów; zestawy te obejmują programy źródłowe oraz narzędzia niezbędne do ich uruchomienia (zwraca się szczególną uwagę na przenośność programów) i są dostępne za opłatą po podpisaniu licencji określającej sposób wykorzystania,

32 Rozdział 2. Metody oceny wydajności systemów publikowanie (co kwartał) informacji i wyników testów dostępnych również elektronicznie [133]. SPEC przekazuje też wyniki pod adres internetowy (do Perfomance Database Server) [101] pod którym przechowywane są archiwa dotyczące wydajności systemów (z opóźnieniem kilku miesięcy w stosunku do publikacji). 2.8.1 Zestaw SPEC CPU95 Zestaw SPEC CPU95 (zwany w skrócie SPEC95) obejmuje dwa komplety: CINT95 - przeznaczony do pomiarów i porównywania osiągów dla obliczeń stałopozycyjnych, CFP95 przeznaczony do pomiarów i porównywania osiągów dla obliczeń zmiennopozycyjnych. Nazwy kompletów zaczynają się od liter C (jak powyżej) lub S, przy czym C (component) oznacza benchmark części systemu (uwzględniająk procesor, pamięć operacyjną i kompilator), zaś S (system) - systemu w całości. Obecnie używa się pierwszej grupy benchmarków. W zestawie SPEC95 występują 4 rodzaje metryk: "base" (SPECint_base95, SPECint_rate_base95, SPECfp_base95, SPECfp_rate_base95), "non-base" (SPECint95, SPECint_rate95, SPECfp95, SPECfp_rate95), "rate" (SPECint_rate_base95, SPECint_rate95, SPECfp_rate_base95, SPECfp_rate95) "non-rate" (SPECint_base95, SPECint95, SPECfp_base95, SPECfp95). Metryki "base" określa się z wykorzystaniem jedynie podstawowej (zachowawczej) optymalizacji w trakcie kompilacji, zaś metryki typu "non-base" dopuszczają możliwość stosowania najwyższego poziomu optymalizacji. Dla metryk typu "base" należy podawać dokładne dane o przyjętych parametrach kompilacji. Metryki "ratę" określają, jak wiele zadań może zrealizować komputer w ustalonym przedziale czasu, czyli są one miarą jego przepustowości, a metryki "non-rate" są miarą wydajności komputera. Jak widać z powyższego,

2.8. SPEC 33 metryki mierzące wydajność są przydatne jedynie do oceny systemów jednoprocesorowych. Na podstawie porównania metryk "non-rate" można dokonywać wyboru maszyny dla pojedynczego użytkownika, natomiast metryki "ratę" są szczególnie użyteczne przy wyborze maszyny przeznaczonej do wykorzystywania przez wielu użytkowników. Poprzednie wersje testów stanowiące zestaw SPEC92 nie są już publikowane. Okazały się one mało przydatne w ocenie współczesnych komputerów. Ich wyniki można spotkać w literaturze w odniesieniu do starszych rozwiązań sprzętowych. CINT95 Obejmuje 8 programów (napisanych w języku C) przeznaczonych do realizacji intensywnych obliczeń na liczbach stałoprzecinkowych. Dla ilustracji, w Tablicy 2.7 podano charakterystykę tych programów. Nazwa 099.go 124.m88ksim 126.gcc 129.compress 130.H 132.ijpeg 134.peri 147.vortex Opis Sztuczna inteligencja - symulacja gry w Go Symulator procesora serii 88000, wykonanie programu testowego tworzenie kodu dla procesora SPARC kompresja i dekompresja zbioru w pamięci operacyjnej LISP interpreter kompresja i dekompresja zbiorów graficznych Przetwarzanie ciągów znaków i liczb pierwszych w Perlu System bazy danych Tablica 2.7: Programy wchodzące w skład CINT95 Jak widać, CINT95 testuje procesor ze względu na operacje stałoprzecinkowe oraz jego współdziałanie z pamięcią podręczną i operacyjną, nie uwzględnia natomiast innych składników systemu komputerowego, takich jak na przykład zewnętrzne nośniki informacji. Jest on przydatny do badania jedno- i wieloprocesorowych komputerów dla zastosowań komercyjnych, w których zazwyczaj przeważają operacje na liczbach całkowitych. Metrykami CINT95 są: SPECint_base95 - Measure of Conservative Speed - geometryczna średnia ośmiu znormalizowanych miar szybkości uzyskanych przy zachowawczej kompilacji wymienionych wyżej programów testowych,

34 Rozdział 2. Metody oceny wydajności systemów SPECint95 - Measure of Optimised Speed - geometryczna średnia ośmiu znormalizowanych miar szybkości uzyskanych przy kompilacji z agresywną (najwyższą dostępną) optymalizacją, SPECint_rate_base95 - Measure of Conservative Throughput - geometryczna średnia ośmiu znormalizowanych miar przepustowości uzyskanych przy zachowawczej kompilacji programów testowych, SPECint_rate95 - Measure of Optimised Throughput - geometryczna średnia ośmiu znormalizowanych miar przepustowości uzyskanych przy kompilacji z agresywną optymalizacją. Znormalizowane miary wydajności wyznaczane są jako iloraz czasu wykonania poszczególnych programów na badanym systemie i czasu ich wykonania na komputerze SPARCstation 10/40 (40MHz SuperSPARC, bez pamięci podręcznej drugiego poziomu). CFP95 Obejmuje 10 typowych programów realizujących intensywne obliczenia zmiennoprzecinkowe. W Tablicy 2.8 przedstawiono listę i krótki opis tych programów. Nazwa 101.tomcatv 102.swim 103.su2cor 104.hydro2d 107-mgrid HO.applu 125.turb3d 141.apsi 145-fppp 146.wave5 Opis Program generacji siatki Model dynamiki wody w 2D Symulacja Monte Carlo w zakresie fizyki kwantowej Model hydrodynamiczny - rozwiązanie równań Naviera-Stokesa Solwer wielosiatkowy dla pola potencjalnego w 3D Solwer dla równań cząstkowych parabolicznych i eliptycznych Symulacja przepływu turbulentnego w 3D Symulacja rozchodzenia się zanieczyszczeń Problem chemii kwantowej Fizyka plazmy - symulacja oddziaływań elektromagnetycznych Tablica 2.8: Programy wchodzące w skład CFP95 CFP95 testuje procesor ze względu na operacje zmiennoprzecinkowe oraz jego współdziałanie z pamięcią podręczną i operacyjną, nie uwzględnia on natomiast, podobnie jak CINT95, innych składników systemu komputerowego. Jest on przydatny do badania jedno- i wieloprocesorowych komputerów lub

2.8. SPEC 35 Komputer Procesor Pamięć podręczna int95 fp95 (Instr./Dane) int base95 fpbase95 IBM RS6000 43P POWER3 LI: 32K/64K 13.2 30.1 260 (200MHz) L2: 4MB 12.5 27.6 SGI Origin200 R12000 (270MHz) LI: 32K/32K 15.8 25.2 L2: 4MB 14.9 23.7 SUN E450 UltraSPARCII LI: 16K/16K 18.3 30.1 (400MHz) L2: 8MB 14.9 26.5 DELL PWS 420 Pentium III LI: 16K/16K 35.8 31.0 (733MHz) L2: 256K 35.3 30.5 Tablica 2.9: Przykładowe wartości miar SPEC CPU95 stacji roboczych przeznaczonych głównie do intensywnych obliczeń numerycznych. Metrykami CFP95 są: SPECfp_base95 - Measure of Conservative Speed - geometryczna średnia z dziesięciu znormalizowanych miar szybkości uzyskanych przy zachowawczej kompilacji wymienionych wyżej programów testowych, SPECfp95 - Measure of Optimised Speed - geometryczna średnia z dziesięciu znormalizowanych miar szybkości uzyskanych przy kompilacji z agresywną (najwyższą dostępną) optymalizacją, SPECfp_rate_base95 - Measure of Conservative Throughput - geometryczna średnia z dziesięciu znormalizowanych miar przepustowość uzyskanych przy zachowawczej kompilacji programów testowych, SPECfp_rate95 - Measure of Optimised Throughput - geometryczna średnia z dziesięciu znormalizowanych miar przepustowości uzyskanych przy kompilacji z agresywną optymalizacją. Podobnie jak poprzednio, znormalizowane miary wydajności odnoszą się do komputera SPARCstation 10/40. Przykładowe wartości umieszczono w Tablicach 2.9 i 2.10. Pokazują one, że istotnie wyniki dla optymalizowanych testów są wyższe niż dla kompilowanych z zachowawczym poziomem optymalizacji, jednak różnica ta jest niewielka i wynosi kilka- kilkanaście procent. Wyniki tego typu pozwalają także badać skalowalność systemu wyrażającą się wzrostem wydajności wraz ze wzrostem liczby procesorów.

36 Rozdział 2. Metody oceny wydajności systemów Komputer Liczba i typ procesora Pamięć podręczna int rate95 fp rate95 (Instr./Dane) base95 base95 HP lxpa-8500 (440MHz) 306 462 N4000 SUŃ E10000 HP V2500 8xPA-8500 (440MHz) LI: 0.5M/1M L2:- 277 438 2403 2075 2177 2007 4664 6150 32xUltraSPARCII (400MHz) Ll: 16K/16K 3314 5491 64xUltraSPARCII L2: 8M 9181 11908 (400MHz) 7095 10294 32xPA-8500 (440MHz) LI: 0.5M/1M 7481 - L2:- 6670 - Tablica 2.10: Przykładowe wartości miar SPECrate95 2.8.2 Zestaw SPEC CPU2000 Opracowanie zestawu SPEC CPU2000 wychodzi naprzeciw potrzebom oceny wydajności najbardziej nowoczesnych systemów komputerowych, wyposażonych w efektywne procesory z dużą pamięcią podręczną, rozbudowaną pamięć operacyjną oraz optymalizujące kompilatory. Podobnie jak w przypadku SPEC CPU95 (por. Rozdział 2.8.1) te właśnie elementy podlegają ocenie również i w SPEC CPU2000. Znaczenie i sposób określenia miar wydajności są analogiczne jak w przypadku SPEC CPU95, jedyna różnica polega na odmiennym określeniu programów składowych CINT2000 i CFP2000, lepiej dostosowanych do bieżących potrzeb. Zostały one przedstawione krótko w Tablicach 2.11 i 2.12, wraz z informacją na temat języka programowania implementacji. Nazwa 164-gzip (C) 175.vpr (C) 176.gcc (C) 181. md (C) 186-crafty (C) 197.parser (C) 252.eon (C++) 253-peribmk (C) 254.gap (C) Opis Kompresja danych Projektowanie układów FPGA Kompilator języka C Zagadnienie optymalizacji - minimalizacja kosztu przepływu przez sieć Program gry w szachy Przetwarzanie języka naturalnego Symulacja procesu oświetlenia powierzchni Przetwarzanie w języku Perl Obliczeniowa teoria grup Tablica 2.11: Programy wchodzące w skład CINT2000

2.8. SPEC 37 Nazwa Opis 168-wupwise (F77) Chromodynamika kwantowa 171.swim (F77) Model dynamiki wody 172-mgrid (F77) Solwer wielosiatkowy dla pola potencjalnego w 3D 173.applu (F77) Solwer dla równań cząstkowych parabolicznych i eliptycznych 177-mesa (C) Biblioteka graficzna dla 3D 178-galgel (F90) Mechanika obliczeniowa przepływów 179.art (C) Rozpoznawanie obrazów, sieci neuronowe 183.equake (C) Symulacja propagacji fal sejsmicznych 187.facerec (F90) Przetwarzanie obrazów, identyfikacja twarzy 188.ammp (C) Chemia obliczeniowa 189-lucas (F90) Teoria liczb - testowanie liczb pierwszych 191.fma3d (F90) Symulacja zderzeń metodą elementów skończonych 200.sixtrack (F77) Obliczenia projektowe akceleratora w zakresie fizyki wysokich energii 301.apsi (F77) Symulacja rozchodzenia się zanieczyszczeń Tablica 2.12: Programy wchodzące w skład CFP2000 Maszyną referencyjną dla SPEC CPU2000 jest SUŃ Ultra 5 (300MHz SPARC z pamięcią operacyjną 256MB), dla której SPECmt2000 i SPECfp2000 wynoszą 100. Komputer Procesor Pamięć podr. int2000 fp2000 (Instr./Dane) hit base2000 fp base2000 Compaq DS20E Alpha 21264A LI: 64K/64K 444 577 (667MHz) L2: 8MB 424 514 HP PA-8500 (440MHz) LI: 0.5M/1M - 297 N4000 L2: 4MB - 266 Intel OR840 Pentium III LI: 16K/16K - - (733MHz) L2: 256K 336 243 IBM RS6K 43P POWER3 LI: 32K/64K - - 260 (200MHz) L2: 4MB - 180 Tablica 2.13: Przykładowe wartości miar SPEC CPU2000 W Tablicy 2.13 pokazano przykładowe wartości miar SPEC CPU2000. Należy spodziewać się wzrostu popularności tych miar w najbliższym okresie.

38 Rozdział 2. Metody oceny wydajności systemów 2.8.3 Pozostałe zestawy Zestaw SPEC GPC Miary przeznaczone do określenia wydajności przetwarzania grafiki tworzone są przez grupę SPEC Graphics Performance Characterization (GPC). W ich skład wchodzą: GLperf- dla określania wydajności operacji z wykorzystaniem OpenGL 2D i 3D (tworzenie linii, punktów, trójkątów, itp.), Viewperf - do oceny współpracy systemów z biblioteką OpenGL na poziomie interfejsu, z pierwotnymi metrykami: CDRS, DX, DRV, AWadvs, Light, SPECapc - miary odnoszące się do aplikacji; wyróżnia się dwie grupy: Pro/ENGINEER i SolidWorks. Ponieważ stacje graficzne nie są szeroko używane w zastosowaniach o charakterze komercyjnym, zainteresowanych problematyką określenia wydajności przetwarzania graficznego odsyła się do stron internetowych, np. [133]. Zestaw SPEC SFS Zestaw SPEC System Filc Server (SFS 2.0) został wprowadzony w 1997 zastępując SPEC SFS 1.1 (zwany też SPEC LADDIS). Służy on do porównywania osiągów serwerów usług sieciowych, głównie NFS, z uwzględnieniem warstwy transportowej TCP lub UDP. Testowane są: procesor, systemy pamięci masowej oraz współpraca z siecią komputerową. Na uzyskane wyniki wpływają elementy sprzętowe, takie jak: wielkość pamięci operacyjnej, liczba sterowników dyskowych i sieciowych, wielkość dysków oraz wielkość pamięci przeznaczona na bufory systemu operacyjnego. Komputer Liczba i typ procesora Pamięć podręczna (Instr./Dane) sfs97.v3 czas odp. [ms] UDP sfs97.v3 czas odp. [ms] TCP HP 2xPA-8500 (440MHz) LI: 0.5M/1M 6573 5382 L2000 L2:- 2.57 2.48 SUŃ E6500 24xUltraSPARCU Ll: 16K/16K 21476 18792 (400MHz) L2: 8MB 4.03 3.92 IBM S80 24xRS64III (450MHz) LI: 128K/128K 29083 - L2: 8M 4.25 - Tablica 2.14: Przykładowe wartości miar SPEC SFS 2.0 (NFS V3)

2.8. SPEC 39 Metryki stanowią: SPECsfs97.v2 (dla wersji 2 protokołu NPS) i SPECsfs97.v3 (dla wersji 3 protokołu NFS). Obie metryki obejmują przepustowość systemu (w liczbie operacji na sekundę) oraz całkowity czas odpowiedzi (podawany jako średni czas odpowiedzi na operację), przy warunku, że jest on krótszy niż 40 ms. Przykładowe wartości zamieszczono w Tablicy 2.14. Wynika z nich, m.in., oczekiwany wniosek, że użycie warstwy transportowej UDP jest efektywniejsze niż TCP. Ze względu na wprowadzone zmiany nie należy porównywać rezultatów SPEC SFS 2.0 z rezultatami uzyskanymi za pomocą jego poprzednika - SPEC SFS 1.1. Zestawy SPECweb96 i SPECweb99 Miary te służą do oceny osiągów serwerów HTTP. Określenie ich jest trudne, gdyż wiele elementów wpływa na wynik pomiaru, w szczególności liczba obsługiwanych klientów przez serwer (wielkość obciążenia) oraz parametry sieci komputerowej. Komputer Liczba i typ procesora Pamięć podr. (Instr./Dane) web96 (serwer) web99 (serwer) Compaq DS10 lxalpha21264 (466MHz) IBM 43P-260 2xPOWER3 (200MHz) LI: 64K/64K L2: 2M LI: 32K/64K L2: 4MB 2450 (Zeus 1.3.0) 484 (Zeus 3.1.9) 4597 (IBM http 1.3.6) 2654 (Zeus 1.3.3) 440 (Zeus 3.1.8) IBM Netfinity 7000 M10 DELL PowerEdge 2400/667 HP L2000 lxpentiumiii Xeon (500MHz) lxpentiumiii (667MHz) 4xPA-8500 (440MHz) LI: 16K/16K L2: 2M LI: 16K/16K L2: 256K LI: 0.5M/1M L2:- 8267 (IIS 5.0, SWC 2.0) - 707 (IIS 5.0) 15206 (Zeus 1.3.3) - Tablica 2.15: Przykładowe wartości miar SPECweb96 i SPECweb99 Wersja wcześniejsza (SPECweb96) określa liczbę HTTP operacji/sęk. Uwzględniono tylko obciążenie statyczne. W drugiej wersji - miara SPECweb99 oznacza maksymalną liczbę jednoczesnych połączeń klientów z serwerem, realizujących standardowe obciążenie (statyczne i dynamiczne) w taki sposób, aby zachowane były założona przepustowość (w zakresie 40000 50000 bajtów/sek) i stopa błędu. Nic uwzględnia się ewentualnych opóźnień wprowadzonych przez warstwę sieciową, istotnych w sieciach rozle-