ISBN 83-909958-3-2 -...

185
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: [email protected] 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

Transcript of ISBN 83-909958-3-2 -...

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: [email protected] 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 doty-czących jej ochrony przed przypadkowym lub umyślnym zniszczeniem, ujaw-nieniem lub modyfikacją. W odniesieniu do systemów komputerowych pracy ciągłej zagadnienia te obejmują, między innymi, metody składowania i wyko-rzystania 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 informa-tycznych 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. out-of-core).

Podczas określenia efektywności aplikacji lub systemu komputerowego wykonującego daną aplikację, korzysta się z licznego zbioru narzędzi wspo-magają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 komputerowymi1 (ang. computer benchmarks).

lZe 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 MIPSIBM 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 wy-dajnoś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 pod-systemów. Stawiane są im, m.in., następujące wymagania [18]:

• reprezentacja wybranej klasy rzeczywistych zastosowań (zgodność z po-tencjalnymi 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 tech-nologii (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.

LFK (Mflop/s) Komputer Fortran 77 C

Rpeak Mflop/s

HP C200 SUN Ultra2

99.3 76.1

107.4 54.7

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 Opis Generacja liczb pseudolosowych - bardzo małe wymagania komunikacyjne Obliczenia wielosiatkowe, wysoki stopień strukturalności

EP MG CG FT IS

- 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 Opis LU SP

BT

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ą

Tablica 2.4: Programy testowe równoległego zestawu NAS

2.6 LINPACK

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ą 2n3/3 + 2n2, 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 DP Mflop/s

TPP Mflop/s

Rpeak Mflop/s

Cray T9xx (32 proc. 2.2ns)

Cray T9xx (8 proc. 2.2 ns)

Cray T9xx (l proc. 2.2ns)

- - 705

29360

10880

1603

57600

4400

1800 Compaq 8400 6/575 (8 proc. 575MHz) Compaq 8400 6/575 (l proc. 575MHz) (procesor Alpha 21264)

- 460

5305 847

9600 1150

HP N4000 (8 proc. 440MHz)

HP N4000 (l proc. 440MHz) (procesor PA-8500) - 375

6410

1290 14080

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 2520Cray 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 ze-stawó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 (wekto-rowych) 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 (za-chowawczej) 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 jedno-procesorowych.

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 Opis 099.go 124.m88ksim 126.gcc 129.compress 130.H 132.ijpeg 134.peri 147.vortex

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 Opis 101.tomcatv Program generacji siatki 102.swim Model dynamiki wody w 2D 103.su2cor Symulacja Monte Carlo w zakresie fizyki kwantowej104.hydro2d Model hydrodynamiczny - rozwiązanie równań Naviera-Stokesa 107-mgrid Solwer wielosiatkowy dla pola potencjalnego w 3DHO.applu Solwer dla równań cząstkowych parabolicznych

i eliptycznych125.turb3d Symulacja przepływu turbulentnego w 3D141.apsi Symulacja rozchodzenia się zanieczyszczeń145-fppp Problem chemii kwantowej 146.wave5 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

int95 fp95 Komputer

Procesor

Pamięć podręczna (Instr./Dane) int base95 fpbase95

13.2 30.1 IBM RS6000 43P 260

POWER3 (200MHz)

LI: 32K/64K L2: 4MB 12.5 27.6

15.8 25.2 SGI Origin200

R12000 (270MHz)

LI: 32K/32K L2: 4MB 14.9 23.7

18.3 30.1 SUN E450

UltraSPARCII (400MHz)

LI: 16K/16K L2: 8MB 14.9 26.5

35.8 31.0 DELL PWS 420

Pentium III (733MHz)

LI: 16K/16K 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

int rate95 fp rate95 Komputer

Liczba i typ procesora

Pamięć podręczna (Instr./Dane) base95 base95

306 462 lxPA-8500 (440MHz) 277 438

2403 2075

HP N4000 8xPA-8500 (440MHz)

LI: 0.5M/1M L2:- 2177 2007

4664 6150 32xUltraSPARCII (400MHz) 3314 5491

9181 11908

SUŃ E10000

64xUltraSPARCII (400MHz)

Ll: 16K/16K L2: 8M 7095 10294

7481 - HP V2500

32xPA-8500 (440MHz)

LI: 0.5M/1M 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 Opis Kompresja danych Projektowanie układów FPGA Kompilator języka C

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)

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 Opis168-wupwise (F77) Chromodynamika kwantowa171.swim (F77) Model dynamiki wody 172-mgrid (F77) Solwer wielosiatkowy dla pola potencjalnego w 3D173.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ów179.art (C) Rozpoznawanie obrazów, sieci neuronowe183.equake (C) Symulacja propagacji fal sejsmicznych 187.facerec (F90) Przetwarzanie obrazów, identyfikacja twarzy188.ammp (C) Chemia obliczeniowa 189-lucas (F90) Teoria liczb - testowanie liczb pierwszych 191.fma3d (F90) Symulacja zderzeń metodą elementów skończonych200.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.

int2000 fp2000 Komputer

Procesor

Pamięć podr. (Instr./Dane) hit base2000 fp base2000

444 577 Compaq DS20E

Alpha 21264A (667MHz)

LI: 64K/64K L2: 8MB 424 514

- 297 HP N4000

PA-8500 (440MHz)

LI: 0.5M/1M L2: 4MB - 266

- - Intel OR840

Pentium III (733MHz)

LI: 16K/16K L2: 256K 336 243

- - IBM RS6K 43P 260

POWER3 (200MHz)

LI: 32K/64K 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.

sfs97.v3 sfs97.v3 Komputer

Liczba i typ procesora

Pamięć podręczna (Instr./Dane)

czas odp. [ms] UDP

czas odp. [ms] TCP

6573 5382 HP L2000

2xPA-8500 (440MHz)

LI: 0.5M/1M L2:- 2.57 2.48

21476 18792SUŃ E6500

24xUltraSPARCU (400MHz)

Ll: 16K/16K L2: 8MB 4.03 3.92

29083 - IBM S80

24xRS64III (450MHz)

LI: 128K/128K 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)

LI: 64K/64K L2: 2M

2450 (Zeus 1.3.0)

484 (Zeus 3.1.9)

IBM 43P-260

2xPOWER3 (200MHz)

LI: 32K/64K L2: 4MB

4597 (IBM http 1.3.6) 2654 (Zeus 1.3.3)

440 (Zeus 3.1.8)

IBM Netfinity 7000 M10

lxPentiumIII Xeon (500MHz)

LI: 16K/16K L2: 2M

8267 (IIS 5.0, SWC 2.0)

-

DELL PowerEdge 2400/667

lxPentiumIII (667MHz)

LI: 16K/16K L2: 256K

-

707 (IIS 5.0)

HP L2000

4xPA-8500 (440MHz)

LI: 0.5M/1M L2:-

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-

40 Rozdział 2. Metody oceny wydajności systemów

Nazwa Opis 200check 201compress 202Jess 209db 213javac 222mpegaudio 227mirt 228jack

weryfikacja właściwości JVM kompresja i dekompresja zbiorów w Javie powłoka systemu ekspertowego w Javie system zarządzania bazą danych kompilacja programu w Javie (225000 linii) dekoder strumienia MPEG3 obliczanie toru promieni świetlnych po kontakcie z powierzchnią (ray tracing) parser z analizą leksykalną

Tablica 2.16: Programy wchodzące w skład SPECjvm98

glych. W obu przypadkach użytkownik ma możliwość wyjoru rodzaju serwera HTTP. W Tablicy 2.15 przedstawiono wybrane wartości miar. Widać istotną zależność wyników od typu serwera, zmuszającą do ostrożnej ich interpretacji.

Zestaw SPECjvm98 Zestaw ten opracowany został dla określenia wydajności maszyn w odniesieniu do wirtualnej maszyny systemu Java (ang. Java Virtual Machine - JVM). W jego skład wchodzi osiem programów, spośród których pięć jest rzeczywistymi aplikacjami, dwa - testami, a pozostały - weryfikuje pewne cechy Javy (por. Tablica 2.16). Używany kompilator pochodzi z firmy SUN i jest zawarty jest w dystrybucji systemu uruchomieniowego (ang. Java Development Kit - JDK).

Komputer Liczba i typ procesora Pamięć podręczna (Instr./Dane)

jvm98 jvmbase98 (JVM)

IBM 43P-260

lxPOWER3 (200MHz)

LI: 32K/32K

L2: 4MB 19.7 18.1

(IBM JDK 1.1.6) SUŃ E4500

lxUltraSPARCII (400MHz)

LI: 16K/16K

L2:4M 21.9 20.3

(Solaris JDK 1.1.6) Compaq DS20

lxAlpha21264 (500MHz)

LI: 64K/64K

L2: 4M 29.1 27.7

(JVM 1.1.7) HP L2000

lxPA-8500 (440MHz)

LI: 0.5M/1M

L2:- 41.6 18.0

(JDK 1.2.2) IBM Netfinity 7000 M10

lxPentiumIII . Xeon (500MHz)

Ll: 16K/16K

L2:2M 44.0 38.3

(IBM Dev.Kit JavaTech.Ed. 1.1.8)

Tablica 2.17: Przykładowe wartości miar SPECjvm98

Zestaw SPECjvm98 dokonuje pomiaru czasu, jaki wymagany jest do za-

2.9. SAPR/3_________________________________41

ładowania programu, określa klasy zbiorów, w przypadku użycia kompilatora (just-in time- JIT) realizuje kompilację "w biegu" (on the fly) i wykonuje program. Wyniki odzwierciedlają efektywność implementacji JVM, kompilatora JIT oraz systemu operacyjnego, a w konsekwencji — wydajność przetwarzania stało- i zmiennoprzecinkowego, jak również pamięci podręcznej, pamięci operacyjnej oraz innych podsystemów komputera.

Przykładowe wartości miar SPECjvm98 przedstawiono w Tablicy 2.17. Uzyskano je przy agresywnej i zachowawczej kompilacji (w podobny sposób, jak uczyniono dla miar SPEC CPU95 - por. Tablice 2.9 i 2.13). Zwraca uwagę wysoka wydajność maszyny wykorzystującej procesor Pentium III.

2.9 SAP R/3 System oprogramowania SAP R/3 wprowadzony został przez firmę SAP AG dla realizacji największych przedsięwzięć w zakresie wspomagania zarządzania. Firma ta uważana jest za lidera aplikacji komercyjnych. Ze względu na rozbudowaną strukturę oprogramowania oraz wysokie wymagania sprzętowe, może być on używany do badania wydajności w zakresie zastosowań komercyjnych w odniesieniu do bardzo rozbudowanych instalacji [131] implementujących architekturę klient-serwer, obejmując sprzęt, relacyjną bazę danych oraz oprogramowanie SAP R/3.

Ogólnie, w architekturze klient-serwer występują dwa modele:

• model dwuwarstwowy, w którym (transakcyjny) proces klienta realizowany jest na komputerze użytkownika, a proces bazy danych odbywa się na serwerze bazy danych,

• model trzywarstwowy, w którym (najczęściej) dane wyodrębnione są od reguł nimi zarządzających, a także od procesu klienta, definiując warstwy bazy danych, aplikacji i prezentacji odpowiednio,.

Model trzywarstwowy implementowany jest przy realizacji największych przedsięwzięć. Zawiera on moduły zarządzania finansami, rozliczania kosztów, planowania i organizacji produkcji, sprzedaży, gospodarki materiałowej, remontów, przygotowania inwestycji, zarządzania projektami i kadrami firmy.

System, niezależny od platformy sprzętowej, jest wykorzystywany głównie przez duże międzynarodowe koncerny; aktualnie jest około 15000 instalacji R/3 u 8000 klientów, co pozwala uznać R/3 za system standardowy.

R/3 Standard Application Benchmarks składa się z szeregu skryptów (por. np. [93]) modelujących typowe działanie użytkownika w każdym z sied-

42 Rozdział 2. Metody oceny wydajności systemów

Moduł Opis SD

Sales and Distribution zawiera transakcje: utworzenie zamówienia o 5 pozycjach, polecenie i zmiana dostawy, ukazanie 40 zamówień klienta, wystawienie rachunku.

FI

FI zawiera transakcje: 4 wysyłki produktów do klienta, wyświetlenie zawartości ostatniej z nich, otwarcie listy produktów przeznaczonych do wysyłki do klienta, eliminacja z listy produktów wysłanych.

MM Materiał Management tworzy zapotrzebowanie i zamówienie na 5 produktów, dokumentuje dostawę oraz ofertę.

PP

Production Planning zawiera transakcje: utworzenie i modyfikacja zamówienia na produkt, uzyskanie wstępnego i ostatecznego potwierdzenia zamówienia, obsługa administracyjna półproduktów.

WM

Warehouse Management zawiera transakcje: udostępnienie do sprzedaży 3 produktów, wytworzenie dokumentacji tej czynności oraz zamówienia dotyczącego kolejnych 7 produktów.

PS

Project System zawiera transakcje dotyczące planowania inwestycji, dokumentacji, oceny i akceptacji kosztów oraz utworzenie raportu finansowego przedsięwzięcia.

HR

Human Resources jako jedyny pozwala na testowanie zadań w trybie background; dotyczy zagadnień związanych z obsługą danych osobowych pracowników.

Tablica 2.18: Opis modułów benchmarku SAP R/3

miu omawianych poniżej modułów. Zawiera także predefiniowaną bazę danych dotyczącą modelowej firmy. Podając wartości miar wydajności należy określić nazwę modułu SAP. Najbardziej popularnym jest moduł SD, którego metrykami są:

• liczba użytkowników,

• średni czas odpowiedzi, który winien być mniejszy niż 2 sekundy,

• przepustowość konfiguracji, którą definiuje liczba kroków dialogu na godzinę.

W Tablicy 2.18 przytoczono krótki opis modułów zestawu SAP R/3 [93]. Przy użyciu zestawu SAP R/3 ocenie podlega serwer, na którym pracuje system

zarządzania baza danych. Całość konfiguracji jest zazwyczaj bardzo rozbudowana, w jej skład wchodzi wiele komputerów realizujących warstwy

2.10. BasmIY 43

Liczba pro Czas Liczba System za cesorów Kroki odpo Liczba maszyn rządzaniaKomputer (częstot 1103/h] wie użytkow (liczba relacyjną

liwość dzi ników proce bazą [MHz]) [s] sorów) danychSUN 64 4725 0.97 14400 7 Oracle 8E10000 (336) (391) Compaq 10 1649 1.60 5312 41 Informix 7GS140 (575) (168)

Tablica 2.19: Przykładowe wartości miar SAP R/3 dla modułu SD

aplikacji i prezentacji. Dlatego wśród przykładowych wartości miar (w Tablicy 2.19) zamieszczono liczbę maszyn wraz z liczbą procesorów uczestniczących w eksperymencie (z wyłączeniem maszyny obsługującej bazę danych).

2.10 BaanIV

Zestaw Baan ma podobny charakter jak przedstawiony powyżej SAP R/3, z tym że jest on realizowany z wykorzystaniem oprogramowania firmy Baan.

Holenderska firma Baan jest największym konkurentem SAP na rynku europejskim [104]. Jej produkt - BaanIV - jest zintegrowanym systemem przeznaczonym do wspomagania zarządzania przedsiębiorstwem. Pozwala on śledzić na bieżąco stan przedsiębiorstwa i obejmuje: finanse, produkcję, dystrybucję, transport, usługi, projektowanie. System jest otwarty: może pracować na różnych platformach sprzętowych pod różnymi systemami operacyjnymi, a także może się komunikować z obcymi aplikacjami.

Wydajność podawana jest jako liczba Baan Reference User (BRU). Pomiar BRU polega na tym, że generator obciążenia powiększa liczbę współbieżnie pracujących użytkowników, korzystających z BaanIV, aż do przekroczenia pewnego (ustalonego w warunkach przeprowadzania pomiaru) czasu odpowiedzi na transakcję.

W roku 1999 uzyskano wartość 10721 BRU dla instalacji złożonej z dwóch serwerów SUŃ E10000 o 64 procesorach, z których jeden stanowił serwer bazy danych (Oracie 8i), a drugi serwer aplikacji [135].

44 Rozdział 2. Metody oceny wydajności systemów

2.11 TPC TPC (ang. Transaction Processing Performance Council) [138] jest organizacją niekomercyjną, utworzoną w roku 1988 w San Jose. Jej celem jest opracowywanie metod porównywania osiągów systemów komputerowych w zakresie baz danych, przetwarzania transakcji i eksploracji danych oraz rozpowszechnianie zasad i wyników testów porównawczych. TPC tworzy ok. 50 przedstawicieli producentów sprzętu oraz oprogramowania, integratorów systemów, analityków rynku komputerowego oraz konsultantów przemysłowych.

Podstawowym celem jaki stawia sobie TPC jest definiowanie zbioru wymagań funkcjonalnych, które mogą być realizowane na dowolnym systemie przetwarzania transakcji, niezależnie od sprzętu i systemu operacyjnego.

Wymagania te są publikowane w formie zbioru specyfikacji, co oznacza, że TPC określa jedynie konstrukcję logiczną bazy danych, ale nie żąda używania tego samego programu lub grupy programów. Odróżnia to benchmarki TPC od innych, gdyż zdefiniowane przez TPC wymagania mogą zostać za-implementowane z wykorzystaniem dowolnych systemów operacyjnych, baz danych oraz na dowolnym sprzęcie.

TPC publikuje wyniki badań w formie Full Disciosure Report lub Executive Summary przedstawiając w nich również metodologię testów oraz wartość pięcioletnich kosztów utrzymywania systemu. Korzystne jest nie ograniczanie się jedynie do porównywania liczb podawanych przez dostawców sprzętu i oprogramowania, ale użycie pełnej informacji dostępnej w publikacjach TPC [138].

Podkreślić należy, że zestawy TPC mają na celu modelowanie rzeczywistych systemów i aplikacji wraz z ich otoczeniem.

2.11.1 Zestaw TPC-C Zestaw TPC-C służy do pomiaru osiągów dla zastosowań typu transakcyjnego (ang. On-Line Transaction Processing, OLTP). Został wprowadzony w 1992r. W roku 1999 wprowadzono wersję 3.5. Przeznaczony jest dla porównywania średnich i dużych komercyjnych systemów przeznaczonych do przetwarzania transakcji w środowiskach o wielu użytkownikach. Stanowi mieszankę transakcji zapisu, odczytu, usuwania i uaktualniania. Modeluje działania charakterystyczne dla złożonych środowisk OLTP, charakteryzujące się:

• równoczesnym wykonywaniem różnorodnych typów transakcji,

• występowaniem transakcji on-line i odroczonych,

• wieloma sesjami terminalowymi,

• umiarkowanymi czasami systemowym i wykonywania aplikacji,

• znacznym wykorzystaniem pamięci dyskowej dla operacji we/wy,

• transakcjami typu ACID (ang. Atomicity, Consistency, Isolation, Durability),

• nierównomiernym rozkładem dostępu do danych ze względu na klucze pierwotne i wtórne,

• bazami danych składającymi się z wielu tablic o różnorodnych rozmiarach, atrybutach i relacjach,

• współzawodnictwem w dostępie do danych i do ich aktualizacji.

Celem zestawu TPC-C jest określenie wydajności całości systemu, procesorów, pamięci i operacji we/wy. Testy są przeprowadzane przez producentów sprzętu i oprogramowania, a ich rezultaty są przekazywane do organizacji TPC dla zatwierdzenia przed oficjalną publikacją. Obowiązuje zasada, że testowane produkty są aktualnie dostępne, bądź będą dostępne w ciągu następnych 12 miesięcy.

W specyfikacji określa się następujące rodzaje transakcji:

• nowe zamówienie ze strony klienta,

• obciążenie klienta kosztem zakupu,

• transakcja związana z wysyłką towaru do klienta,

• określenie statusu zamówienia,

• monitorowanie posiadanych zasobów.

Wymagania nałożono również na czas odpowiedzi: 90% transakcji każdego typu musi być zrealizowanych w czasie nie dłuższym niż 5 s, z wyjątkiem ostatniego typu, dla którego limit określono na 20 s.

Pierwotnymi metrykami są:

• tpmC - wydajność w transakcjach na minutę w odniesieniu do nowych zamówień (ang. transactions per minute), przy jednoczesnej obsłudze pozostałych typów,

46 Rozdział 2. Metody oceny wydajności systemów

Komputer

Liczba procesorów i częstotliwość [MHz]

tpmC

$/tpmC

System zarządzania bazą danych (monitor transakcji)

IBM Netfinity 7000 M10

4xPentiumII Xeon (500MHz)

23640 25 SQL SEE 7.0 (TX 4.2)

Compaq GS140

8xAlpha21264A (700)

42437

55 Sybase 11 (WNT Server)

SUŃ E4500 14xUltraSPARCII (400)

50268 50 Sybase 11 (BEA Tuxedo 6.3)

SUŃ E10000

64xUltraSPARCII (400)

115396

106 Oracie 8i (BEA Tuxedo 6.3)

Tablica 2.20: Przykładowe wartości miar TPC-C

• $/tpmC - tzw. price/performance, rozumiany jako stosunek kosztu2 do osiągów; jest to koszt zakupu testowanej konfiguracji wraz z opro-gramowaniem oraz koszt jej utrzymania przez 5 lat, podzielony przez osiągi.

Przy porównywaniu systemów w oparciu o metrykę tpmC należy ograniczyć liczbę zmiennych swobodnych (która wynika z istoty specyfikacji TPC), biorąc pod uwagę dane na przykład dla tych samych systemów baz danych i tych samych systemów operacyjnych.

Ocenie podlega cała konfiguracja, a nie pojedynczy system. W szczególności może ona obejmować komputery typu front-end, zmniejszające narzuty na przetwarzanie na serwerze. Istotne są także: zastosowany system zarządzania bazą danych, system operacyjny oraz architektura komputera. Zalecana jest ostrożność przy interpretacji wyników dla wyboru serwerów i traktowanie ich bardziej jako przesłanki, niż wartości absolutnej.

Ostrożność należy zachować również przy podejmowaniu decyzji w oparciu o metrykę $/tpmC; parametr ten może w istotny sposób zależeć od zakresu i kosztów oferowanej obsługi, od wykorzystania sprzętu pochodzącego z firm trzecich w trakcie eksploatacji, a także od rynku dla którego dokonuje się oceny.

W Tablicy 2.20 przedstawiono przykładowe wartości dla tpmC i $/tpmC. W roku 2000 planowane jest wprowadzenie TPC-C v.4, zawierającej istotne

zmiany, będące odzwierciedleniem rozwoju technologii. Przewiduje się w szczególności zwiększenie rozmiaru wymaganego systemu testowego oraz

2koszt określony jest przez producenta dla rynku amerykańskiego.

2.11. TPC_____________________________________47

zróżnicowanie limitów czasu w odniesieniu do poszczególnych typów transakcji.

2.11.2 Zestaw TPC-D Zestaw TPC-D [138] stosuje się do pomiaru wydajności w odniesieniu do średnich i dużych komercyjnych systemów wspierania podejmowania decyzji (tzw. business intelligence). W tym przypadku (nazywanym też DSS - ang. Decision Support Side of the business) celem przetwarzania jest:

• pozyskanie danych z dużych baz danych (stosuje się przetwarzanie typu OLTP), oraz

• agregacja (analiza) informacji o charakterze szczegółowym,

celem wytworzenie użytecznej informacji wspierającej podejmowanie decyzji, często o charakterze strategicznym. Procedura tego typu nazywana jest obecnie eksploracją danych (ang. data mining).

Przetwarzanie różni się istotnie od OLTP, odnoszącego się do wielkiej liczby transakcji dokonywanych na zbiorze danych (np. [8]). W DSS występuje stosunkowo niewielka liczba transakcji wykonywanych na znacznym obszarze danych, przy czym zapytania mają skomplikowaną postać. Zatem zestaw TPC-D dotyczy systemów:

• o dużej objętości danych,

• z niewielką liczbą zapytań,

• o dużym stopniu złożoności.

Używając TPC-D bada się wydajność przetwarzania zapytań typu ad hoc, to jest bez pełnej znajomości istoty zapytań i testuje system jako całość oraz jego elementy: procesory, pamięć (podręczną i operacyjną), podsystem wejścia/wyjścia, sieć komputerową, reagowanie na błędy w systemie. Ostatnią używaną jest wersja 2.

Metrykami pierwotnymi są:

• QppD Query Processing Performance, określająca wydajność przetwarzania zapytań, jeżeli cała dostępna moc systemu zostanie wykorzystana do obsługi pojedynczego strumienia zapytań,

48. Rozdział 2. Metody oceny wydajności systemów

• QthD - Query Throughput, ukazująca liczbę zapytań przetworzonych przez system w ciągu jednej godziny; zapytania są przetwarzane współbieżnie, w wyniku istnienia wielu strumieni danych,

• $/QphD - $/Queries Per Hour, którą wylicza się ją jako iloraz kosztów3 i średniej geometrycznej dwóch poprzednich metryk (QphD = sqrt(QppD – QthD)).

Wyniki są podawane dla sześciu rozmiarów baz danych: l GB, 10 GB, 30 GB, 100 GB, 300 GB, l TB i 3 TB, na przykład: 2400QppD@lGB. Należy je porównywać dla tych samych rozmiarów baz danych. Baza jest tworzona przy pomocy programu DBGEN (napisanego w języku C), stanowiącego część zestawu TPC-D. W generatorze zapytań dokonuje się

podstawień wartości typu przypadkowego w miejsce parametrów.

QppD

QthD

$/QphD

Komputer

Liczba pro-cesorów (częstotliwość [MHz]) QphH QthH $/QphH

Wielkość bazy [GB]

System za-rządzania relacyjną bazą danych

121825 10566 283 1000 Oracle 8i SUN E10000

64 (400) - - - -

29711 4869 192 300 Oracle 8i Compaq GS140

12 (575) 6514 4806 2171 1000 Informix 8

Tablica 2.21: Przykładowe wartości miar TPC-D i TPC-H

W Tablicy 2.21 umieszczono przykładowe wyniki dla metryki TPC-D (obok omówionej poniżej TPC-H) [138].

2.11.3 Zestawy TPC-H i TPC-R

W roku 1999 inicjatywa wykorzystania miar TPC-D została zahamowana na rzecz powstałych na jej podstawie dwóch zmodyfikowanych zestawów, o przeznaczeniu zbliżonym do TPC-D:

• TPC-H, który, podobnie jak TPC-D, bada wydajność przetwarzania zapytań typu ad hoc, to jest bez pełnej znajomości istoty zapytań,

• TPC-R, używającego predefiniowanego zestawu zapytań.

'Określonych podobnie jak w przypadku miar TPC-C.

2.12. Podsumowanie 49

Tak więc różnica między nimi leży w warunkach wykonania eksperymentu. Niekorzystną własnością zestawu TPC-R jest możliwość optymalizacji systemu zarządzania bazą danych, ze względu na pełną znajomość zestawu zapytań.

Dla obu zestawów używane są podobne miary wydajności:

• QphH lub QphR - Composite Query-per Hour Processing Performance Metrics, która reprezentuje kilka aspektów wydajności, takich jak, wydajność przy przetwarzaniu pojedynczego strumienia zapytań i przepustowość w przypadku strumieni współbieżnych, kierowanych przez równocześnie pracujących użytkowników,

• QthH lub QthR - Query Throughput, przepustowość (liczba zapytań przetworzonych przez system w ciągu jednej godziny) w przypadku strumieni współbieżnych, kierowanych przez równocześnie pracujących użytkowników,

• $/QphH lub $/QphR - miara określająca price/performance.

Wyniki podawane są także z uwzględnieniem rozmiaru bazy danych. Przewiduje się wzrost popularności tych miar (przykładowe wartości dla TPC-H ukazano w Tablicy 2.21).

2.12 Podsumowanie Jako podsumowanie przedstawiono Tablicę 2.22 pokazującą, jakich najważniejszych miar i zestawów powinno się używać w procesie wyboru sprzętu przeznaczonego do typowych zastosowań.

Wyniki winny być interpretowane raczej bardziej jakościowo niż ilościowo i służyć do wzajemnych porównań.

Oczywiście nie można ograniczać się do wyników jednego typu — korzystnie jest sprawdzić osiągi systemu komputerowego na podstawie możliwie największej ich liczby, odpowiednich dla planowanych aplikacji. Tym lepszy użytek można mieć z dostępnych wyników pomiarów wydajności, im bardziej precyzyjnie określone zostaną zadania stawiane przed przyszłym systemem informatycznym.

Przypomnieć trzeba, że najlepszym sposobem oceny systemu jest wykonanie na nim zadań, dla których ma on być przeznaczony. Z tego powodu przydatne są miary wydajności oparte o konkretne aplikacje, na przykład SAP R/3, BaanIV lub NotesBench.

60 Rozdział 2. Metody oceny wydajności systemów

Przeznaczenie sprzętu Zestaw Opis

Serwer techniczny przeznaczony do intensywnych obliczeń

SPECint95 SPECfp95 SPECrate95 SPECint2000 SPECfp2000 LINPACK

Zestawy testowe użyteczne do porównywania sprzętu przeznaczonego do przetwarzania stałoprzecinkowego i intensywnych obliczeń numerycznych w środowisku o wielu użytkownikach

Serwer NFS

SPECsfs97

Do badania wydajności w zakresie usług sieciowych wykonywanych na plikach '

Serwer Web

SPECweb96 SPECweb99 SPECjvm98

Do badania wydajności usług internetowych i obsługi maszyny wirtualnej Java

Serwer baz danych dla aplikacji OLTP

TPC-C

Modeluje intensywne wprowadzanie poleceń transakcji on-line z dużej grupy terminali, testowane jest działanie wszystkich składników systemu komputerowego

Serwer baz danych dla aplikacji wspomagania podejmowania decyzji

TPC-D TPC-H TPC-R

Modelują typowe aplikacje typu DSS z zakresu wspomagania podejmowania decyzji, eksploracji i składowania danych

System komputerowy wspomagający zarządzanie

SAP R/3 BaanIV

SAP R/3 i BaanIV służą do badania osiągów systemów komputerowych przeznaczonych do wspomagania zarządzania

Tablica 2.22: Zestawienie miar wydajności dla typowych zastosowań komer-cyjnych i przemysłowych

2.12. Podsumowanie 51

Miary wydajności dostarczają charakterystyk technicznych aktualnych w danym momencie i dlatego nie mogą one stanowić jedynego kryterium wyboru. Trzeba wziąć pod uwagę pozycję producenta, przyszłość linii technologicznej, do której należy podlegający ocenie sprzęt i oprogramowanie, a także jakość i zakres oferowanej obsługi w trakcie eksploatacji systemu.

Rozdział 3

Tendencje rozwojowe procesorów

3.1 Wstęp

W niniejszym rozdziile przedstawiono procesory pochodzące od różnych pro-ducentów i stosowane w aktualnie dostępnym sprzęcie komputerowym.

Ukazano informacje dotyczące technologii i architektur procesorów. Omówiono tendencje rozwojowe, modele spodziewane na rynku w bliskiej przyszłości wraz z uwzględnieniem przewidywanej wydajności. Pokazano produkty następujących firm:

• IBM (procesory POWERx i POWERPCx),

• SUN Microsystems (procesory Ultra x),

• Compaq/DEC (procesory Alpha),

• Silicon Graphics Inc. (procesory MIPSx),

• Hewlett-Packard (procesory PAx),

• Intel (procesory Pentium, architekturę IA-32 i IA-64, procesor Itanium).

Informacje powyższe są istotne w procesie wyboru producenta sprzętu dla celów naukowych lub komercyjnych, gdyż ustabilizowana jego pozycja pozwala zminimalizować ryzyko niewłaściwej decyzji.

Niniejszy rozdział opracowany został na podstawie różnych źródeł, takich jak: publikacje w literaturze otwartej, konferencje naukowe, jak również specjalistyczne konferencje organizowane przez poszczególnych producentów

53

54 Rozdział 3. Tendencje rozwojowe procesorów

sprzętu komputerowego. Korzystano również z informacji zawartych w Internecie ([100], [133], [134]). Należy zaznaczyć, że niekiedy występują różniące się od siebie wartości parametrów procesorów (i również komputerów). Dlatego w tym rozdziale (i następnych) starano się umieścić dane pochodzące z niezależnych źródeł, konfrontowane między sobą. Parametry wydajnościowe określa się najczęściej na podstawie metryk wynikających ze zbioru SPEC (por. Rozdział 2). Te miary przyjęto również w poniższym rozdziale. Są to wartości, jakie można spotkać w literaturze dla konkretnej konfiguracji komputera. Dla innej konfiguracji parametry te mogą być znacząco różne [100].

W zakończeniu informacji wstępnych umieszczono kilka uwag terminolo-gicznych. Nazwę procesor stosuje się w odniesieniu do układu mikroproceso-rowego; w miejscach wymagających rozróżnienia używane są obie nazwy.

Technologia (lub typ) procesora określona jest przez typ instrukcji i sposób ich realizacji (np. technologia RISC, CISC lub EPIC). Projekt procesora wykorzystujący daną technologię nazywany jest architekturą procesora (np. POWER, IA-64, PA-RISC) natomiast jego realizacja sprzętowa zwana jest procesorem (np. POWER2, Itanium, PA-8500) (por. (114]).

Technologia półprzewodnikowa dotyczy procesu technologicznego wykorzy-stywanego w produkcji procesorów.

3.2 Procesory komputerów systemów otwartych Przed przystąpieniem do zasadniczego omówienia procesorów pochodzących z różnych firm należy przedstawić ogólną systematykę procesorów aktualnie używanych w komputerach przeznaczonych do obliczeń obliczeń naukowych i z wykorzystaniem baz danych.

W dyskusji ograniczono się do procesorów ogólnego przeznaczenia, pro-dukowanych w dużych ilościach, wykorzystywanych w komputerach systemów otwartych (por. Rozdział 4), pracujących (najczęściej) pod kontrolą systemu operacyjnego typu Unix. Nie będzie więc mowy o procesorach specjalizowanych, używanych w nietypowych architekturach komputerowych (np. procesorach macierzowych), jak również o procesorach wektorowych, które stosowane są wyłącznie w dużych maszynach przeznaczonych do obliczeń naukowo-technicznych. Obecnie w sposób zasadniczy tracą one na znaczeniu (na rzecz systemów równoległych) z powodu wysokich kosztów inwestycyjnych i eksploatacyjnych oraz dynamicznego wzrostu wydajności przetwarzania procesorów ogólnego przeznaczenia. Na Rys. 3.1, opracowanym w 1995, pokazano spodziewaną zbieżność wydajności maszyn wektorowych CRAY

3.2. Procesory komputerów systemów otwartych 56

i komputerów wykorzystujących procesory RISC. Obecnie, w regularnie pu-blikowanych raportach dotyczących wydajności maszyn z wykorzystaniem pakietu LINPACK [16], można zaobserwować to zjawisko.

Rysunek 3.1: Zbieżność wydajności procesorów wektorowych i ogólnego prze-znaczenia

Tradycyjne komputery sekwencyjne wykorzystują model przetwarzania zaproponowany przez John von Neumanna, który (wraz z Allanem Turingiem, twórcą teorii automatów) uchodzi za twórcę idei komputera1. Klasyczna architektura komputera, zwana również często architekturą typu von Neumanna lub sekwencyjną, składa się z kilku podstawowych elementów. W jej skład wchodzą:

• jednostka arytmetyczno-logiczna (arytmometr),

• pamięć operacyjna liniowo adresowana, w której przechowywane są instrukcje i dane,

• system wejścia/wyjścia,

• układ sterowania. 1 ciekawymi pozycjami bibliograficznymi, zajmująco napisanymi i przybliżającymi Czytelnikowi

wiele interesujących szczegółów, m.in., z zakresu rozwoju komputerów, ich twórców, obszaru zastosowań, a także praktycznego wykorzystania są [10, 20, 75].

Zazwyczaj procesorem (jednostką centralną) nazywa się arytmometr wraz z układem sterowania, chociaż w przypadku współczesnych komputerów (o wielu procesorach) pojęcie to jest niezbyt precyzyjne. Funkcjonalny schemat komputera o jednym procesorze przedstawiono na Rys. 3.2, na którym ukazano także pamięci podręczne pierwszego i drugiego poziomu (oznaczone Li i L2 odpowiednio). ......

Rysunek 3.2: Funkcjonalny schemat komputera z jednym procesorem (układ sterowania nie został ukazany)

Podstawową własnością tej architektury jest sekwencyjność wszystkich operacji — ciąg instrukcji operuje na ciągu danych. Wśród procesorów wymienić można trzy zasadnicze technologie, stanowiące rozszerzenie klasycznej architektury von Neumanna:

• CISC (ang. Complex Instruction Set Computers),

• RISC (ang. Reduced Instruction Set Computers),

• EPIC (ang. Explicity Parallel Instruction Computing) - obecnie intensywnie rozwijane.

Najbardziej rozpowszechnionymi są obecnie procesory typu RISC, które niemal całkowicie wyparły procesory typu CISC. Technologia EPIC jest nowością ostatnich lat i spodziewane jest jej istotne rozpowszechnienie w najbliższej przyszłości. Została ona szerzej omówiona w podrozdziale poświęconemu procesorom Intel.

Rysunek 3.3: Wzrost wydajności procesorów

Rys. 3.3 ilustruje składowe wzrostu wydajności przetwarzania współczesnych procesorów [37, 38]. Widać w przybliżeniu liniowy udział pochodzący ze zmian technologii półprzewodnikowej (charakteryzowany jakościowo przez szerokość ścieżek w procesorze oraz materiał z jakiego są wykonane). Większy od niego jest udział przyrostu wydajności wynikający z rozwoju architektury procesora, bardzo szybki zwłaszcza w początkowym okresie każdego etapu rozwoju [39].

W podsumowaniu do niniejszego rozdziału przedstawiono najnowsze projekty w zakresie architektury procesora.

3.2.1 Technologia CISC Technologia ta była najwcześniej rozwiniętą technologią procesorów, z licznymi przykładami konkretnych realizacji architektur. Skrót CISC oznacza procesor o złożonej, obszernej, liście rozkazów różnych długości2. Oba te fakty — złożona lista rozkazów oraz różna ich długość — komplikują w wysokim stopniu analizę i optymalizację kodu (kompilatory muszą być bardzo rozbudowane) i utrudniają uzyskanie równoległości na poziomie realizacji poszcze-

2Różnice w długościach poszczególnych instrukcji mogą być znaczne, np. dla komputera VAX wahały się od 4 do kilkuset.

58 Rozdział 3. Tendencje rozwojowe procesorów

gólnych instrukcji. W wyniku tego niemożliwe jest uzyskanie wysokiej wydajności. Niełatwe jest również zwiększenie częstotliwości pracy, gdyż realizacja architektury wymaga dużej ilości materiału, co wiąże się z koniecznością odprowadzenia ciepła i podnosi koszty produkcji. Najczęściej technologia CISC realizowana jest w formie procesorów wieloukładowych.

Ten typ technologii procesorowej charakterystyczny jest dla wcześniejszych rozwiązań, np. dla komputerów typu mainframe; jego elementy implementowane były w procesorach Intel Pentium oraz przez innych producentów (np. AMD, Cyrix). Obecnie technologia CISC wyraźnie traci na znaczeniu.

3.2.2 Technologia RISC Koncepcja technologii RISC początkami swoimi sięga połowy lat 80-tych. Z przeprowadzanych przez różne firmy badań symulacyjnych wynikło wtedy, że ograniczenie listy rozkazów procesora do najprostszych (i najczęściej używanych), realizowanych w jednym cyklu zegara oraz posiadających jednakową długość — upraszcza etap kompilacji i optymalizacji programu oraz umożliwia stworzenie sprzętu realizującego wiele instrukcji jednocześnie, w kolejności dopuszczalnej przez algorytm lecz optymalizowanej pod kątem wydajności przez procesor w trakcie obliczeń. W razie potrzeby realizacji instrukcji złożo-nych — składa sieje z instrukcji podstawowych. Technologia RISC intensywnie wykorzystuje rejestry procesora dla operacji load/store poprzedzających odwołania do pamięci operacyjnej.

Podstawowymi elementami stosowanymi obecnie w technologii RISC i podnoszącymi wydajność są:

• Zwielokrotnione jednostki funkcjonalne procesora (oddzielne układy mnożące i dodające dla arytmetyki stało- i zmiennoprzecinkowej), co pozwala na realizację w jednym cyklu kilku operacji (przetwarzanie superskalarne). Zazwyczaj obecnie stosowane są 2 podwójne jednostki funkcjonalne zmiennoprzecinkowe, co w idealnym przypadku daje przykładowo dla częstotliwości pracy 200 MHz wydajność maksymalną wynoszącą 800 Mflop/s.

• Procesory jednoukładowe, co umożliwia zminimalizowanie opóźnienia w transmisji sygnałów i zwiększenie częstotliwości pracy. Zakres częstotliwości jest bardzo szeroki i wynosi obecnie od 200 MHz do 800 MHz.

• Rozbudowane bufory i rejestry służące do:

3.3. Procesory IBM__________________________________59

- optymalizacji kolejności wykonywania obliczeń (ang. out-of-order), - organizacji przetwarzania superskalarnego; w praktycznych realizacjach

funkcjonalne jednostki mnożące i sumujące są łańcuchowane i/lub zwielokrotnione,

- realizacji przetwarzania potokowego, w którym kolejne instrukcje złożone znajdują się w różnych stanach realizacji,

• Dużą pamięć podręczna (cache), często dwupoziomowa (w procesorze pamięć LI i zewnętrzna, L2), stosowana oddzielnie dla danych i oddzielnie dla instrukcji (por. Rys. 3.2); pewnym standardem jest wielkość cache wynosząca 1MB/1MB dla danych i instrukcji odpowiednio,

• Modyfikacje technologii półprzewodnikowej, związane ze zmniejszeniem szerokości ścieżek, złączy półprzewodnikowych oraz przejściem na tech-nologię miedzianą.

3.2.3 Rozwój pamięci operacyjnej Warto też zwrócić uwagę na różnice w szybkości rozwoju procesorów i układów pamięci operacyjnej.

Ponieważ szybkość rozwoju tych ostatnich jest mniejsza, istotnego znaczenia nabiera nie tylko rozwój procesorów (jako pewnego elementu komputera), ale również rozwój architektury komputera jako całości i tzw. zrównoważenie architektury. Ważnym czynnikiem jest przepustowość podsystemu procesor-pamięć operacyjna, określająca czasy dostępu do pamięci operacyjnej i pamięci podręcznej procesora, decydujące w zasadniczym stopniu o wydajności całego systemu komputerowego.

3.3 Procesory IBM Koncern IBM (łącznie z firmą Motorola) jest jednym z największych, obok firmy Intel, producentów procesorów typu RISC. W chwili obecnej rozwijane ich dwie linie ulegają ujednoliceniu (por. Rys. 3.4, np. [92]):

• linia procesorów POWER (oryginalny projekt IBM),

• linia procesorów POWERPC (PPC, powstała we współpracy z firmami Apple i Motorola i wykorzystywana jednocześnie przez te firmy).

60 Rozdział 3. Tendencje rozwojowe procesorów

Procesory IBM typu RISC są stosowane zarówno w systemach Unix, jak i w dużych komputerach typu mainframe (superserwerach systemu S/390, zwanych Parallel Enterprise Servers), wykorzystywanych w przetwarzaniu komercyjnym i wspomaganiu zarządzania przedsiębiorstwem. Zaobserwować można tendencje firmy do wprowadzania nowości technologicznych w pierwszym rzędzie na rynku komputerów przetwarzania komercyjnego, a dopiero następnie w zakresie stacji i serwerów przeznaczonych do obliczeń naukowo-technicznych (np. [59, 64, 125, 128]). Najnowsze procesory IBM obsługują listy rozkazów obu linii.

Typowym, wczesnym przedstawicielem pierwszej linii jest procesor PO-WER2. Jest to procesor o kilku układach, 4-drożny, co oznacza, że w jednym cyklu zegara istnieje możliwość wykonywania 4 instrukcji (zmiennoprzecinkowych) jednocześnie. Przy typowej częstotliwości pracy wynoszącej 77MHz, maksymalna wydajność wynosi 308 MFlop/s. Procesory te zastąpiono nowszą generacją o takiej samej architekturze, lecz wykonaną w formie jednego układu - POWER2SC, o częstotliwości 120, 135 i 160 MHz. W tym ostatnim przypadku maksymalna wydajność wynosi 640 MFlop/s, a pamięć podręczna LI - 128/32kB (dla danych i instrukcji odpowiednio).

Rysunek 3.4: Linie rozwojowe procesorów IBM

Procesory linii POWERx wykorzystywane są głównie w intensywnych ob-liczeniach naukowo-technicznych, z racji ich dużej wydajności w arytmetyce

3.3. Procesory IBM___________________________________61

zmiennoprzecinkowej. Stosuje sieje także w komputerach powstających w ramach projektu ASCI [121], dotyczącego budowy jednostkowych egzemplarzy najwydajniejszych maszyn przeznaczonych do obliczeń naukowych.

Pod koniec roku 1998 wprowadzono nowy procesor POWER3, będący kontynuacją linii procesorów POWER. Wykorzystuje architekturę PO-WERPC; jest używany w stacjach roboczych, serwerach baz danych serii AS400, jak i w komputerach o wielu procesorach SP2 (por. Rozdział 4). Wśród zalet nowego procesora wymienia się oprócz większej wydajności także niższą cenę oraz lepsze zrównoważenie procesora pod względem obliczeń stało- i zmiennoprzecinkowych. Taktowany zegarem 200 MHz (w technologii półprzewodnikowej 0.25/um) osiąga wydajność SPECint95 = 13.2 oraz SPECfp95 - 30.1. Obecnie procesor POWER3 wykonywany jest z wykorzystaniem technologii (miedzianej) 0.18/um. Wersja POWER3 II pracuje z częstotliwością podstawową 375 MHz. Ocenia się, że wydajność dla 500MHz jest rzędu SPECint95 = 30 oraz SPECfp95 = 70.

Drugi kierunek rozwojowy reprezentuje linia procesorów POWERPC. Oryginalnie, głównym przeznaczeniem procesorów POWERPC jest przetwarzanie transakcyjne lub układy sterowania. Procesory te nadają się doskonale do systemów o kilku procesorach, realizujących przetwarzanie symetryczne (SMP). Popularny procesor POWERPC604e zastąpiono w kolejnych latach procesorami POWERPC 750 (z następcą G4) oraz procesorami RS64II i RS64III (G6). Ten ostatni wytwarzany jest w nowej technologii o ścieżkach miedzianych. Ze względu na korzystniejsze własności elektryczne tego przewodnika w porównaniu z aluminium, możliwe jest uzyskanie lepszych parametrów wydajnościowych procesora, w szczególności częstotliwości pracy 500-700MHz.

Plany rozwojowe firmy IBM w zakresie procesorów dotyczą dalszego rozwoju technologii miedzianej, implementowanej w całej linii procesorów [51] oraz wprowadzenia technologii Silicon on Insulate, pozwalającej uzyskać wymiar ścieżek 0.12/um oraz zmniejszenie pojemności pasożytniczych wraz ze wzrostem częstotliwości pracy do rzędu l GHz (83, 125].

Podsumowanie. Wśród cech charakterystycznych procesorów IBM wymienić można:

• Mocna i uznana w świecie pozycja producenta.

• Własne rozbudowane centra badawcze.

• Duże nakłady finansowe na badania.

62 Rozdział 3. Tendencje rozwojowe procesorów

• Własnościowe rozwiązania, bazujące na architekturze POWERx i PO-, WERPC oraz wykorzystanie procesorów rodziny Intel Pentium.

• Technologia EPiC i architektura IA-64 będą stosowane obok procesorów POWER i POWERPC.

• Implementacja technologii miedzianych ścieżek połączeń w procesorach. Podstawowym systemem operacyjnym jest system AIX (typu Unix, obecnie w

wersji 4.3). Dla komputerów z IA-64 przewiduje się system Monterey/64 (o własnościach AIX), powstający we współpracy z firmami Intel i SCO, a także Win64 (produkcji Microsoft). W przypadku komputerów typu main-frame używa się systemu OS/390. Nadal stosowany jest OS/400, przeznaczony na komputery AS/400.

3.4 Procesory firmy SUN Microsystems Firma SUN Microsystems należy do prekursorów procesorów RISC i systemów UNIX powszechnego użytku. W procesie produkcyjnym współpracuje z różnymi fabrykami (między innymi z Fujitsu). Zakres zastosowań komputerów tej firmy jest bardzo szeroki i obejmuje zarówno zastosowania naukowo-techniczne, jak i przetwarzanie danych komercyjnych. Komputery te chętnie stosowane są również na rynku akademickim i w realizacji usług sieciowych (np. [135]).

Obecnie wykorzystuje się najczęściej procesor UltraSPARCII (z częstotliwością 450MHz, wykonany w technologii 0.25/um), o wydajności SPECint95 = 19.6 i SPECfp95 =- 27.1. Procesor UltraSPARCIII, jako jego następca, zapewnia 2-3 razy większą wydajność obliczeniową dla tego samego oprogramowania. Szybka wymiana danych z pamięcią dochodząca do 2.4 GB/s oraz współpraca z magistralą o przepustowości do 9.6 GB umożliwiającą szybki dostęp do pamięci podręcznej wielu procesorów, predysponują nowy procesor do zastosowań związanych z modelowaniem i analizą graficzną, również w systemach o wielu procesorach.

Przewiduje się dwie realizacje procesora UltraSPARCIII: w technologii półprzewodnikowej 0.25/nn z zegarem o częstotliwości 600 MHz i wydajnością SPECint95 = 35+ i SPECfp95 = 60+, oraz w technologii 0.18/um, pozwalającej zwiększyć częstotliwość zegara do l GHz. Procesory będą produkowane we współpracy z firmą Texas Instruments.

Celem obniżenia kosztów produkcji komputerów SUN wprowadził na rynek procesor UltraSPARCIIi, pracujący z częstotliwością do 480 MHz. W pro-

3.4. Procesory firmy SUN Microsystems_______________________63

cesorze tym zintegrowano niektóre jednostki funkcjonalne, co spowodowało pewną degradację wydajności w porównaniu z klasycznymi implementacjami procesora UltraSPARCII.

W przyszłości należy się spodziewać większego zaangażowania firmy SUŃ w architekturę IA-64.

Wśród oprogramowania bardzo intensywnie jest rozwijane podejście obliczeń na sieci komputerów, pozostające w zgodności z lansowanym hasłem "Network is Computer" oraz wykorzystanie standardu Java do obliczeń naukowo-technicznych.

Podstawowym zakresem zastosowań komputerów wyposażonych w procesory UltraSPARC są pojedyncze stanowiska przetwarzania grafiki i obsługi danych multimedialnych oraz duże komputery usług sieciowych i zastosowań komercyjnych. Te ostatnie mogą być wyposażone w kilkadziesiąt procesorów (na przykład Enterprise10000).

Podsumowanie

• Firma SUN Microsystems jest firmą mniejszą w porównaniu na przykład z IBM lub Hewlett-Packard i mniej nakładów finansowych przeznacza na badania naukowe.

• Największą popularnością cieszą się maszyny wyposażone w procesory UltraSPARC w zakresie usług sieciowych i pojedynczych stanowisk gra-ficznych.

• W ciągu ostatnich kilku lat SUN znalazł się wśród czołówki firm rynku komercyjnego, stając się poważnym konkurentem najmocniej ulokowanych firm IBM i Hewlett-Packard.

• Dla uzyskania pożądanej wydajności serwery wyposaża się dużą liczbę procesorów, co może rodzić problemy z uzyskaniem odpowiedniej skalo-walności i wysokiej niezawodności; korzystne jest partycjonowanie systemu.

• Przyszłość procesorów używanych przez firmę SUN analitycy upatrują w zastosowaniu technologii EPIC i architektury IA-64. Jednocześnie produkowane będą w dalszym ciągu procesory z wykorzystaniem technologii RISC - w szczególności UltraSPARCIII oraz jego następcy. W 2001 roku przewiduje się wprowadzenie procesora Ultra SPARC IV (1GHz), a w następnym - UltraSPARC V (l.5GHz).

Sprzęt pracuje pod kontrolą systemu operacyjnego Solaris 7 lub Solaria 8.

64 Rozdział 3. Tendencje rozwojowe procesorów

3.5 Procesory firmy Compaq Digital Equipment Corporation (DEC) była firmą, która już w latach 60 należała do największych i najbardziej znanych producentów dużych komputerów, ustępując tylko IBM. Swoją pozycję ugruntowała w latach 70., jako producent pierwszych minikomputerów. Od tego czasu pozycja jej stopniowo malała, aż w styczniu 1998 firma DEC przejęta została przez firmę Compaq, znaną głównie jako producenta sprzętu PC. Przejęcie firmy DEC analitycy oceniają jako korzystne dla obu stron.

W zjednoczonej korporacji zachowano produkcję komputerów z wykorzy-staniem obu linii procesorów: Alpha i Intel. Spodziewany jest dalszy rozwój procesorów Alpha i platformy WindowsNT/Windows2000.

W lutym 1992 roku firma DEC wprowadziła pierwszy na świecie procesor 64-bitowy wraz z pierwszym w pełni 64-bitowym systemem operacyjnym Digital Unix do zastosowań komercyjnych.

Do chwili obecnej pojawiły się na rynku już trzy generacje procesorów Alpha — 21064, 21164 oraz 21264 — produkowane z zastosowaniem coraz nowszych technologii półprzewodnikowych — od 0.75 /um do 0.35 um. Zwiększono również częstotliwości zegara taktującego ze 150 MHz procesora 21064 do ponad 600 MHz dla ostatniej generacji procesorów 21264, co pozwoliło istotnie zwiększyć wydajność. W tym ostatnim przypadku wydzielana jest znacząca moc — rzędu 70 W.

Obecnie produkowane są, m.in., następujące procesory (np. [100]);

• Alpha 21164 jest taktowany zegarem o częstotliwości 600MHz co pozwala mu osiągać wydajność SPECint95=18 oraz SPECfp95=21. Procesor wyposażono w pamięć podręczną L2 oraz kontroler pamięci L3.

• Alpha 21264 jest obecnie najbardziej zaawansowanym technologicznie i konstrukcyjnie procesorem firmy. Osiągane wydajności obliczeniowe to SPECint95=39 oraz SPECfp95=68 (dla 700MHz). Jego promocja na rynku nastąpiła w połowie 1998.

• Zgodnie z zapowiedziami ([100]), w 2000/2001 r. ma pojawić się na rynku procesor 21364 taktowany zegarem 1GHz, wykonany w technologii półprzewodnikowej 0,18 /um, którego wydajność obliczeniowa ma wynosić SPECint95=70 i SPECfp95=120. Projekt przewiduje, że procesor ten będzie procesorem 4-ro drożnym, składającym się z 4 układów stałoprzecinkowych i 2 zmiennoprzecinkowych. Posiadać będzie pamięć podręczną LI 64KB-1-64KB danych i instrukcji, L2 1.5 MB, predykcję rozgałęzień algorytmu i zdolność współpracy z 128-bitową magistralą.

3.6. Procesory firmy SGJ ____________________________65

Magistrala umożliwia transfer danych z LI z przepustowością 8 GB/s, danych z L2 z przepustowością 4GB/s oraz do/z pamięci operacyjnej z przepustowością 2 GB/s. Lista rozkazów procesora została wyposażona w rozszerzenie standardu MVI. Promocja następnego modelu, 21464, przewidziana jest na rok 2003.

Podsumowanie. Należy zwrócić uwagę, że ze względu na wejście firmy DEC w skład innej firmy — Compaq — o tradycjach związanych z wykorzystaniem procesorów firmy Intel (Pentium, w architekturze IA-32), produkowane są komputery wykorzystujące oba typy procesorów. Analitycy rynku spodziewają się w przyszłości znaczącego udziału procesorów IA-64; będzie to wiązało się zapewne ze stopniowym zmniejszeniem udziału procesorów Alpha w powszechnie używanym sprzęcie. Można sądzić, że procesory Alpha stosować się będzie nadal w najbardziej wydajnych komputerach o wielu setkach procesorów (przykładem jest komputer Cray T3E, por. Rozdział 4).

Utrzymywane mają być trzy linie systemów operacyjnych: Tru64Unix (obecnie wersji 5), OpenVMS i WindowsNT/Windows2000.

3.6 Procesory firmy SGI Firma Silicon Graphics, Inc. (SGI) odnosi sukcesy w zakresie grafiki kom-puterowej, obliczeń naukowo-technicznych i multimediów [132]. Słabo repre-zentowana jest na rynku zastosowań komercyjnych. W swoich oryginalnych instalacjach korzysta z procesorów firmy MIPS, która wchodzi w jej skład. Przy produkcji procesorów, SGI korzysta także z fabryk firmy NEC.

Stosowany w komputerach procesor MIPS R12000 taktowany jest zegarem o częstotliwości rzędu 300 MHz. W przypadku poprzednika, MIPS R10000, stosowano częstotliwość 200-250MHz. Procesor stosowany jest najczęściej do obsługi oprogramowania inżynierskiego typu CAD, CAM lub CAE. Dalszy wzrost wydajności oprogramowania upatruje się w jego rekompilacji i zastosowaniu 64-bitowej listy rozkazów MIPS-IV. Planowany jest dalszy rozwój procesorów MIPS 1x000 [100]. W roku 2001 spodziewany jest procesor R14000 (500MHz) o wydajności maksymalnej l Gflop/s.

Z procesorów MIPS korzystają również inne firmy komputerowe, stosujące te procesory w swoich systemach. Jako przykład wymienić można serwery firmy Siemens-Nixdori, przeznaczone do zastosowań komercyjnych.

Obecnie komputery SGI cieszą się największą popularnością w zakresie zastosowań naukowo-technicznych i pracują pod kontrolą systemu operacyjnego IRIX. Przykładem są stacje robocze lub komputer wieloprocesorowy

66 __ __________ Rozdział 3. Tendencje rozwojowe procesorów

Origin2000. Producent bierze udział także w inicjatywie budowy jednostkowych, najwydajniejszych maszyn, przeznaczonych do obliczeń naukowo-technicznych w ramach projektu ASCI [121].

3.7 Procesory firmy Hewlett-Packard Firma Hewlett-Packard należy (obok IBM i SUN Microsystems) do najważ-niejszych producentów procesorów i sprzętu komputerowego przeznaczonego do zastosowań profesjonalnych [5, 114]. Procesory typu RISC produkowane są przez nią od 1990 roku (por. Rys. 3.5). Obecna linia procesorów — PA8xOO — charakteryzuje się wspólnymi cechami, do których należą: architektura 64-bitowa, 4-drożna konstrukcja, 10 jednostek funkcjonalnych, duże bufory dla realizacji operacji typu out-of-order i duża pamięć podręczna (rzędu kilku MB oddzielnie dla danych, oddzielnie dla instrukcji) (Rys. 3.6).

Architektura Intel/HP IA64

Rysunek 3.5: Rozwój procesorów firmy HP

Pierwszym procesorem 4-drożnym, o architekturze 64-bitowej był procesor PA-8000 (Rys.3.6, skróty oznaczają: SM - Shift/Merge, FMA - Floating-point Multiply/Accumulate, FDS - Floating-point Divide/SQRT, LSAA -Load/Store Address Adders) [32]. Wykonywany w technologii półprzewodnikowej 0.5um, taktowany jest zegarem o częstotliwości 180MHz osiągając

Rysunek 3.6: Schemat architektury procesora serii HP PA-8000

wydajności SPECint95=10.8 oraz SPECfp95=18.3. Współpracuje z magistralą o średniej przepustowości 768 MB/s. Procesor wyposażony jest w pamięć podręczną instrukcji/danych wynoszącą 1MB/1MB oraz 256-wejściowy układ pamięci dla predykcji rozgałęzień.

Procesor PA-8200 stanowi przykład ewolucji rodziny procesorów, w którym wpływ udoskonaleń jest zwłaszcza widoczny w zastosowaniach o nieregularnych strukturach danych. Zastosowane zmiany pozwoliły na zwiększenie wydajności obliczeniowej procesora PA-8200 o 35-75% dla różnych aplikacji w stosunku do jego poprzednika.

Kolejny model procesora, PA-8500 (wprowadzony na rynek w 1999r), wy-posażony jest w dużą pamięć podręczną LI 1.5 MB, umieszczoną w układzie scalonym procesora (on chip). Wykonany jest w technologii 0.25um, zaś czę-stotliwość zegara taktującego wynosi 360 i 440 MHz. Wersja PA-8600 pracuje z częstotliwością 552 MHz.

W dalszej perspektywie Hewlett-Packard planuje uruchomienie produkcji procesora PA-8700, o zwiększonej funkcjonalności, wykonywanego w technologii O.l8um i pracującego z częstotliwością 720 MHz oraz, w latach 2002-2003, modeli PA-8800 i PA-8900 (z częstotliwościami 900MHz i 1.2GHz odpowiednio). Jednocześnie stacje robocze i serwery HP będą wyposażane w procesory Itanium (Rys. 3.5) oraz jego następców o architekturze IA-64, któ-

68 Rozdział 3. Tendencje rozwojowe procesorów

rych projekt powstaje we współpracy z firma Intel. Dzięki masowości produkcji, gwarantowanej przez fabryki firmy Intel - spodziewana jest jego stosunkowo niska cena oraz duże jego rozpowszechnienie po roku 2000.

Podsumowanie. Na podstawie analizy cech procesorów firmy HP można sformułować następujące wnioski:

• Rozwijana jest rodzina procesorów o architekturze PA-RISC.

• Utrzymywana jest ścisła, wieloletnia współpraca z firmą Intel w zakresie technologii EPIC i procesora Itanium oraz jego następców, a także systemu operacyjnego przeznaczonego na te procesory.

• Aktywna działalność w obszarze standardów, w szczególności systemów operacyjnych typu Unix i WindowsNT/Windows2000 oraz ich integracji.

• Duży udział badań w corocznym budżecie firmy HP.

• Rozpowszechnienie produktów HP na rynku komercyjnym i duże do-świadczenie w zakresie potrzeb i wymagań.

Stosowany jest system operacyjny HP-UX (typu Unix, obecnie w wersji 11) oraz własnościowy MPE/iX.

3.8 Procesory Intel Firma Intel jest jednym z czołowych producentów mikroprocesorów. Produkuje je w bardzo dużych ilościach i w związku z tym - w niskiej cenie. Opanowała większość rynku komputerów PC klasy średniej i wyższej. Od kilku lat rośnie udział systemów zbudowanych w oparciu o procesory tej firmy na rynku serwerów komercyjnych wykorzystujących kilka procesorów. Jest to spowodowane niską ceną oraz szybkim rozwojem technologii w tym zakresie, a także coraz bardziej stabilną implementacją systemów operacyjnych WindowsNT, Linux oraz Solaris.

Intel zamierza kontynuować linię procesorów 32-bitowych IA-32 i jedno-cześnie wprowadza nową, 64-bitową architekturę IA-64.

3.8. Procesory Intel 69

3.8.1 Architektura IA-32 Architektura IA-32 stanowi rozszerzenie podstawowej rodziny procesorów opartej na protoplascie 8088. Długoletni rozwój tej rodziny zaowocował pojawieniem się produktów Pentium II/III i Celeron bazujących na tzw. mikro-architekturze P6.

Pamięć podręczna drugiego poziomu jest jednym z głównych czynników dzielących procesory Intel na klasy. W Pentium II/III pamięć podręczna L2 komunikuje się z jądrem procesora z połową częstotliwości procesora. Tańsze wersje procesora — Celeron — początkowo nie posiadały pamięci L2; po jej wprowadzeniu celem podniesienia wydajności przetwarzania — komunikacja pamięci L2 z jądrem procesora zachodzi z wykorzystaniem pełnej częstotliwości. Procesory Pentium II/III Xeon wyposażone są w pamięć L2 także wykorzystującą pełną częstotliwość procesora.

Model

Rok wprowadzenia na rynek

Częstotliwość (MHz)

Technologia półprzewodnikowa

(um) Pentium II (Klamath)

1997 233, 266, 300 0.35

Pentium II Pentium II Xeon (Deschutes)

1998

333, 350, 400, 450

0.25

Pentium III Pentium III Xeon (Katmai)

1999

450, 500, 550

0.25

PentiumIII (Cascades, Coppermine)

1999 533+ 0.18

Tablica 3.1: Niektóre cechy wybranych procesorów Intel

Integracja technologiczna pamięci L2 z procesorem jest silniejsza w przypadku procesorów Celeron; ich przeznaczeniem jest rynek komputerów popularnych. Procesory Pentium II/III oferują więcej możliwości konfiguracyjnych ze względu na pewne możliwości doboru pamięci L2 i przeznaczone są na rynek serwerów komercyjnych.

Różnice między procesorami znajdują odzwierciedlenie w odmiennym sposobie montażu. Pentium II/III instalowane jest za pośrednictwem gniazda krawędziowego Slotl, Celeron wykorzystuje także złącze Slotl lub Socket370 (przy montażu bezpośrednim procesora na płycie), Pentium II/III Xeon — złącze krawędziowe Slot2.

70_______________ Rozdział 3. Tendencje rozwojowe procesorów

Niektóre cechy wybranych procesorów Intel zebrano w Tablicy 3.1. Pentium II o nazwie Deschutes wykorzystuje gniazdo Slot2 i jest taktowany zegarem do 450 MHz. Osiąga on wydajność rzędu SPECint95=17 i SPECfp95=13. W procesorze Pentium II Xeon (Deschutes) dokonano integracji najlepszych cech poprzednich rozwiązań. Posiada 512kB pamięci podręcznej instalowanej na zewnątrz jądra procesora (jak w przypadku Pentium II), taktowanej z pełną częstotliwością taktowania procesora (jak w przypadku procesora Celeron). Rozmiar pamięci podręcznej drugiego poziomu jest zwiększony do 1MB-2MB. Przeznaczeniem tych procesorów jest rynek stacji roboczych i serwerów.

Kolejne realizacje mikroarchitektury P6 to procesory Pentium III. Procesor Katmai (500 MHz) osiąga wydajność rzędu SPECint95=21 i SPECfp95==15. Wydajności jego następców (wykonanych w technologii O.18um) są wyższe i wynoszą (dla 800 MHz) SPECint95=39 i SPECfp95=32. Uzyskiwane parametry powodują, iż zasadne jest zastosowanie tych proceso-rów w przetwarzaniu komercyjnym, o dominującym udziale obliczeń stało-przecinkowych.

Z myślą o projektowaniu, symulacji i obliczeniach inżynierskich Intel wprowadził nową generację procesorów 64-bitowych, budowanych w oparciu o architekturę IA-64.

3.8.2 Architektura IA-64 Procesor o architekturze IA-64 wykorzystujący technologię EPIC został utworzony we współpracy koncernów Intel, Hewlett-Packard oraz kilku ośrodków uniwersyteckich. Nowa architektura nawiązuje w swych elementach do dawnych projektów firmy DEC w odniesieniu do architektury z bardzo długim słowem (ang. Very Long Instruction Word-VLIW). Cechy architektury IA-32, porównane w Tablicy 3.2 z cechami IA-64 (za [33]), odnoszą się w pewnym zakresie także do technologii RISC, z wyjątkiem występowania w niej instrukcji prostych różnej długości. Do cech architektury IA-64 należą, m.in.:

• możliwość przeglądania kolejnych rozkazów przed ich wykonaniem, • wykorzystanie długich rozkazów stałej długości (ang. long instruction word - LIW),

• możliwość eliminacji rozgałęzień kodu programu, oraz wiele innych zaawansowanych technik pozwalających na wykonanie maksymalnej ilości instrukcji kodu programu w sposób równoległy, zachowu-

3.8. Procesory Intel 71

jąć niewygórowaną częstotliwość pracy. Przewiduje się wykorzystanie 8 aryt-metycznych jednostek funkcjonalnych, a także zgodność na poziomie kodu programu między architekturą IA-64, procesorami Pentium oraz PA-RISC.

Realizacja Cecha IA-32 IA-64

Instrukcje złożone różnej długości proste jednakowej długości w grupach po trzy

Optymalizacja kolejności instrukcji

podczas wykonania

podczas kompilacji

Ładowanie danych z wyprzedzeniem

w ograniczonym zakresie

bardziej rozwinięte

Instrukcje warunkowe

predykcja i realizacja obliczeń wzdłuż jednej ścieżki

realizacja obliczeń wzdłuż kilku ścieżek, odrzucenie wyników zbędnych

Superskalarność do 4 powyżej 4Udział - kompilatora - procesora w optymalizacji kodu

mały duży ;

duży mały

Tablica 3.2: Porównanie wybranych cech architektur IA-32 z IA-64

Udział części sekwencyjnej w obliczeniach nakłada ograniczenia, które współczesne procesory eliminują w pewnym stopniu poprzez wyszukiwanie tzw. ukrytej równoległości, możliwość przeładowywania kolejki rozkazów w locie, a także przewidywanie realizacji jednej ze ścieżek (gałęzi) instrukcji warunkowych (por. Rozdział 3.2.2). Wszystkie te czynności powodują jednak, że teoretyczna możliwość wykonania 4 instrukcji w jednym cyklu zegara jest w praktyce ograniczona. Dodatkowym problemem jest dostęp do danych znajdujących się w pamięci operacyjnej. Występują więc straty istotnej części cykli procesora.

W architekturze IA-64 wprowadza się następujące elementy:

• Nowy format słów (LIW) o stałej długości 128 bitów, zawierający trzy instrukcje3. Jego postać podyktowana jest ogólną optymalizacją wykonania w jednym cyklu bez konieczności użycia mikrokodu. Nowa technologia została nazwana Explicity Parallel Instruction Computing -EPIC.

3 Ta triada zwana jest czasem molekułą.

72 Rozdział 3. Tendencje rozwojowe procesorów

• Każde 128-bitowe słowo zawiera ramkę posiadającą kilka bitów, zapisanych przez kompilator, informujących bezpośrednio procesor, które instrukcjm mogą zostać wykonane równolegle. Procesor podczas wykonania programu nie traci cykli na analizę kodu dla wyszukania ukrytej równoległości (jak w przypadku technologii RISC), lecz korzysta z informacji uzyskanej na etapie kompilacji. Stosuje się 128 rejestrów stałoprzecinkowych i tyle samo rejestrów zmiennoprzecinkowych.

• Kompilator dla architektury IA-64 stosuje technikę predykcji dla opty-malizacji instrukcji warunkowych. Procesor wykonuje bloki warunkowe w sposób równoległy, a po określeniu właściwego - zachowuje odpowiednie, wyliczone wartości, resztę odrzucając.

• Kompilator dla architektury IA-64 dokonuje predykcji także celem wy-szukania odwołań do danych i umieszczenie ich w rejestrach zanim program się do nich odwoła. Mechanizm pozwala na ukrycie opóźnienia będącego skutkiem odwołania do pamięci.

Należy w tym miejscu zwrócić uwagę na znacznie większą rolę kompilatora w optymalizacji kodu niż miało to miejsce dotychczas, W technologiach RISC większość optymalizacji była dokonywana w trakcie wykonywania programu. Przeniesienie ciężaru optymalizacji na kompilator powoduje jego wolniejszą pracę i zwiększenie kodu wynikowego. Uzyskuje się dzięki temu jednak lepsze wykorzystanie samej architektury.

W trakcie tworzenia kodu wynikowego kompilator może dokonać także zmiany kolejności wykonania poszczególnych instrukcji. Stosowana w procesorach typu RISC technika zmiany kolejności instrukcji stosowana jest podczas wykonania kodu, a nie jego tworzenia (por. Rozdział 3.2.2).

Predykcja wykonania instrukcji warunkowych. Predykcja jest podstawową techniką, jaką wykorzystują współczesne kompilatory. Tradycyjnie kompilator zamienia bloki instrukcji warunkowych na niezależne bloki kodu wynikowego. Procesor, w trakcie wykonywania kodu, w zależności od warunku wybiera jeden z nich pozostałe pomijając. Współczesne procesory dokonują predykcji wyboru bloku warunkowego i jego realizacji z wyprzedzeniem. W przypadku błędnej predykcji konieczne jest wykonanie innego bloku — następuje strata wielu cykli maszynowych.

W przypadku architektury IA-64 kompilator tworzy (z wykorzystanie analizy danych pod względem zachodzących między nimi zależności) ścieżki obliczeń oddzielne dla każdego bloku warunkowego i dopuszcza równoległą ich realizację. Po sprawdzeniu warunku realizacji bloku — akceptuje się do

3.8. Procesory Intel_________________________________73

dalszych obliczeń wyniki tego bloku — resztę odrzucając. Nie traci się cykli, gdyż dostępne są wyniki pochodzące ze wszystkich bloków.

Technika predykcji pozwala ograniczyć negatywny wpływ na wydajność wykonywania programu zawartych w nim rozgałęzień. Skuteczność ocenia się na około 50%. Pozwala także zmniejszyć fragmentację kodu programu, gdyż kompilator może łączyć małe bloki instrukcji w większe, dające więcej swobody w ich reorganizacji celem równoległego wykonania.

Ładowanie danych z wyprzedzeniem. Innym ciekawym rozwiązaniem jest sposób ładowania danych z pamięci operacyjnej koniecznych do wykonania instrukcji. Procesor IA-64 nie tylko dokonuje tego ładowania zanim dane są potrzebne, lecz także zapisuje informację o wyjątkach, jeśli operacja transferu nie była legalna (np. ze względu na zależności między danymi). Celem jest odseparowanie operacji ładowania danych od ich wykorzystania, dla wyeliminowania jałowych cykli procesora wykonywanych przy oczekiwaniu na zakończenie operacji ładowania.

Jest to procedura różniąca tradycyjną architekturę procesora od IA-64. Kompilator analizuje program i określa wszystkie te instrukcje, które wymagają danych z pamięci. Jeśli to możliwe, każda taka instrukcja jest rozdzielona na dwie: jedną, zwaną spekulatywnym ładowaniem danych, którą kompilator umieszcza w programie wynikowym w miejscu istotnie poprzedzającym ich użycie oraz drugą, która wykorzystuje dane dokonując uprzednio weryfikacji ich poprawności.

Dla przykładu załóżmy, że przy instrukcji warunkowej (rozgałęzieniu pro-gramu) spekulatywne ładowanie danych umieszczone zostało przed rozgałęzieniem, a weryfikacja poprawności i wykorzystanie danych pozostało w jednej z gałęzi instrukcji warunkowej. Jeśli spekulatywne ładowanie danych jest poprawne, wtedy każda ze ścieżek może być realizowana, w przeciwnym przypadku tworzona jest informacja o wystąpieniu "wyjątku", lecz nie powoduje ona zatrzymania obliczeń (inaczej niż w tradycyjnych procesorach). Ścieżka, w której dane ładowane spekulatywnie nie są wykorzystywane może być realizowana niezależnie od ich poprawności, w drugiej ścieżce konieczna jest weryfikacja poprawności danych przed wykorzystaniem i zatrzymanie obliczeń dopiero wtedy gdy dane na tym etapie są niepoprawne.

System operacyjny Procesor Itanium, stanowiący pierwszą realizację architektury IA-64, może pracować pod kontrolą kilku systemów operacyjnych, z których każdy rozwinięty jest w różnym stopniu. Są to:

• Win64 (Microsoft), typu WindowsNT,

74_________________ Rozdział 3. Tendencje rozwojowe procesorów

• IA-64 Linux (Projekt Trillian),

• Monterey/64 (IBM i SCO), typu AIX,

• HP-UX (Hewlett-Packard),

• Modesto (Novell).

Należy się spodziewać podziału zakresu zastosowań wymienionych powyżej systemów operacyjnych. Linux będzie raczej ograniczony do prostych, dedykowanych zastosowań, natomiast HP-UX i Monterey/64 używany będzie w zakresie dużych przedsięwzięć [51].

Podsumowanie cech IA-64. Technika ładowania danych z wyprzedzeniem w połączeniu z techniką predykcji daje procesorowi znacznie więcej możliwości manewrowania kolejnością instrukcji i zwiększania stopnia równoległego wykonania programu. Zdolność przeniesienia instrukcji ładowania danych ponad rozgałęzienia kodu programu jest bardzo mocnym narzędziem. Stworzenie możliwości dostarczenia danych z pamięci operacyjnej zanim będą one potrzebne daje się osiągnąć jedynie przy ścisłej współpracy kompilatora i procesora. Kolejne wersje procesora przewidziane są na lata następne (o nazwach McKinley, Deerfield i Madison).

Wnioski dotyczące procesorów Intel • Duże zaplecze naukowo-badawcze firmy Intel, współpraca naukowa z innymi

firmami oraz możliwości produkcyjne skłaniają do wniosku, że IA-64 stanie się popularną architekturą. Szacowana wstępnie wydajność wynosi SPECint95 = 45 i SPECfp95 = 70 (dla 800 MHz).

• Zachowana zostanie (przez pewien okres) produkcja procesorów w ar-chitekturze IA-32 (Pentium).

• Procesor Itanium (implementujący IA-64) będzie używany pod kontrolą systemów operacyjnych dwóch typów: Unix i WindowsNT. Spodziewana jest silniejsza integracja obu środowisk.

3.9 Porównanie współczesnych procesorów Analizując dostępne dane zauważyć należy, że część producentów zmierza w przyszłości do konsolidacji linii swoich procesorów (na przykład HP), podczas gdy pozostali raczej będą podtrzymywać kilka niezależnych linii. Każdy

3.9. Porównanie współczesnych procesorów 75

z producentów planuje korzystać w swoich produktach z procesora Intel o architekturze IA-64.

Procesor

Technologia CMOS, warstwy

Liczba tranzystorów (min)

Typowa częstotliwość (MHz)

POWERPC 601 0.6 um, 4L 2.8 80POWERPC 604e 0.35 um, 5L 5.1 332POWER2SC 0.29 um, 5L 15.0 160POWER3 0.2 um, 5L - 300Alpha 21064 0.7 un, 3L 1.7 300Alpha 21164 0.35 un, 4L 9.3 600Alpha 21264 0.35 um,6L 15.2 600SuperSPARC 0.8 um, 3L 3.1 60SuperSPARC II 0.35 um, 5L 5.4 250UltraSPARC II 0.25 un, 5L 5.4 450R4400 0.6 um, 2L 2.2 150R10000 0.35 um, 4L 6.7 200PA7100 0.8 urn, 3L 0.8 100PA8000 0.35 um, 5L 3.8 180PA-8500 0.25 urn, -L 120. 440Pentium II 0.25 um, -L 7.5 450(Deschutes) Pentium III 0.18 um, 6L 28 700(Coppermine) Itanium 0.15 um, -L 320 800

Tablica 3.3: Historyczna perspektywa technologu mikroprocesorowej

Rozwój technologii mikroprocesorowej przedstawiony został w Tablicy 3.3. Widać wzrost liczby tranzystorów, częstotliwości pracy i rozwój technologii półprzewodnikowej, ujawniający się wzrostem liczby warstw stosowanych podczas produkcji. Zaobserwować można również dwie tendencje zwiększania wydajności - przez wzrost częstotliwości pracy i rozbudowę architektury.

Wnioski szczegółowe. Wnioski oparto na analizie Rys. 3.7 i 3.8, przedstawiających typowe publikowane dane. W przypadku konkretnej konfiguracji mogą one być odmienne [100]. Symbolem (*) oznaczono wartości szacunkowe.

• Najbardziej zaawansowane technologicznie procesory wykazują porównywalną wydajność. Stanowią one klasę o około dwukrotnie większej wydajności od swoich poprzedników.

Rysunek 3.7: Wyniki testu SPECint95

• Najnowsze modele procesorów posiadają dużą wydajność zarówno dla obliczeń stało- jak i zmiennoprzecinkowych. Dobrze nadają się do zastosowań komercyjnych, jak i obliczeń naukowo-technicznych.

• Producenci stosują dwie metody zwiększania wydajności obliczeń: poprzez zwiększenie częstotliwości pracy lub/i stosowanie bardziej zaawansowanych rozwiązań architektury procesora. Z technicznego punktu widzenia korzystne jest jednoczesne stosowanie obu metod.

• Zwraca uwagę bardzo dobra pozycja procesorów Intel (o architekturze IA-32), zwłaszcza w zastosowaniach o dominującym przetwarzaniu stałoprzecinkowym (przetwarzanie transakcyjne). Ich wydajność jest większa, niż wielu innych procesorów.

Warto w tym miejscu przypomnieć, że przedstawione wyniki dotyczą tylko jednej wybranej miary wydajności. W praktycznych zastosowaniach wydajności komputerów implementujących powyższe procesory mogą charakteryzować się odmiennymi relacjami.

3.9. Porównanie współczesnych procesorów 77

Rysunek 3.8: Wyniki testu SPECfp95

3.9.1 Wnioski Obecny etap rozwoju procesorów, będących rozwinięciem klasycznej architektury typu von Neumanna, cechuje się elementami:

• Szerokie rozpowszechnienie technologii R.ISC, w której większość instrukcji podstawowych może być zrealizowana w jednym cyklu zegara. Są to rozwiązania ogólnie bardziej wydajne oraz łatwiejsze do programowania systemowego i użytkowego niż typu CISC.

• Przetwarzanie superskalarne jest podstawową własnością współczesnej implementacji technologii RISC. Polega ono na realizacji więcej niż jednej instrukcji w cyklu, co uzyskuje się przez zwielokrotnienie jednostek funkcjonalnych (mnożących i dodających).

• Przetwarzanie potokowe jest stowarzyszone z przetwarzaniem super-skalarnym, co polega na połączeniu odpowiednich jednostek funkcjonalnych ze sobą, w wyniku czego uzyskuje się eliminacje nadmiernych odwołań do pamięci operacyjnej.

• Realizacja obliczeń w trybie out-of-order i predykcja wykonania instrukcji warunkowych oraz wczesnego ładowania danych umożliwiają

optymalizację programu w trakcie wykonania, z zyskiem dla wydajności. W przypadku błędnej predykcji konieczne jest powtórne wykonanie instrukcji warunkowej lub ponowne ładowanie danych, co powoduje dużą stratę wydajności.

• Wykorzystanie pamięci podręcznej, do której dostęp jest znacznie szybszy niż do pamięci operacyjnej, podnosi efektywność obliczeń, lecz wymaga starannej optymalizacji aplikacji.

• Powszechne przekonanie o bliskim wysyceniu się możliwości dalszego rozwoju technologii typu RISC i konieczności istotnych zmian w koncepcji technologii procesora.

3.10 Tendencje rozwojowe procesorów

3.10.1 Rozwój procesorów w najbliższych latach W najbliższych latach spodziewane są pewne zmiany na rynku procesorów, w szczególności:

• Rozpowszechnienie się technologii innej niż RISC, ze szczególnie znaczącym udziałem technologii EPIC. Wynika to z bardzo dużych możliwości firmy Intel, jako producenta procesorów (zaplecza naukowo-badawczego oraz możliwości produkcji w bardzo dużym wolumenie, a więc w niskiej cenie).

• Rozwój metod kompilacji dla potrzeb technologii EPIC. Umożliwi to wykorzystanie w pełni nowej technologii EPIC, poprzez utworzenie kodu wykorzystującego zmiany kolejności obliczeń (ang. out-of-order) oraz obsługę instrukcji warunkowych już na etapie kompilacji, a nie podczas realizacji obliczeń. Trudności przy tworzeniu nowych metod kompilacji i śledzenia mogą spowodować opóźnienie w rozpowszechnieniu technologii EPIC.

• Technologia EPIC, w szczególności VLIW znajduje zastosowanie także u producentów innych niż Intel.

Przykładem są procesory Cruzoe (TM3120 i TM5400), pochodzące z firmy Transmata i eksperymentalnie wytwarzane przez zakłady IBM (w technologii półprzewodnikowej 0.22um i 0,18um, przewidywana częstotliwość pracy do 700 MHz), w których stosuje się sprzętową translację

3.10. Tendencje rozwojowe procesorów______ __ ________ 79

rozkazów IA-32 do rozkazów VLIW. Procesory znajdują się jeszcze na wstępnym etapie rozwoju. Innym przykładem są prace prowadzone przez grupę Borisa Babayana (Elbrus Int.), dotyczące procesorów E2k, o technologii EPIC [84]. Przy zastosowaniu technologii półprzewodnikowej O.l8um i przewidywanej częstotliwości 1.2 GHz, estymowana wydajność wynosi SPECint95 = 135 i SPECfp95 = 350. Wydzielana moc osiąga 35 W. Dla 0.1um szacuje się częstotliwość i wydajność odpowiednio na 2.2 GHz, SPECint95 -= 410 i SPECfp95 = 960.

• Optymalizacja procesorów pod kątem dwóch typów systemów operacyjnych (Unix i WindowsNT) oraz integracja tych środowisk.

• Dalszy rozwój technologii miedzianej oraz wprowadzenie technologii Silicon on Insulate.

3.10.2 Nowe projekty procesorów Na podstawie Tablicy 3.3 stwierdzić można, że dominujące obecnie na rynku procesory budowane są w technologii CMOS (0.28-0.18 um), zawierają 10-100 mln tranzystorów i pracują z częstotliwością 500+ MHz. W pierwszej dekadzie następnego wieku spodziewany jest rozwój polegający na wzroście liczby tranzystorów procesora do wielkości rzędu 1500 min, zastosowaniu technologii 0.05um i częstotliwości pracy do 10 GHz. Rozpraszana energia wynosić będzie rzędu 200W. W projektach nowych procesorów bierze się po uwagę [68, 69]:

• częstotliwość pracy,

• liczbę instrukcji wykonywanej w jednym cyklu,

• liczbę instrukcji wymaganej dla wykonania zadania.

Obecnie produkowane procesory są zdolne wykonać do 6 instrukcji stało-i zmiennoprzecinkowych w cyklu (wyjątkiem jest technologia EPIC). Nowe projekty przewidują wykonanie 8-32 instrukcji w cyklu, za sprawą implementacji drobno- i gruboziarnistej równoległości (por. Rozdział 4) w pojedynczym procesorze [67, 69]. Wyróżnia się dwa podejścia:

• mikroprocesor wieloprocesorowy (ang. Chip Multiprocessor, CMP),

• superskalarny wielowątkowy mikroprocesor (ang. Simultaneous Multi-threaded Processor, SMT).

80___________________ Rozdział 3. Tendencje rozwojowe procesorów

CMP integruje dwa lub więcej kompletnych procesorów w jednym układzie scalonym. W konsekwencji każdy procesor jest w całości powielony i używany niezależnie od innych. W odróżnieniu od poprzedniego, w SMT dokonuje się przeplotu wykonania instrukcji z różnych wątków w kilku jednostkach potokowych. Użycie kilku jednostek potokowych zamiast jednej zapewnia uzyskanie superskalarności przetwarzania. W projektach przewiduje się, że model programowania tych wieloprocesorowych mikroprocesorów będzie zbliżony do modeli używanych obecnie w komputerach wieloprocesorowych [69]. W przypadku CMP rozważa się przetwarzanie symetryczne typu SMP lub z pamięcią wirtualnie wspólną DSM (por. Rozdział 4.3.2). Dla SMT uważa się, że odpowiednim modelem jest przetwarzanie wątków w trybie SPMD.

Intensywne prace symulacyjne w zakresie mikroprocesorów CMP i SMT prowadzone są w kilku ośrodkach na świecie. Na przykład w University of Washington pracuje się nad technologią SMT we współpracy z firmą Compaq [68]. Rezultatem tych prac mają być kolejne procesory Alpha 21x64. Podkreślić należy jednak, że prace nad SMT i CMP znajdują się jeszcze na stosunkowo wczesnym etapie i brak jest zgodności projektantów co do ostatecznej postaci architektury [69].

3.11 Podsumowanie • Rozwój procesorów następuje bardzo szybko, jest on spowodowany dużym

zapotrzebowaniem za strony zastosowań komercyjnych i naukowych na możliwość realizacji coraz większych aplikacji po umiarkowanym koszcie.

• Dla utrzymania się przez producenta na rynku konieczne jest unowocześnianie linii produktów, z czym wiążą się bardzo znaczne nakłady finansowe przeznaczone na badania. Tylko nieliczne duże firmy (na przykład IBM, HP i Intel) mogą pozwolić sobie na poniesienie pełnego obciążenia. Obserwuje się zanik niektórych firm, uważanych do niedawna za potentatów lub ich integrację z innymi (np. DEC stał się częścią firmy Compaq). Dlatego tak ważna jest współpraca między poszczególnymi producentami, której przykładem jest projekt procesora Itanium opracowany wspólnie przez Intel i HP.

• Godny uwagi jest wybór takiego producenta procesorów (i w konsekwencji komputerów), którego wytwory są szeroko akceptowanym standardem, zwłaszcza w(odniesieniu do aplikacji komercyjnych. Do takich

3.11. Podsumowanie 81

należą niewątpliwie producenci: IBM i HP, a od niedawna także SUN i Intel.

• W dalszej przyszłości spodziewać się można mikroprocesorów o wielu jednostkach przetwarzających, których architektura zbliżona będzie do architektury obecnych komputerów o wielu procesorach (por. Rozdział 4).

Rozdział 4

Komputery systemów otwartych i modele programowania

W rozdziale przedstawiono w zwartej formie cechy charakterystyczne współ-czesnych komputerów, ze szczególnym uwzględnieniem architektur wielokom-puterowych i wieloprocesorowych. Ukazano modele obliczeń równoległych oraz klasyfikacje architektur komputerowych. Niektóre aspekty rozwinięto dalej w Rozdziale 5.4. Szczególną uwagę poświęcono systemom otwartym, pracującym pod kontrolą systemu operacyjnego typu Unix.

Przez otwartość systemu rozumie się jego przygotowanie do komunikacji z dowolnym innym systemem otwartym za pomocą standardowych protokołów (reguł), rządzących treścią, formą i znaczeniem komunikatów. Podstawowy standard jest opracowany przez Biuro Międzynarodowych Standardów (ang. Intetnational Standards Organization, ISO) w postaci modelu wzorcowych połączeń w systemach otwartych (ang. Open Systems Interconnection Reference Model, OSI, patrz np. [14, 76]). W praktyce bardziej popularne są protokoły Internetu TCP/IP (np. [62]), do których sukcesu istotnie przyczyniło się opracowanie systemu operacyjnego Unix (na Uniwersytecie w Berkeley w latach 80-tych), implementującego te protokoły oraz jego ogromne rozpowszechnienie.

W Rozdziale ukazano także metody oceny wydajności obliczeń równoległych (zwłaszcza naukowo-technicznych), służące określeniu jakości algorytmu i jego równoległej implementacji. Mogą być one stosowane także do porównań różnych typów architektur komputerowych.

83

84 Rozdział 4. Komputery systemów otwartych i modele programowania

4.1 Wstęp

Stały rozwój architektur komputerowych wynika z potrzeby wykonywania coraz bardziej złożonych obliczeń w coraz krótszym czasie. metaprzetwarzanie (Rys. 4.1), jedno z najbardziej interesujących podejść w dziedzinie współczesnych obliczeń o dużej skali złożoności, traktuje się jako narzędzie informatyki zapewniające użytkownikowi przeźroczysty dostęp do różnorodnych usług komputerowych, do których należą między innymi:

• duża moc obliczeniowa,

• usługi graficzne, multimedialne i wizualizacji naukowej,

• usługi archiwizacji bardzo dużych zbiorów (z uwzględnieniem systemów hierarchicznego zarządzania zasobami).

Metaprzetwarzanie w istotny sposób opiera się na sieciach komputerowych o wysokiej przepustowości. Coraz częściej są to sieci rozległe.

Rysunek 4.1: Zasada metaprzetwarzania

Metaprzetwarzanie i zastosowanie metakomputera sieciowego wspomaga użytkownika w realizacji zagadnień obliczeniowych o najwyższym stopniu złożoności, wchodzących w zakres problematyki tzw. Wielkich Wyzwań Nauki (ang. Grand Challeuges) [78]. Problematyka określona tym mianem przez Kenneta Wilsona w 1987 roku, dotyczy zagadnień żywotnie istotnych dla przetrwania gatunku ludzkiego, na przykład komputerowe wspomaganie projektowania lekarstw, prognozowanie zjawisk pogodowych, symulacja powstawania i rozchodzenia się zanieczyszczeń w atmosferze, poszukiwanie złóż surowców naturalnych, badania podstawowe w zakresie fizyki, chemii, biologu

4.1. Wstęp_________________________________8S

molekularnej, badanie zjawisk przepływowych i badania wytrzymałościowe, oraz wiele innych, np. [55, 116]. Infrastruktura informatyczna problematyki Wielkich Wyzwań dotyczy architektur komputerowych, algorytmów i aplikacji równoległych operujących na wielkich zbiorach danych, przy spełnieniu głównego celu, jakim jest wydajność przetwarzania oraz elastyczność oprogramowania [61].

Burzliwy wzrost zapotrzebowania na usługi sieciowe (np. hurtownie danych) oraz coraz szersze stosowanie środków i narzędzi informatyki we wspomaganiu zarządzaniem przedsiębiorstwami lub instytucjami o strukturze ogólnoświatowej (z oddziałami rozproszonymi geogranicznie) oraz wzrost popularności aplikacji typu DSS i business intelligence (por. Rozdział 2.11.2), także wymaga rozwoju w zakresie usług każdego typu (przedstawionych na Rys. 4.1).

Wydaje się, że komputery sekwencyjne wykorzystujące klasyczną architekturę typu von Neumanna (wraz z rozszerzeniami) zbliżają się do kresu swojego rozwoju, dlatego nie jest możliwe ich zastosowanie w problematyce wymagającej dużych mocy obliczeniowych oraz efektywnych układów wejścia/wyjścia. Pewne nadzieje na wzrost wydajności komputera z pojedynczym procesorem można wiązać z nowymi projektami procesorów (typu CMP i SMT, por. Rozdział 3.10.2), obecnie jednak występują istotne ograniczenia:

• wydajności obliczeniowej procesora,

• przepustowości procesor-pamięć operacyjna,

• przepustowości podsystemu wejścia/wyjścia i dostępu do informacji re-zydującej w pamięci zewnętrznej komputera.

Typowe przykłady współczesnych komputerów pracujących pod nadzorem systemu operacyjnego typu Unix to produkty firm SGI (z procesorami MIPS Rlx000), IBM (wykorzystujące POWERxxx), Hewlett-Packard (z PA8xOO), SUN (z procesorami Ultra x), Compaq (wykorzystujący Alpha 21x64). Wymienione powyżej procesory stosowane są również we współczesnych komputerach o wielu procesorach. Należy podkreślić stały wzrost popularności komputerów z procesorami Intel i systemem operacyjnym Linux, dla którego konkurencję stanowią systemy WindowsNT lub Windows2000, chętnie używane w mniej wymagających zastosowaniach.

Ze względu na ograniczenie wydajności komputerów z pojedynczym pro-cesorem, wzrost wydajności przetwarzania możliwy jest z użyciem architektury komputerowej o większej liczbie procesorów. Efektywne jej wykorzystanie wymaga wzięcia pod uwagę kilku elementów:

86_____Rozdział 4. Komputery systemów otwartych i modele programowania

• wyznaczenie w problemie obliczeniowym fragmentów słabo związanych z innymi oraz występującej lokalności danych, celem określenia możliwości realizacji obliczeń równoległych,

• wybór modelu programowania równoległego,

• dobór typu architektury komputerowej do problemu,

• wybór algorytmu obliczeniowego i jego efektywna implementacja pro-gramowa,

• dobór narzędzi programowych.

W zakresie zastosowań typu komercyjnego do wspomagania zarządzania przedsiębiorstwem o rozproszonych oddziałach, istotnego znaczenia nabiera projekt aplikacji wykorzystującej rozproszone systemy baz danych, metody poufności danych i ich ochrony przed niepowołanym dostępem, a także wysoka dostępność usług informatycznych.

4.2 Modele obliczeń równoległych W większości systemów o wielu procesorach możliwe jest użycie jednego z dwóch klasycznych modeli (paradygmatów) obliczeniowych:

• model z wymianą wiadomości (ang. message-passing paradigm, explicit parallel programming), wykorzystujący jedno z popularnych środowisk obliczeń numerycznych, np. Parallel Virtual Machine (PVM) (por. [27]), Message Passing Interface (MPI) (np. [89]),

• model z równoległością danych (ang. data-parallel programming, implicit parallel programming lub data parallelism), posługujący się językiem programowania wysokiego poziomu. Większość współczesnych kompilatorów wyposażona jest w możliwości obliczeń w tym modelu. Przykładem współczesnego języka programowania jest High Performance Fortran (HPF) [107], używany w obliczeniach naukowo-technicznych. Do języków zyskujących na znaczeniu należą również pFortran i pC [l] oraz częściowo środowisko OpenMP [124J.

Programowanie z równoległością danych udostępnia programiście konstrukcje wysokiego poziomu, używane w definicji struktur danych, w dostępie

4.3. Klasyfikacja architektur komputerowych___________________87

do informacji i zarządzaniu współbieżnością procesów. Program jest łatwiejszy w uruchomieniu i modyfikacjach. Obecnie jednak nadal większą efektywność obliczeń równoległych uzyskuje się korzystając z modelu wymiany wiadomości.

Popularnym modelem programowania wykorzystywanym na współczesnych komputerach równoległych jest model wspólnego (pojedynczego) programu, lecz operującego na różnych danych w poszczególnych węzłach obliczeniowych (ang. Single-Program Multiple-Data, SPMD). Model SPMD może być rozumiany jako model pośredni między dwoma wymienionymi powyżej. W odniesieniu do modelu z równoległością danych charakteryzuje się osłabieniem wymagania ścisłej synchronizacji instrukcji; może być traktowany jako odmiana modelu z wymianą wiadomości, gdyż praktycznie jest często implementowany w postaci struktury nadzorca-robotnicy (ang. master-workers).

W przypadku nielicznych problemów zastosowanie znajduje model z rów-noległością instrukcji (ang. control parallelism), w którym różne instrukcje odnoszą się do tych samych danych. Typowym przykładem jest przetwarzanie potokowe realizowane z udziałem wielu procesorów, z których każdy wykonuje różne operacje (instrukcje) na tych samych danych.

Ze względu na największą praktyczną przydatność modeli z wymiana wia-domości, jak również z równoległością na poziomie danych, a także z uwagi na rozbudowaną w zakresie warstwy sieciowej architekturę współczesnych komputerów — coraz częściej dla dużych problemów stosuje się model hete-rogeniczny, łączący cechy obu wymienionych powyżej modeli. Jest on przydatny także w odniesieniu do klastrów składających się z maszyn kilkuprocesorowych (por. Rozdział 4.3.2).

4.3 Klasyfikacja architektur komputerowych Komputery można podzielić na sterowane instrukcjami i sterowane danymi (por. Rys. 4.2). Mimo, że w ostatnich latach dokonał się znaczący postęp w zakresie architektur sterowanych przepływem danych (np. [34]), typ ten nie jest jeszcze wystarczająco popularny w praktyce obliczeniowej. W bieżącej pracy ograniczono się wyłącznie do architektur sterowanych instrukcjami.

Istnieje wiele sposobów podziału wynikających z różnic w złożonej archi-tekturze układów o wielu procesorach. Klasyfikacja wykonana może być pod względem:

• mechanizmu sterowania,

88 Rozdział 4. Komputery systemów otwartych i modele programowania

Rysunek 4.2: Klasyfikacja komputerów

• organizacji przestrzeni adresowej,

• granulacji procesów,

• warstwy komunikacyjnej.

Wymienione zasady taksonomii systemów komputerowych odgrywały i dalej odgrywają dużą rolę w rozwoju, badaniu i tworzeniu systemów równoległych o dużej i bardzo dużej mocy obliczeniowej. Architektury równolegle lub/i rozproszone (klastry) są coraz częściej stosowane także w zastosowaniach komercyjnych — przetwarzaniu transakcyjnym i programach wspomagania decyzji typu DSS — zwłaszcza w odniesieniu do systemów wysokiej dostępności.

4.3.1 Mechanizm sterowania

Mechanizm sterowania omówiony jest w oparciu o klasyfikację Flynna [22], zgodnie z którą występują cztery podstawowe klasy maszyn:

• SISD (ang. Single Instruction Stream/Single Data Stream),

• SIMD (ang. Single Instruction Stream/Multiple Data Stream),

4.3. Klasyfikacja architektur komputerowych___________________89

• MIMD (ang. Muitiple Instruction Stream/Muitipie Data Stream),

• MISD (ang. Muitiple Instruction Stream/Single Data, Stream).

Klasyczna architektura sekwencyjna zaliczona jest do klasy SISD, gdyż kolejne instrukcje pojedynczego ich strumienia operują na pojedynczym strumieniu danych.

Jednymi z pierwszych komputerów równoległych o dużej liczbie procesorów były maszyny wykorzystujące model przetwarzania SIMD, posiadające jeden układ sterowania, wspólny dla wszystkich procesorów (i jeden system operacyjny), w wyniku czego procesory przetwarzają równolegle tę samą instrukcję dla różnych danych. Kolejne instrukcje tworzą więc pojedynczy strumień instrukcji. Przykładami rozwiązań komercyjnych są komputery: ICL DAP, DEC MPP, TMC CM2/CM200, MasPar MP-1/2. Obecnie ta klasa komputerów wieloprocesorowych straciła znaczenie praktyczne.

Ponieważ w komputerach typu SIMD występuje tylko jedna jednostka sterująca, wyposażenie sprzętowe jest ubogie; są one szczególnie odpowiednie do obliczeń równoległych z wykorzystaniem modelu równoległości danych, z wymaganiami częstej synchronizacji. Liczba specjalizowanych procesorów sięga tysięcy; główną wadą tego rozwiązania jest brak możliwości realizacji różnych instrukcji równolegle. Ekonomiczna przeszkodą w jej rozwoju jest także stosowanie specjalizowanych procesorów.

Największym zainteresowaniem cieszy się klasa komputerów MIMD. Komputery tej klasy wyposażone są w oddzielne jednostki sterujące każdego z elementów przetwarzających, co umożliwia realizację instrukcji pochodzących z różnych strumieni instrukcji dla różnych strumieni danych w tym samym czasie. Przykładami rozwiązań tego typu są: SGI POWER Challenge, SGI Origin 2000, IBM RS6000 SP, TMC CM5, HP V2500, Cray T3D/E, Intel Paragon XP/S.

Procesory komputera MIMD są bardziej złożone w porównaniu z poprzednim typem architektury. Są to zazwyczaj procesory ogólnego przeznaczenia, typu RISC, binarnie zgodne z procesorami stacji roboczych, co ułatwia przenoszenie programów. Ich liczba jest rzędu 102 — 103. Największe maszyny budowane w ramach projektu ASCI [121] posiadają 104 procesorów. Niektóre rozwiązania posiadają sprzętowe wspomaganie operacji globalnych (np. redukcji), co umożliwia ich efektywne wykorzystanie w obu modelach programowania — z wymianą wiadomości oraz z równoległością danych.

Klasa MISD w zasadzie nie występuje samodzielnie. Pewnym jej odpo-wiednikiem jest przetwarzanie potokowe, w którym poszczególne instrukcje cząstkowe odnoszą się do tych samych danych.

90 Rozdział 4. Komputery systemów otwartych i modele programowania

Kolejnym typem architektury są systemy sieciowe, czyli układy kilku lub więcej maszyn połączonych siecią. Funkcjonalnie są one zbliżone do klasy MIMD, jednak ze względu na znacznie szerszy zakres zastosowań, zróżnicowanie warstwy komunikacyjnej oraz stosowane paradygmaty obliczeniowe, najczęściej klasyfikowane są oddzielnie (więcej informacji zawierają Rozdziały 5.2.3 i 5.3). Dominującym modelem stosowanym w obliczeniach jest model z wymianą komunikatów, implementowany z pomocą środowisk programowania rozproszonego (np. PVM lub MPI). W typowych zastosowaniach sieciowych (np. w zakresie serwerów WWW) częstym jest podejście obiektowe; jednym z przykładów jest architektura i specyfikacja CORBA (ang. Common Object Request Brokcer Architecture) [106].

Komputery wektorowe (pierwszy komputer Cray-1, 1976), zwyczajowo zaliczane są do klasy SIMD. Ze względu na stabilną pozycję algorytmów i systemów oprogramowania, komputery te traktowane są już jako klasyczne systemy dużej mocy obliczeniowej (np. (34]). Zawierają kilkanaście (lub więcej) procesorów wektorowych, tworząc maszynę wektorowo-równoległą, szczególnie odpowiednią do obliczeń naukowo-technicznych. Ze względów ekonomicznych, a także wydajnościowych, typowe komputery wektorowe tracą na znaczeniu. Istnieją jednak opinie, iż rozbudowane procesory wektorowe będzie można w przyszłości wykorzystać jako węzły obliczeniowe wieloprocesorowego komputera [48], tworząc architekturę Parallel Vector Processors -PVP, w której korzystnie będzie się przedstawiał stosunek narzutu komunikacyjnego do obliczeń.

4.3.2 Organizacja przestrzeni adresowej Organizacja przestrzeni adresowej jest kolejnym elementem różnicującym współczesne architektury. Wymienia się dwa jej typy (Rys. 4.2).

Pamięć wspólna. Pamięć wspólna1 posługuje się wspomaganiem sprzętowym dla zapewnienia operacji zapisu i odczytu informacji, dostępnej dla wszystkich procesorów systemu. Jest to organizacja typowa dla konstrukcji o stosunkowo niewielkiej liczbie procesorów, występująca w maszynach wektorowych (np. Cray T90, NEC SXx) oraz komputerach z niewielką liczbą procesorów typu RISC. Elementem niekorzystnym tego typu dostępu do pamięci operacyjnej jest ograniczona i słabo skalowalna z liczbą procesorów przepustowość warstwy

1 Dalej, dla wygody wypowiedzi, używane będą zamiennie terminy "pamięć wspólna" i "pamięć dzielona" (ang. shared memory).

4.3. Klasyfikacja architektur komputerowych 91

sieciowej. Warstwa sieciowa implementuje najczęściej magistralę, a w bardziej zaawansowanych konstrukcjach — przełącznicę krzyżową.

Zaletami tej architektury są łatwość rozbudowy o dodatkowe jednostki funkcjonalne (w przypadku magistrali systemowej) oraz prostota programowania. Ponieważ koszt dostępu do pamięci jest stały i nie zależy od procesora, maszyny te nazywa się maszynami o jednolitym dostępie do pamięci (ang. uniform memory access - UMA). Oprócz pamięci operacyjnej wspólne są również kanały wejścia/wyjścia, stąd potocznie nazywa się tego typu architekturę —architekturą z zasobami dzielonymi (ang. shared-everything architecture).

Rolą systemu operacyjnego jest zapewnienie możliwie jednakowego obciążenia każdego z procesorów; realizowane to jest poprzez wielowątkowość systemu typu Unix. Taki model przetwarzania nosi nazwę symetrycznego wieloprzetwarzania (ang. symmetrical multiprocessing - SMP). Innym stosowanym modelem jest model z równoległością na poziomie danych (por. Rozdział 4.2).

Wszyscy znaczący producenci systemów komputerowych produkują maszyny typu SMP. Przykładem na rynku zastosowań naukowo-technicznych jest maszyna SGI Power Challenge mogąca posiadać do 36 procesorów MIPS R10000. Innymi przykładami są: komputer HP V2500 (z pojedynczym węzłem o wielu procesorach) wyposażony w 32 procesory PA-8500 i SUŃ E10000 (z 64 procesorami UltraSPARC II).

Pamięć rozproszona. Architektura o rozproszonej pamięci operacyjnej jest charakterystyczna dla komputerów o dużej i wielkiej liczbie procesorów. Dla maszyn typu MIMD procesor (lub grupa procesorów) posiada pamięć lokalną, która jest trudniejsza do wykorzystania w konkretnych aplikacjach. Wyróżnić tutaj można podgrupy:

• klasyczna architektura wymiany wiadomości, o procesorach "luźno" związanych ze sobą (architektura wielomaszynowa lub wielokompute-rowa), w której system operacyjny jest oddzielny na każdym procesorze, stąd nazwa (ang. shared-nothing architecture). Najkorzystniejszy sposób programowania to stosowanie środowisk programowych wymiany wiadomości (Rozdział 4.2). Ze względu na prostotę architektury i modelu programowania możliwe jest stosowanie wielu procesorów, stąd maszyny te zwane są masywnie równoległymi (ang. Massively Paral-lel Processors - MPP). Do klasy tej można również zaliczyć klastry komputerów. Przykładem są: IBM RS6000 SP i Intel Paragon XP/S.

• architektura z pamięcią fizycznie rozproszoną, wirtualnie wspólną, posiadająca dodatkowe jednostki funkcjonalne i oprogramowanie (np.

92 Rozdział 4. Komputery systemów otwartych i modele programowania

(58, 76]) emulujące pamięć wspólną, stąd pochodzi nazwa DSM (ang. Distributed Shared Memory). Dla efektywnego przetwarzania w modelu równoległości danych (używanym tutaj konkurencyjnie w stosunku do modelu wymiany wiadomości) stosuje się protokoły uzgadniania zawartości pamięci podręcznej wszystkich lub części procesorów (ang. cache coherency - cc). Ponieważ dostęp do informacji zawartej w pamięci operacyjnej zależny jest od jej umieszczenia w pamięci — lokalnej lub odległej dla konkretnego procesora — dlatego konstrukcje te zwane są maszynami o niejednolitym dostępie do pamięci (ang. nununiform memory access, cc-NUMA). Maszyna pracuje pod nadzorem jednego, wielowątkowego systemu operacyjnego; jej procesory są "ściśle" ze sobą związane, stąd często używana nazwa — wieloprocesor. Przykładami są: HP V2500SCA, Cray T3D/E, SGI Origin 2000. Oprócz koncepcji cc-NUMA istnieją także inne projekty. Interesującą propozycję stanowiła architektura sCOMA (ang. simple Cache Only Memory Architecture), intensywnie rozwijana przez IBM [92]. Prekursorem wykorzystania tej architektury była firma Kendall Square Research. Zalety architektury sCOMA zbliżone są do cc-NUMA - w szczególności oferowana jest pamięć wspólna, Z przeprowadzonych badań przez IBM wynika jednak, że architektura cc-NUMA posiada lepsze własności. W przypadku architektury DSM możliwe jest efektywne użycie obu modeli obliczeniowych, zarówno z wymiana wiadomości, jak również z równoległością na poziomie danych (Rozdział 4.2).

Wśród architektur z pamięcią rozproszoną bogatą klasę stanowią systemy sieciowe. Rozróżnia się umownie dwie grupy: systemy rozproszone (zazwyczaj zawierające różne maszyny) i klastry (najczęściej stosujące maszyny jednego typu). Węzły systemów rozproszonych mogą być używane przez wielu użytkowników jednocześnie, np. lokalnie lub przez sieć. Ich gŊównym, bardzo bogatym zakresem zastosowań jest realizacja usług sieciowych. Klastry mają charakter dedykowany bardziej obliczeniom lub specjalizowanym usługom wysokiej dostępności.

W literaturze napotkać można kilka systematyk dotyczących architektur tego typu, wśród ważniejszych wymienić można:

• pod względem przeznaczenia — do obliczeń o wysokiej złożoności (obliczenia realizowane są w sposób

rozproszony na węzłach klastra),

4.3. Klasyfikacja architektur komputerowych___________________93

— klastry wysokiej dostępności, w których dokonywana jest automatyczna migracja procesów w przypadku awarii jednego z węzłów.

• pod względem sposobu użytkowania

— dedykowane (najczęściej homogeniczne), — sieciowe (heterogeniczne), w których komputer wirtualny tworzony jest

z wykorzystaniem komputerów używanych lokalnie przez innych użytkowników.

• pod względem dzielenia zasobów

— z dyskami dzielonymi, użytkowanymi wspólnie przez węzły klastra (stosowanymi najczęściej w klastrach wysokiej dostępności),

— z dyskami lokalnymi (w przypadku obliczeń rozproszonych), — z wieloprocesorowymi węzłami SMP z pamięcią dzieloną.

Klastry komputerów służące do obliczeń naukowo-technicznych traktowane są jako tania alternatywa dużego komputera równoległego. Ich popularność gwałtownie wzrasta od czasu pierwszej maszyny (nazwanej Beowulf, 1994) [99]. Warstwa komunikacyjna może być realizowana z pomocą standardowych protokołów (ATM, FastEthernet) lub rozwiązań dedykowanych (np. Myrinet), które cechuje duża przepustowość warstwy sieciowej oraz możliwość stosowania złożonych topologii.

Rozwijane jest specjalizowane oprogramowanie zarządzające o charakterze oprogramowania metakomputera (np. Globus i Legion [24, 28]). Prowadzone są badania nad zastosowaniem modelu z równoległością danych oraz procedur równoważenia obciążenia (migracji zadań), istotnych zwłaszcza w środowiskach o wielu użytkownikach. Dużą wagę przywiązuje się do klastrów złożonych z komputerów wieloprocesorowych typu SMP.

Klastry wysokiej niezawodności są rozwiązaniem szczególnie polecanym we wspomaganiu zarządzania przedsiębiorstwem lub usługach komercyjnych. Węzły obliczeniowe tej architektury nie służą obliczeniom rozproszonym, lecz raczej jako elementy redundantne, na które przenoszona jest automatycznie aplikacja z węzła ulegającego awarii.

Tematyka ta jest rozwinięta w Rozdziałach 5.4 i 6.6.

4.3.3 Granulacja procesów Kolejnym kryterium podziału maszyn równoległych jest granulacja procesów, która rozumiana może być jako stosunek czasu przeznaczonego do wykonania

elementarnej operacji komunikacji do czasu realizacji elementarnej jednostki obliczeniowej [46].

Komputery drobnoziarniste to takie, w których granulacja jest duża, a synchronizacja między procesami częsta. Przypadek ten zachodzi dla maszyn SIMD i SMP. Drugą skrajnością są maszyny gruboziarniste, dla których najlepsze efekty uzyskuje się w przypadku podziału problemu na kilka dużych zadań, słabo od siebie zależnych i rzadko wymieniających informacje pomiędzy sobą. Wymienić tu można jako przykłady sieci komputerów (klastry) oraz kilku/kilkunastoprocesorowe maszyny wektorowe. Współczesne komputery typu MIMD definiują klasę pośrednią o średnim ziarnie - co wynika z rozbudowanej zazwyczaj warstwy komunikacyjnej oraz rozszerzeń systemu operacyjnego.

4.3.4 Teoretyczny model komputera równoległego Na podstawie wymienionych powyżej sposobów organizacji przestrzeni adresowej można określić teoretyczny model komputera z pamięcią wspólną, przy czym pamięć może być fizycznie lub wirtualnie wspólna. Na wstępie przedstawiono model komputera sekwencyjnego.

Model ze swobodnym dostępem do pamięci operacyjnej. Model ten został stworzony dla maszyn sekwencyjnych, czyli dla klasycznej architektury von Neumanna. Zachodzi w nim swobodny dostęp do pamięci operacyjnej (przypadkowy - Random Access Memory- RAM), przechowującej programy i dane. W dowolnym momencie czasu możliwa jest realizacja tylko jednej instrukcji, z zachowaniem ścisłej sekwencyjności przetwarzania.

Ten podstawowy model nie przystaje do współczesnych architektur, gdyż nie opisuje nawet cech współczesnych procesorów, takich jak superskalarność lub przetwarzanie w kolejności innej niż naturalna (por. Rozdział 3.2).

Model komputera równoległego. Model ten jest rozszerzeniem modelu RAM na architekturę wieloprocesorową z wspólną (fizycznie lub wirtualnie) pamięcią operacyjną o wspólnej przestrzeni adresowej dostępnej dla wszystkich procesorów, np. [46]. Nosi on nazwę równoległego, parallel RAM - PRAM. W modelu nie uwzględnia się kosztu synchronizacji dostępu do pamięci.

Model PRAM pociąga za sobą możliwość wystąpienie konfliktów w przy-padku, gdy kilka procesorów jednocześnie odwołuje się do tej samej komórki pamięci. Dlatego też ocena stopnia równoległości realizacji zapisu do pamięci

4.3. Klasyfikacja architektur komputerowych___________________95

i/lub odczytu z pamięci pozwala wyróżnić kilka klas systemów różniących się sposobem obsługi tych zdarzeń:

• model EREW (ang. exclusive-read, exclusive-write), w którym niedozwolone są współbieżne zdarzenia odczytu lub zapisu informacji z/do określonej komórki pamięci,

• model CREW (ang. concurrent-read, exclusive-write), w którym dozwolone są współbieżne operacje odczytu z komórki pamięci przez wiele procesorów przy dopuszczeniu możliwości zapisu przez pojedynczy procesor,

• model ERCW (ang. exclusive-read, concurreat-write), w którym procesory posiadają prawo do współbieżnego wykonywanie operacji zapisu przy dopuszczeniu możliwości odczytu przez jeden procesor,

• model CRCW (ang. concurrect-read, concurrent-write), w którym do-puszczalne są współbieżne operacje zapisu i odczytu.

Projektowanie układów wieloprocesorowych z pamięcią fizycznie lub wir-tualnie wspólną jest nadal przedmiotem studiów w zakresie poprawnej i wydajnej pracy podsystemów pamięci. W tym celu stosuje się różne protokoły, definiujące metody arbitrażu w odniesieniu do współbieżnych operacji zapisu (np. [46, 54, 76]). Dla pamięci wirtualnie wspólnej implementuje się jeden z modeli spójności zawartości pamięci operacyjnej, dopuszczający zazwyczaj istnienie wielu kopii strony pamięci operacyjnej w systemie.

Protokoły spójności implementowane są także w odniesieniu do pamięci podręcznej procesorów.

4.3.5 Warstwa komunikacyjna

W komputerach równoległych występuje duża różnorodność architektury warstwy komunikacyjnej; warstwa ta może być zaprojektowana dla realizacji połączeń statycznych lub dynamicznych.

Statyczne sieci połączeń. Połączenia między elementami przetwarzającymi mają charakter pasywny i nie są rekonfigurowalne. Najczęściej stosowane są one w architekturach typu SIMD. W przypadku sieci statycznych rozróżnia się następujące typy połączeń:

• połączenia wyczerpujące - w których każdy procesor posiada bezpośrednie połączenie ze wszystkimi innymi, w wyniku czego osiąga się

96 Rozdział 4. Komputery systemów otwartych i modele programowania

idealną, nieblokującą komunikację pomiędzy każdą parą procesorów. Możliwa jest również nieblokującą operacja rozsyłania do wszystkich odbiorców (ang. broadcast).

• gwiazda - w których jeden z procesorów jest węzłem centralnym, biorącym udział w każdym procesie transmisji i stanowiącym ograniczenie przepustowości.

• szereg lub pierścień procesorów, często stosowany w przypadku trans-puterów, używany, m.in., przy realizacji algorytmów systolicznych.

(C)

Rysunek 4.3: Przykłady statycznych sieci połączeń: (a) krata, (b) grube drzewo i (c) sześcian 4-wymiarowy

krata procesorów (2- lub 3-wymiarowa), w której każdy z procesorów posiada bezpośrednie połączenie z czterema lub sześcioma sąsiadami (Rys. 4.3a). Rozszerzenia tej architektury połączeń to siatka lub torus z warunkami periodycznymi na skraju układu. Przykładowe rozwiązania komercyjne stanowią Intel Paragon XP/S i Cray T3E/3D oraz układy wielotransputerowe.

4.3. Klasyfikacja, architektur komputerowych 97

• drzewiasta struktura połączeń, w której występuje jedynie pojedynczy kanał komunikacji między procesorami. Przy dużej liczbie procesorów jest to element ograniczający przepustowość; pewnym rozwiązaniem tego problemu jest zwiększenie przepustowości w pobliżu korzenia drzewa - efektem jest struktura "grubego" drzewa (ang. fat tree) - por. Rys. 4.3b - stosowana w maszynach TMC CM5 i Meiko CS-2, obecnie nie produkowanych.

• (hiper-) sześcienna struktura połączeń, formułuje ogólny ich schemat, na który może być odwzorowana większość innych topologii. Dla A—wymiarowego sześcianu (zawierającego p = 2* procesorów), najdłuższa ścieżka połączeń dwóch węzłów ograniczona jest do k kroków i wzrasta logarytmicznie z rozmiarem systemu. Rys. 4.3c przedstawia przykład dla k = 4; nie wszystkie połączenia pomiędzy sześcianami o wymiarze k = 3 zostały ukazane. Wadą jest zależność liczby połączeń, /, każdego z elementów przetwarzających od wymiaru hipersześcianu (l = k). Przykładem jest komputer iPSC/860 (nie produkowany) oraz współczesny SGI Origin2000, w którym hipersześcienna struktura połączeń jest jednym z elementów rozbudowanej warstwy komunikacyjnej.

Dynamiczne sieci połączeń. Dynamiczne sieci połączeń implementują jedną z trzech możliwości (patrz Tablica 4.1, [46]):

Realizacja warstwy komunikacyjnej Własność Magistrala Przełącznica

krzyżowaSieć wielostopniowa

Wydajność

Koszt

Niezawodność

Rekonfigurowalność

Rozbudowa

niska

niska

niska

wysoka

niska

wysoka

wysoka

wysoka

niska

wysoka

wysoka

średnia

wysoka

średnia

średnia

Tablica 4.1: Własności warstwy komunikacyjnej dla dynamicznych sieci połączeń

• Architektura magistralowa (ang. bus architecture) - rozwiązanie oszczędne cenowo, a jednocześnie proste w implementacji umożliwiającej rozbudowę zasobów komputera. Główną wadą jest możliwość wyczerpania pasma przepustowości przy dużej liczbie procesorów; możliwe jest stosowanie magistral redundantnych i pakietowych, z korzyścią dla

98 Rozdział 4. Komputery systemów otwartych i modele programowania

Rysunek 4.4: Dynamiczne sieci połączeń; (a) przełącznica krzyżowa, (b) sieć wielostopniowa

wydajności i niezawodności. Typowym przykładem są serwery usług sieciowych, serwery baz danych lub serwery obliczeniowe średniej mocy.

• Przełącznica krzyżowa, zwana także wybierakiem krzyżowym (ang. crossbar switch) jest rozwiązaniem najwydajniejszym, a jednocześnie najbardziej kosztownym (Rys. 4.4a). Połączenia są nieblokujące w tym sensie, że komunikacja między konkretnym procesorem, P i bankiem pamięci, M, odbywająca się z wykorzystaniem punktów przełączających na każdym skrzyżowaniu połączeń — nie wpływa na inne połączenia tego typu. Mimo dużej wydajności ograniczeniem jest nieliniowa złożoność zapo-trzebowania na punkty przełączające (o(k2)), gdzie k jest liczbą wejść i wyjść) oraz - wynikający z tego - wysoki koszt (Tablica 4.1). Zakresem zastosowań są wieloprocesorowe komputery wektorowe oraz niektóre rozwiązania wieloprocesorowych komputerów równoległych. Przykład stanowią komputery HP V2500 (o jednym węźle wieloprocesorowym) oraz SUN E10000.

• Sieci wielostopniowe (ang. multistage switching networks) stanowią roz-wiązanie leżące pomiędzy wyżej wymienionymi skrajnościami. Jednym z przykładów jest sieć typu Omega, która posiadając k wejść i wyjść (dla połączeń procesorów, P, z modułami pamięci, M, za pośrednictwem przełączników poczwórnych) składa się z log2 k stopni przełączających (Rys. 4.4b). Złożoność zapotrzebowania na przełączniki jest

4.4. Przykład architektury_____________________________99

o(k log2 k), mniejsza niż dla przełącznicy krzyżowej; pewne połączenia mogą jednak być blokowane. Mimo zalet, rozwiązanie to nie jest bardzo rozpowszechnione. Jednym z przykładów były maszyny serii BBN, nie produkowane obecnie oraz eksperymentalny komputer IBM RP3. Sieć wielostopniowa jest używana w maszynach wielokomputerowych IBM RS6000 SP,

• Warstwa komunikacyjna o organizacji hierarchicznej. Jej potrzeba wynika z konieczności budowy komputerów o bardzo dużej liczbie procesorów. W tym przypadku podstawowe rozwiązania wymienione powyżej (przełącznica krzyżowa, sieci wielostopniowe) są niewystarczające i najczęściej zbyt kosztowne. Węzły obliczeniowe tego typu architektury są węzłami o kilku/kilkudziesięciu procesorach, szczególnie przeznaczonymi do pracy w modelu SMP. Warstwa komunikacyjni węzła, implementując magistralę systemową lub przełącznicę krzyżową, charakteryzuje się dużą przepustowością i małymi opóźnieniami. Komunikacja pomiędzy węzłami odbywa się wolniej, z większymi opóźnieniami. Hierarchiczna struktura warstwy komunikacyjnej, której realizacją są najczęściej komputery typu (cc-)NUMA, jest najbardziej zaawansowana technologicznie - może realizować jednocześnie modele SMP (równoległości danych) i przesyłania wiadomości. Pozwala, w razie konieczności, na partycjonowanie zasobów komputera. Jest ona odpowiednia do stosowania nowoczesnych algorytmów oblicze-niowych i heterogenicznego modelu programowania równoległego (por. Rozdział 4.2) - modelu z równoległością danych dla węzła i modelu z wymianą wiadomości pomiędzy węzłami. Prekursorem takiej organizacji maszyny był prototyp Dash, opracowany w Uniwersytecie w Stanford [54, 76]. Obecnie kilka firm produkuje duże maszyny równoległe tego typu, na przykład HP V2500SCA i SGI Origin2000.

4.4 Przykład architektury Poniżej przedstawiony został przykład rozbudowanej architektury komputera wieloprocesorowego. Jest to produkt firmy Hewlett-Packard, model SPP1600/XA, zaprojektowany przez Convex Technology Center (Rys. 4.5). Stanowił on jeden z pierwszych oryginalnych projektów implementujących hierarchiczną sieć komunikacyjną.

Rysunek 4.5: Ogólna architektura komputera HP/Convex SPP1600/XA

W komputerze stosowane były procesory HP PA7200 (120 MHz) z pamięcią podręczną instrukcji i danych wynoszącą 1MB/1MB. Podstawowym modułem architektury jest tzw. superwęzeł (grono procesorów) o własnościach SMP (obecnie taki element zwany jest węzłem SMP), zbudowany z ośmiu procesorów oraz banków pamięci połączonych wzajemnie z pomocą przełącznicy krzyżowej o wymiarze 5x5. Węzły komunikują się ze sobą (z pomocą pierścieni CTI, implementujących protokół SCI (ang. Scalable Coherent Interface) w strukturze jednowymiarowego torusa; maksymalna liczba węzłów wynosi 16. Maszyna wyposażona jest w sprzętowe układy zapewniające spójność zawartości pamięci podręcznej i reprezentuje architekturę cc-NUMA.

Procesory wchodzące w skład systemu mogą tworzyć jedną lub kilka partycji. Są one traktowane niezależnie jako oddzielne systemy, z pełnymi możliwościami wieloprogramowości i wielodostępu. System operacyjny (SPP-UX) wykorzystuje standard OSF/1 (jądro Macha). Dwupoziomowa architektura komunikacyjna dostarcza możliwości korzystania z kilku wirtualnych klas pamięci operacyjnej o różnym czasie dostępu: ang. thread-private, node-private, near-shared, far-shared i block-shared.

ConvexPVM i ConvexMPI są optymalizowanymi wersjami środowisk PVM i MPI; kompilatory języków Fortran77 i C oferują model wirtualnie

4.5. Metody oceny wydajności obliczeń równoległych_____________101

wspólnej pamięci operacyjnej. Możliwe jest również zastosowanie standardu HPF. W następnym modelu (X-class) używane są procesory HP PA8000 oraz dwuwymiarowy torus połączeń korzystających z pierścieni CTI. W skład każdego superwęzła wchodzi 16 procesorów.

Modele SPPlx00 i X-class nie są obecnie już produkowane i zostały zastąpione przez bardziej zaawansowane technologicznie komputery V2x00, reprezentujące rozwinięcie poprzednich rozwiązań. Maszyny te, zwłaszcza seria SPPlx00, były faktycznymi, rynkowymi prekursorami wieloprocesorowej architektury o hierarchicznej organizacji pamięci operacyjnej.

4.5 Metody oceny wydajności obliczeń równoległych W Rozdziale 2 przedstawiono standardowe metody i programy służące do określenia wydajności systemów komputerowych, ze szczególnym uwzględnieniem przeznaczenia typu przemysłowego i komercyjnego. Tworząc program równoległy, zwłaszcza przeznaczony do obliczeń naukowo-technicznych, warto jest ocenić jakość algorytmu numerycznego, jego implementacji i realizacji. Takie podejście może służyć także do oceny przydatności architektury i środków programistycznych w realizacji obliczeń określonego typu.

Wydajność obliczeniowa algorytmu sekwencyjnego (przeznaczonego do re-alizacji na maszynie sekwencyjnej) jest zwykle oceniana na podstawie czasu wykonania programu, TS, zależnego od wielkości problemu obliczeniowego określonego przez dane wejściowe. Czas obliczeń algorytmu równoległego, Tp, zależy nie tylko od liczby procesorów maszyny równoległej, p, ale także od modelu programowania i rodzaju architektury. Obliczenia równolegle nie mogą być oceniane w separacji od stosowanej architektury (np. [46]).

W praktyce obliczeniowej równoległość stosuje się zasadniczo w dwóch celach: skrócenia czasu obliczeń (dzięki zaangażowaniu wielu procesorów) lub/i dla uzyskania większej pamięci operacyjnej (najczęściej związanej obecnie z procesorem lub jego bezpośrednim otoczeniem). Możliwe jest więc zaprojek-towanie obliczeń na dwa sposoby:

• ze stałym rozmiarem problemu, w którym wielkość problemu nie ulega zmianie ze wzrostem liczby użytych węzłów obliczeniowych, p, a czas obliczeń, Tp, ulega skróceniu,

• ze zmiennym rozmiarem problemu, wzrastającym wraz ze zwiększaniem liczby węzłów obliczeniowych najczęściej w sposób zachowujący stały czas obliczeń (Tp = const).

102 Rozdział 4. Komputery systemów otwartych i modele programowania

Komputer Rok 4[us] B [MB/s] CM5 Paragon IBM RS6000 SP

1992 1994 1994

95 30 35

8 175 40

Cray T3D (PVM) NOW 1994 1996

21 16 27 38

SGI PowerChallenge SUN E6000

1995 1996

10 11

64 160

Tablica 4.2: Czas inicjacji komunikatu dla środowiska wymiany wiadomości i asymptotyczna przepustowość warstwy komunikacyjnej

Czas bezczynności, ti, związany jest z brakiem danych do przetworzenia. Występuje to zwłaszcza w sytuacji niedostatecznego zrównoważenia obciążenia między procesorami, będącego wynikiem niedoskonałej dekompozycji.

4.5. Metody oceny wydajności obliczeń równoległych 103

Wymagane jest wtedy oczekiwanie na wyniki obliczeń pochodzące z innych węzłów obliczeniowych. Korzystne jest takie zaprojektowanie algorytmu, aby w tym okresie realizować inne obliczenia. Wymaga to stosowania procedur komunikacji asynchronicznej lub nieblokującej.

Wartość (skalowanego) przyspieszenia ulega wzrostowi w porównaniu z przy-spieszeniem dla problemu o stałym rozmiarze.

Podsumowując, dla większości problemów o stałym rozmiarze obserwuje się spadek efektywności wraz ze wzrostem liczby procesorów. Na efekt ten mają wpływ:

• pogorszenie stosunku czasu obliczeń w domenach (na które podzielono problem obliczeniowy) do czasu komunikacji,

• narzut komunikacyjny (wzór 4.2),

• niedoskonała dekompozycja, skutkująca niezrównoważeniem obciążenia.

Można częściowo temu przeciwdziałać, zwiększając rozmiar problemu, co prowadzi zazwyczaj do statystycznie bardziej wiarygodnych wyników obliczeń (zwłaszcza w problematyce obliczeń naukowo-technicznych) oraz do lepszego wykorzystania zasobów komputera.

Istnieją algorytmy, które charakteryzują się przyspieszeniem większym niż liniowe, tzw. superliniowym. Przykładowo wymienić można:

• problemy, które po dekompozycji mieszczą się w całości w pamięci pod-ręcznej procesorów,

• zadania, które polegają na znalezieniu najkrótszego czasu rozwiązania problemu,

• w rzadkim przypadku można stworzyć algorytm równoległy dający w porównaniu z sekwencyjnym przyspieszenie superliniowe.

Udział części sekwencyjnej w obliczeniach równoległych. W praktyce programistycznej korzystne jest określenie udziału części sekwencyjnej, f, w obliczeniach. Dokonuje się tego na podstawie wielkości zwanej serial fraction [36]. Dla problemu o stałym rozmiarze

i wtedy, przy spełnieniu założeń analogicznych do równania 4.6, otrzymuje się

4.6. Podsumowanie 105

Rysunek 4.6: Ogólna charakterystyka współczesnych architektur komputerowych i środowisk programowania

oraz

Widać, że im mniejszy jest udział f, tym bardziej przyspieszenie zbliżone jest do liniowego.

Dla problemu o skalowanym rozmiarze

Wartości f i fk bardzo silnie zależą od algorytmu i systemu komputerowego, dla

wysoce zoptymalizowanego algorytmu mogą być bardzo małe i wynosić przykładowo ~ 10~3 [36].

4.6 Podsumowanie Maszyny o wielu procesorach zdobyły dużą popularność zarówno w obliczeniach dużej skali, jak i zastosowaniach do wspomagania zarządzania przedsiębiorstwem, chociaż istnieje jeszcze wiele problemów oczekujących na rozwiązanie. Dotyczy to zwłaszcza wyboru środowisk i modeli programowania równoległego w odniesieniu do rodzaju architektury komputera (Rys. 4.6).

106 Rozdział 4. Komputery systemów otwartych i modele programowania

Liczba zainstalowanych komputerów Producent USA/Kanada Europa Japonia inne Suma IBM 74 62 4 4 144 SUN 71 35 5 10 121 SGI 48 5 9 - 62 Cray mc. 30 17 5 2 54 HP 32 14 1 - 47 NEC 3 7 11 4 25 Fujitsu 1 7 10 1 19 Hitachi - 2 14 - 16 inne 9 1 2 - 12 SUMA 268 150 61 21 500

Tablica 4.3: Rozkład liczby zainstalowanych w świecie komputerów (dane na podstawie listy TOP500 z dnia 6.6.2000)

Dobry przegląd największych na świecie instalacji podaje lista TOP500 [19]. Korzystne jest przytoczenie niektórych danych (por. Tablice 4.3 i 4.4). Analizując w ciągu lat jej elementy można stwierdzić, iż mimo że obserwuje się ilościowe zmiany w udziale poszczególnych producentów, to jednak jakościowe tendencje pozostają zachowane.

Dominującymi producentami komputerów pod względem liczby zainsta-lowanych systemów są firmy IBM i SUN Microsystems. Największa moc ob-liczeniowa (w jednostkach Rmax - por. Rozdział 2.6) zainstalowana jest w USA i Kanadzie. Zwraca uwagę duża jej wielkość pochodząca z komputerów produkowanych przez firmę Cray Inc., mimo stosunkowo niewielkiej liczby zainstalowanych systemów.

Na pierwszych miejscach listy TOP500 znajdują się maszyny produkowane jednostkowo w ramach projektu ASCI 1121]: Intel ASCI Red, IBM ASCI Blue Pacific SST i SGI ASCI Blue Mountain z liczbą procesorów rzędu 104. Niektóre firmy intensywnie rozwijają maszyny typu PVP (np. NEC i TERA).

Obecny stan rozwoju podsumować można następująco:

• Równoległe architektury wieloprocesorowe znajdują się ciągle na etapie intensywnego rozwoju - pewnym standardem jest architektura hierarchiczna, zdobywająca popularność w obliczeniach naukowo-technicznych o największej złożoności. Architektura ta jest także stosowana w zakresie przetwarzania komercyjnego, zwłaszcza gdy system oferuje możliwość definiowania partycji.

• Klastry komputerów znajdują swój zakres zastosowań w obliczeniach

4.6. Podsumowanie 107

Wielkość zainstalowanej mocy, Rmax (Gflop/s) Producent USA/Kanada Europa Japonia inne Suma IBM 13228.0 4439.9 392.1 466.6 18526.6 Cray Inc. 8328.0 5213.3 276.4 191.5 14009.2 SGI 5345.0 314.2 624.6 - 6283.8 SUN 3683.2 1733.0 245.2 576.3 6237.7 Hitachi - 1093.7 4312.4 - 5406.1 Fujitsu 45.9 1246.5 2341.7 139.8 3773.9 NEC 411.6 777.2 1404.3 474.4 3067.5 HP 1792.8 714.3 51.2 - 2558.3 inne 4094.2 211.0 164.8 - 4470.0 SUMA 36928.7 15743.1 9812.7 1848.6 64333.3

Tablica 4.4: Rozkład mocy Rmax zainstalowanych w świecie komputerów (dla 500 najwydajniejszych instalacji, dane na podstawie listy TOP500 z dnia 6.6.2000)

naukowo-technicznych, a zwłaszcza w systemach komputerowych prze-znaczonych do wspomagania zarządzania, ze względu na możliwość uzy-skania zasobów zastępczych, redundancję, a w konsekwencji - wysoką dostępność (por. Rozdział 5). Trwają prace na efektywnym wykorzystaniem klastrów zbudowanych z komputerów typu SMP.

• Dominuje zastosowanie procesorów superskalarnych RISC.

• Istnieje potrzeba stosowania rozbudowanych struktur warstwy komu-nikacyjnej.

• Występuje konieczność rozbudowy systemów operacyjnych oraz możliwości programów narzędziowych.

Dobry przegląd tendencji rozwojowych sprzętu, oprogramowania i algorytmów równoległych znaleźć można, m.in., w [34, 40, 46, 49, 63, 74, 76]. Na uwagę zasługuje pozycja [11], szczegółowo przedstawiająca zagadnienia budowy współczesnych komputerów równoległych.

Rozdział 5

Architektury komputerowe dla zastosowań przemysłowych i komercyjnych

Celem poniższego rozdziału jest omówienie architektur komputerowych używanych w zastosowaniach przemysłowych i komercyjnych, ze szczególnym uwzględnieniem systemów wysokiej dostępności.

W niniejszym rozdziale wykorzystano materiały dostępne w sieci Internet np. [109, 114, 128, 132, 135]. Korzystano także z wniosków formułowanych przez grupy konsultingowe: International Data Corp. (IDC) (z siedzibą w Framingham, Mass. USA) [115], International Technology Group (ITG) (w Los Altos, CA USA), Aberdeen Group (z Bostonu, Mass. USA) [102], Gartner Group (GG) (ze Stanford, Conn. USA) [111] i D.H. Brown Associates, Inc. (Port Chester, NY, USA) [110], a także z innych źródeł.

5.1 Wstęp

W zastosowaniach komercyjnych wyróżnia się dwa podstawowe typy prze-twarzania:

• przetwarzanie transakcyjne (ang. On-Line Transaction Processiag -OLTP),

• wspomaganie decyzji i eksplorację danych (ang. Decision Support Side of the business - DSS).

Odmienny charakter tych typów podkreślają zróżnicowane metody oceny wy-dajności systemów komputerowych (por. Rozdział 2).

109

Rozdział 5. Architektury komputerowe dla, zastosowań przemysłowych 110 i komercyjnych

Zdarzenia, które powodują zmianę stanu, są w terminologii baz danych nazywane transakcjami. Transakcja zmienia zawartość bazę danych. Może być zdefiniowana jako logiczna jednostka pracy. Nowy stan jest wprowadzany przez stwierdzenie faktów, które stają się prawdziwe i/lub przez zaprzeczenie faktów, które przestają być prawdziwe. Jest to funkcja aktualizująca.

Drugim podstawowym typem funkcji bazy danych jest funkcja zapytań. Nie modyfikuje ona bazy, ale używana jest głównie do sprawdzenia czy pewien fakt lub grupa faktów jest spełniona w danym stanie bazy.

W większości organizacji jedna baza danych używana jest przez wielu użytkowników. Przetwarzanie transakcyjne polega więc na obsłudze wielu aktualizacji i/lub zapytań kierowanych jednocześnie przez użytkowników do systemu zarządzania bazą danych, przy czym nakład ze strony systemu na obsługę pojedynczego procesu jest względnie niewielki.

Wspomaganie decyzji i eksploracja danych różni się istotnie od OLTP, gdyż występuje w nim stosunkowo niewielka liczba zapytań odnoszących się do znacznego obszaru danych, przy czym zapytania charakteryzują się wysoką złożonością. Celem jest wytworzenie użytecznej informacji wspierającej podejmowanie decyzji, często o charakterze strategicznym dla danej instytucji.

Producenci systemów komputerowych proponują zróżnicowane rozwiązania architektury komputera o wielu procesorach. W zależności od zastosowań, celem może być uzyskanie:

• największej wydajności komputera,

• dużej efektywności wykorzystania pojedynczego węzła obliczeniowego,

• wysokiej dostępności (ang. high availability) systemu komputerowego.

Nie można jednak stwierdzić, która architektura komputerowa jest najlepsza we wszystkich tych aspektach. W zależności od potrzeb i zakresu proponowanych usług oferowanych przez centrum komputerowe wybór optymalnej architektury może być odmienny.

Istnieją trzy główne trendy rozwojowe modeli przetwarzania w zastosowaniach do zarządzania bazami danych. Stosowane są one częściowo także w problematyce eksploracji danych. W chronologicznej kolejności pojawiania się na rynku są one następujące:

• model scentralizowany (ang. host-terminal) — wykorzystywany głównie w konfiguracjach z dużym komputerem centralnym typu mainframe,

5:1. Wstęp___________________________________:___________________________m

• model rozproszony (klient-serwer) — bazujący głownie na sieci komputerów (z procesorami RISC),

• model sieciowy.

W modelu przetwarzania scentralizowanego, najbardziej popularnym w latach 70-tych, zarówno dane jak i aplikacje rezydują na komputerze centralnym. Użytkownik ma do nich dostęp poprzez proste terminale o małej mocy obliczeniowej, o małej pamięci operacyjnej i niskiej efektywności przetwarzania obrazu. Komputery typu mainframe — produkowane przez firmę IBM (S/390 z systemem operacyjnym OS/390) — przeżywają obecnie swój renesans za sprawą nowej technologii sprzętu i oprogramowania [64, 88, 92]. Są one wyposażone w wiele cech charakterystycznych dla systemów otwartych oraz oferują możliwości zbliżone do własności przetwarzania rozproszonego.

Przetwarzanie rozproszone, które szczególnie intensywnie rozwinęło się w latach 90-tych, bazuje na komputerach systemów otwartykh, wyposażonych w procesory RISC i pracujących pod kontrolą systemu operacyjnego typu Unix. Korzystający z nich klienci to komputery klasy PC lub stacje robocze, posiadające swoje lokalne zasoby pamięci operacyjnej, dyskowej, możliwości graficzne i podstawowe aplikacje. Ich wyposażenie zależy od klasy sprzętu i architektury oprogramowania. Użycie komputerów typu klient znacząco zmniejsza obciążenie serwera bazy danych, gdyż wiele standardowych operacji związanych z obsługą interfejsu użytkownika wykonuje stacja klienta.

Przetwarzanie sieciowe to stosunkowo nowy paradygmat architektury, będący rezultatem rozwoju zastosowań sieci lokalnych i globalnych oraz sukcesu Internetu. Ideę przetwarzania sieciowego charakteryzuje się najczęściej poprzez zastosowanie komputerów sieciowych wyposażonych jedynie w system operacyjny i maszynę wirtualną Java w celu uruchamiania aplikacji. Komputery sieciowe przez szybkie łącza pobierają z serwera aplikacje (aplety) wykonując je lokalnie, korzystając z baz danych umieszczonych na dyskach serwera. Dlatego tego typu model nazywany jest czasem modelem z lekkim klientem i ciężkim serwerem (ang. thin-client/fat-server). Wymagania tej architektury w stosunku do komputerów sieciowych odnośnie szybkości przetwarzania, wielkości pamięci operacyjnej i dyskowej są znacznie skromniejsze, niż dla modelu klient-serwer. Niski koszt komputera sieciowego oraz jego utrzymania, a także centralny charakter zarządzania serwerem są głównymi elementami preferującymi tę architekturę w przyszłości. Model ten może być emulowany na typowej strukturze klient-serwer.

Uważa się, że w ciągu najbliższych kilku lat nastąpi znacząca integracja usług informatycznych w ramach przetwarzania z wykorzystaniem sieci rozległych o zasięgu ogólnoświatowym - grid computing (25, 113].

Rozdział 5. Architektury komputerowe dla zastosowań przemysłowych 112 i komercyjnych

Przetwarzanie rozproszone może być rozpatrywane w dwóch kategoriach:

• rozdziału mocy obliczeniowej,

• rozdziału (decentralizacji) zasobów danych.

Rozdział mocy obliczeniowej ma na celu wzrost wydajności przetwarzania i podniesienie poziomu dostępności aplikacji (por. ciąg dalszy rozdziału). Decentralizacja zasobów danych jest wynikiem zmian zachodzących w strukturach przedsiębiorstw — zwiększających zasięg działania poprzez geograficzne rozproszenie oddziałów. Pozwala na zachowanie lokalnej autonomii oddziałów, przezroczystość lokalizacji danych i podniesienie niezawodności przetwarzania przez wzrost dostępności danych.

Obserwowane trendy rynkowe odnośnie wymienionych trzech modeli przetwarzania wskazują obecnie na dominację modelu klient-serwer i jeszcze stosunkowo niewielki rozwój przetwarzania sieciowego. Ze względu na rosnące zainteresowanie wykorzystaniem tego typu architektur, w Rozdziale 5.3 umieszczono więcej informacji na ten temat.

5.2 Kształtowanie się trendów rynku komputerowego

5.2.1 Przetwarzanie scentralizowane Komputery typu centralnego powstały w czasach, kiedy sprzęt komputerowy był drogi, a czas pracy stosunkowo tani. Z tego względu centra obliczeniowe i przedsiębiorstwa dokonywały zakupu pojedynczych sztuk, które wykorzystywano do uruchamiania oddzielnych aplikacji przez tysiące użytkowników. Podstawowym typem przetwarzania było przetwarzanie wsadowe, w odróżnieniu od systemów otwartych, które z założenia projektowano jako systemy umożliwiające obliczenia interakcyjne.

Środowisko komputerów centralnych stało się obecnie bardziej złożone. Jest ono wzbogacone systemami zarządzania rozwojem aplikacji, technologią tworzenia nowoczesnych baz danych, systemami emulującymi paradygmat klient-serwer. Umożliwia wykorzystanie systemów oprogramowania dostępnych początkowo wyłącznie w systemach otwartych i pochodzących od niezależnych producentów. Dla ułatwienia eksploatacji wprowadzono opcję systemu operacyjnego OS/390 w postaci Auto UNIX, której zadaniem jest zapewnienie aplikacjom systemu Unix platformy, którą można łatwo obsługiwać bez znajomości systemu OS/390 lub MVS.

5.2. Kształtowanie się trendów rynku komputerowego_____________113

Rozwój technologii CMOS oraz szybkich i tanich procesorów RISC na przełomie lat 80-tych i 90-tych (por. Tablicę 3.3), przy równoczesnym gwałtownym wzroście przepustowości sieci komputerowych przyczynił się do popularyzacji przetwarzania rozproszonego oraz rozwoju architektur i obliczeń równoległych. Po spadku zainteresowania dużymi wieloprocesorowymi komputerami wektorowymi na początku lat 90-tych — wykorzystywanymi dotąd najczęściej w ośrodkach naukowych i centrach superkomputerowych w problemach dotyczących badań podstawowych — recesja dotknęła również producentów komputerów centralnych.

Największy spadek popularności komputerów IBM tego typu wystąpił w latach 1991-1994. Po wprowadzeniu technologii CMOS i systemu operacyjnego OS/390, posiadającego funkcjonalność systemu Unix, wzrasta popularność komputerów typu mainframe, zwanych obecnie superserwerami, zwłaszcza wśród użytkowników poprzednich modeli. Wyraźne obniżenie kosztu inwestycyjnego superserwerów wykorzystujących technologię CMOS, niskie koszty eksploatacji w przypadku bardzo dużych instalacji (zwłaszcza dla baz danych powyżej 1TB lub ponad 10.000 użytkowników serwera WWW) [64, 88], mają tutaj istotne znaczenie. Najnowsze modele serii S/390 wykorzystują procesory G5 i G6, w przypadku G6 ze ścieżkami miedzianymi (por. Rozdział 3.3); przewidywane są kolejne wersje procesorów: G7 i G8.

OS/390 posiada własną technologię zapory ogniowej, która jest prostsza i tańsza niż oddzielny serwer oraz koprocesor kryptograficzny, którego funkcje są wymagane dla standardowych usług bankowych.

5.2.2 Przetwarzanie rozproszone Na początku lat 80-tych przetwarzanie centralne zaczęło być wypierane przez bardziej elastyczne aplikacje modelu klient-serwer, zarządzane poprzez system operacyjny typu UNIX wykorzystujący standardy systemów otwartych.

Klient-serwer jest architekturą oprogramowania, w której dwa lub więcej procesów współdziała ze sobą w rolach podrzędny-nadrzędny. Procesy typu klient wysyłają zapotrzebowania, które obsługiwane są przez proces serwera.

Ponieważ w konwencjonalnej aplikacji przetwarzania transakcyjnego wyróżnić można kilka części, jak na przykład [4]:

• zarządzanie danymi,

• zarządzanie regułami,

• logika aplikacji,

• zarządzanie i logika prezentacji,

Rozdział 5. Architektury komputerowe dla, zastosowań przemysłowych 114 i komercyjnych

architektura typu klient-serwer szczególnie dobrze nadaje się do odwzorowania logicznego podziału aplikacji na rozdział fizyczny i realizację przetwarzania poszczególnych części w optymalnie wybranym miejscu. Elastyczność implementacji tego modelu stanowi jedną z najważniejszych jego cech.

Podstawowym modelem obliczeniowym jest model dwuwarstwowy, w którym wyróżnia się dwa procesy: proces klienta (obsługujący zazwyczaj aplikacje i prezentacje) i proces bazy danych (odnoszący się do zarządzania regułami i danymi), realizowane najczęściej na odrębnych maszynach.

W przypadku skomplikowanych problemów decyzyjnych i obszernych za-gadnień przetwarzania transakcyjnego nowoczesne systemy wspomagania za-rządzania realizują trzywarstwowe podejście (Rys. 5.1), w którym występują dedykowane maszyny typu:

• serwer bazy danych,

• serwery aplikacyjne,

• serwery prezentacji.

Rysunek 5.1: Typowa struktura 3-warstwowego przetwarzania

Dane oddzielone są od reguł zarządzających nimi, od warstwy aplikacji oraz od procesu klienta realizującego warstwę prezentacji. W konkretnym przypadku rozkład części aplikacji na poszczególne maszyny systemu może być odmienny.

Dla zapewnienia współpracy klientów z serwerem stosuje się oprogramowanie łączące (middieware), używające protokołów sieciowych w celu wymiany komunikatów między klientem a serwerem. W skład oprogramowania middieware mogą wchodzić także inne produkty o szerokim zastosowaniu praktycznym, jak np. produkty HP - OpenView do zarządzania, Praesidium do zapewnienia bezpieczeństwa danych oraz OpenMail dla poczty elektronicznej.

W początkowym okresie rozwoju systemów klient-serwmr wykorzystywano głównie sieci lokalne. Obecnie, wraz z rozwojem korporacji o zasięgu światowym coraz częściej występują geograficznie rozproszone zasoby systemów, co rodzi bardziej skomplikowane problemy - implementację rozproszonych baz danych o złożonych procedurach aktualizacji oraz zagadnienia efektywnego dostępu do zasobów, zarządzania i poufności danych. Modyfikacji ulega paradygmat modelu klient-serwer na rzecz wykorzystania typowych metod sieciowych (problematyka ta rozwinięta jest w dalszej części rozdziału).

Rosnąca popularność systemów MS Windows i WindowsNT lub Win-dows2000 oraz duża liczba aplikacji wykorzystujących to środowisko powoduje, że serwery aplikacyjne, a szczególnie serwery prezentacji coraz częściej wyposażone są w systemy tego typu (por. Rozdział 8.2). Serwery baz danych zazwyczaj pracują pod kontrolą systemu operacyjnego typu Unix, który wykazuje się dużą stabilnością i funkcjonalnością. Istnieją jednak już przykłady zastosowań systemów WindowsNT/Windows2000 w środowiskach o wysokiej dostępności [9].

5.2.3 Cechy systemów rozproszonych

Zalety systemów rozproszonych. Popularność systemów rozproszonych i ich dynamiczny rozwój zdeterminowany jest wysoką wartością zwrotu poniesionych nakładów. Wiążą się one z elastycznością tych systemów i krótkim czasem produkcji aplikacji dla tego środowiska. Dlatego też zaletą przetwarzania w modelu klient-serwer jest liczba pakietów programowych i aplikacji dostępnych w środowisku UNIX oraz możliwość wykorzystania efektywnych cenowo komputerów z WindowsNT lub Windows2000 jako klientów. Najbardziej popularne i ważne pakiety z punktu widzenia zastosowań komercyjnych to: SAP, Baan IV, Oracie, Informix i inne. Duża liczba istniejących aplikacji pozwala znacznie skrócić czas realizacji dowolnego przedsięwzięcia i redukcję jego kosztów.

Ekspansja technologii systemów otwartych doprowadziła do rewolucji w Internecie i pojawienia się usług, takich jak na przykład WWW lub handel elektroniczny, o doniosłych cywilizacyjnych konsekwencjach.

Rozdział 5. Architektury komputerowe dla, zastosowań przemysłowych 116 I komercyjnych Niedostatki systemów rozproszonych. Główne wady systemów rozproszonych stosowanych w problematyce przemysłowej lub komercyjnej generowane są przez ich największe zalety — elastyczność oraz otwartość całej architektury.

Na podstawie doświadczeń użytkowników i administratorów systemów rozproszonych stwierdza się, że stosowanie takiego systemu komputerowego do wspomagania zarządzania przedsiębiorstwem może stwarzać problemy, które przedstawia się w czterech kategoriach:

• Infrastruktura. Klienci wykorzystują niepotrzebnie skomplikowane systemy operacyjne oraz często niekompatybilne interfejsy ciężkiego klienta. Serwery posiadają różne konfiguracje i wykorzystują różne protokoły sieciowe dla współpracy z grupą klientów. Zwiększenie złożoności struktury sieci prowadzi do zmniejszenia funkcjonalności i niezawodności przetwarzania.

• Aplikacje. Istnieje zbyt duża liczba zróżnicowanych, dużych aplikacji na różnych platformach, które nie mogą być łatwo modyfikowane. Aplikacje serwerów i klientów mogą być napisane w różnych językach.

• Dane. Polityka decentralizacji danych doprowadza często do nadmiernej liczby baz danych, przechowujących dane redundantne i/lub nieaktualne.

• Utrzymanie systemu. Użytkownicy mogą sami konfigurować swoje kom-putery warstwy prezentacji zgodnie z ich upodobaniami, co może po-wodować zmniejszenie wydajności i bezpieczeństwa. Konieczne jest po-noszenie stałych kosztów przeznaczonych na uaktualnianie systemów i aplikacji.

Reasumując, można wyróżnić kilka podstawowych wad systemu rozproszonego:

• Duża złożoność.

• Duże koszty administrowania systemem.

• Ograniczony standardowy poziom

- bezpieczeństwa danych, - ochrony przed niepowołanym dostępem, - dostępności.

• Niezgodność sprzętowa i programowa elementów systemu utrudniająca eksploatację.

Szerokie zastosowanie w praktyce przetwarzania rozproszonego w modelu klient-serwer z zastosowaniem komputerów systemów otwartych wymusiło na producentach opracowanie metod, środków i narzędzi minimalizujących negatywne cechy tego typu przetwarzania i obniżających koszt eksploatacji. Efektem jest rozwój systemów sieciowych i ograniczenie zakresu funkcjonalności komputerów warstwy prezentacyjnej.

5.3 Rozwój systemów sieciowych

5.3.1 Koncepcja obliczeń sieciowych Firma SUN Microsystems stworzyła system sieciowy oparty na języku Java, który minimalizuje typowe wady systemów rozproszonych. W systemach sieciowych stosowany jest także paradygmat obliczeniowy rozdziału zadań serwera od zadań klienta.

Aplikacje Javy Wirtualna maszyna Javy i klasy Javy Przeglądarki obsługujące Javę Dowolny system operacyjny Sprzęt

System operacyjny JavaOS Sprzęt

Ciężki klient Lekki klient

Język Java, będący podstawowym narzędziem systemów sieciowych (por. [119, 135]), został stworzony w firmie SUN w roku 1991 jako część projektu badawczego dotyczącego oprogramowania dla urządzeń elektronicznych codziennego użytku. Projekt zakładał, że język ma być szybki i efektywny, z przenośnym kodem wynikowym i umożliwiać szybki rozwój oprogramowania dzięki cechom obiektowości. Język Java stał się doskonałym językiem do tworzenia programów współpracujących z przeglądarkami internetowymi, jak również językiem do tworzenia przenośnego oprogramowania.

W sieciowym systemie komputery stanowiące klientów mogą być dwojakiego rodzaju (por. Tablica 5.1). Pierwszym rodzajem jest lekki, łatwy w zarządzaniu klient wyposażony w procesor dedykowany Javie oraz system operacyjny JavaOS z wbudowaną wirtualną maszyną Javy. Sam system operacyjny i wirtualna maszyna mogą być przechowywane w pamięci komputera

Rozdział 5. Architektury komputerowe dla zastosowań przemysłowych 118 _____________ i .komercyjnych

typu flash lub też mogą być pobierane z serwera. W drugim przypadku — klientem jest typowy komputer (najczęściej typu PC).

Praktyka pokazuje, że bardziej rozpowszechniły się stacje klienckie wyko-rzystujące komputery ogólnego przeznaczenia, zgodnie z założeniem dotyczącym uniwersalności języka Java. Pierwszy typ klientów znalazł zastosowanie w urządzeniach przenośnych typu rozbudowane telefony komórkowe lub komputery kieszonkowe.

Z serwera pobierane są w miarę potrzeby aplikacje (aplety Javy). Komunikacja pomiędzy klientem a serwerem może odbywać się przez standardowy protokół sieciowy TCP/IP lub protokoły specjalizowane.

Takie podejście powoduje, że cały system może być administrowany centralnie (zwłaszcza w przypadku lekkich klientów), a użytkownik posiada aktualne wersje potrzebnego oprogramowania. Dodatkowymi cechami są niższe koszty eksploatacji, zgodność sprzętowa i programowa elementów systemu, wyższy poziom bezpieczeństwa oraz łatwiejsza obsługa techniczna.

W praktyce przemysłowej, ze względu na istniejącą infrastrukturę i zróż-nicowane potrzeby, wymagana jest integracja obu podejść. Lekki klient winien być stosowany dla popularnych prostych zastosowań (na przykład typu OLTP), natomiast dla zagadnień wymagających bardziej rozbudowanych zasobów lokalnych (np. aplikacji graficznych) korzystnie jest użyć stacji roboczych zapewniających odpowiednią wydajność.

Starsze rozwiązania, do których należą systemy zarządzania bazami danych na komputerach typu mainframe, można zintegrować z całością systemu poprzez użycie interfejsów programistycznych, utworzonych z pomocą Java API.

Istnieje już wiele komercyjnych i pilotażowych instalacji wykorzystujących technologię Java Computing. Prace rozwojowe dotyczą, m.in., optymalizacji wielozadaniowości i jednoczesnej pracy wielu użytkowników. Informacje na temat tych systemów można znaleźć w sieci Internet, na przykład pod adresem (117).

5.3.2 Przegląd trendów rozwojowych Dedykowany procesor. Wraz z dynamicznym rozwojem technologii związanej z językiem Java pojawiła się pierwsza, dedykowana nowym zastosowaniom rodzina nowoczesnych procesorów opracowana przez SUN Microsystems. Wstępnie zaproponowano trzy modele zróżnicowane pod względem wydajności i zakresu zastosowań. Wszystkie zapewniają efektywne wykonanie programu w Javie, posiadają konfigurowane jądro procesora i dobry współczynnik wydajności do ceny.

• PicoJava - implementacja podstawowa,

• MicroJava - implementacja rozszerzona o funkcje obsługi we/wy, pamięci oraz o funkcje kontrolne i komunikacyjne,

• UltraJaya - implementacja zapewniająca dużą wydajność i obsługę aplikacji graficznych 3D.

Programowanie komponentowe. Stanowi ono jeden ze współczesnych paradygmatów programowania. Idea polega na tworzeniu małych, zwartych, niezależnych od otoczenia komponentów (fragmentów oprogramowania), wie-lokrotnie wykorzystywanych bez konieczności modyfikacji. Złożony program składa się z niezależnych i zintegrowanych w jedną całość komponentów, dzięki czemu zyskuje się dużą elastyczność i niezawodność.

Programowanie komponentowe nie jest koncepcją nowatorską, niemniej jednak do tej pory nie było ono w pełni wykorzystane głównie z uwagi na ograniczenia ze strony oprogramowania. Obecnie dzięki pojawieniu się języka Java, wzrosło zainteresowanie tą technologią. Firma SUN promuje jego koncepcję, m.in., przez upowszechnianie technologii JavaBeans [120]. Celem tej technologii jest umożliwienie integracji komponentów Javy pomiędzy sobą, jak również integrację tych komponentów z innymi strukturami złożonymi z komponentów innych niż komponenty Javy, na przykład z ActiveX (firmy Microsoft).

Technologia JavaBeans jest implementowana jako interfejs programistyczny, pozwalający na tworzenie i stosowanie dynamicznych komponentów napisanych w języku Java. Zbiór ten jest podzielony na grupy narzędzi udostępniające poszczególne możliwości i serwisy tej technologii.

Technologie programowania komponentowego wspomagają tworzenie dużych środowisk programistycznych dedykowanych rozwiązaniu pewnych klas zagadnień obliczeniowych (tzw. Problem Solving Environments).

5.3.3 Podsumowanie Środowisko internetowe wykorzystujące system Java jest prostą, zwartą tech-nologią. Efekt, jaki ta technologia wywiera jest trudny do przecenienia.

Poprzez interaktywne aplikacje wprowadzona została dynamika do stron WWW. W znaczący sposób poszerzyły się możliwości programowania, dzięki koncepcji komponentów. Model przetwarzania informacji Java Computing wszechstronnie wspomaga przetwarzanie informacji. Zarządzanie sieciami zostało znacząco uproszczone. Pojawiły się nowe usługi, na przykład handel

Rozdział 5. Architektury komputerowe dla zastosowań przemysłowych 120 i komercyjnych elektroniczny oraz teleedukacja i telemedycyna. Usługi informatyczne obejmują swoim zasięgiem cały świat. Prowadzone są intensywne badania nad dalszą ich integracją z wykorzystaniem sieci rozległych - grid computing [25, 113].

Problemem wymagającym nadal uwagi jest poufność informacji i ochrona zasobów przed nieupoważnionym dostępem.

Wiele dużych firm - producentów sprzętu i oprogramowania - istotnie wspomaga rozwój Javy i planuje jej wykorzystanie w najbliższej przyszłości w swoich produktach komercyjnych.

Warto zwrócić uwagę, że w środowiskach sieciowych dużą wagę przywiązuje się do ich wzajemnej współpracy (ang. interoperabihty), np. do współpracy z aplikacjami spełniającymi standard CORBA [106].

5.4 Przegląd architektur W niniejszym podrozdziale rozwinięto opis charakterystyk architektur komputerów różnego typu (por. Rozdział 4) ze szczególnym uwzględnieniem potrzeb wynikających z zastosowań we wspomaganiu zarządzania przedsiębiorstwem. Omówiono architektury SMP, cc-NUMA, równolegle SMP oraz klastrowe. W niektórych przypadkach różnice między architekturami są na tyle niewielkie, iż zakresy ich zastosowań wzajemnie się pokrywają.

5.4.1 Systemy SMP Są to najprostsze i najbardziej popularne architektury systemów komercyjnych (Rys. 5.2). Ten podstawowy schemat systemu o pamięci dzielonej zyskał największą popularność ponieważ dobrze odpowiada podstawowym celom aplikacji zwłaszcza OLTP w odniesieniu do małej i średniej wielkości baz danych.

Sprzętowa realizacja warstwy komunikacyjnej może wykorzystywać magistralę systemową (w przypadku mniejszej liczby procesorów) lub przełącznicę krzyżową (dla kilkudziesięciu procesorów).

Skalowalność w modelu SMP jest uzyskiwana poprzez dodanie kolejnego procesora lub wymianę wolniejszych procesorów na szybsze. Proces ten jest łatwiejszy technologicznie w przypadku implementacji magistrali; przy stosowaniu przełącznicy rozbudowa jest zazwyczaj istotnie ograniczona (por. Tablica 4.1). Przepustowość magistrali systemowej ogranicza znacznie zakres skalowalności. SMP posiada prosty model programowania, a system operacyjny w sposób przeźroczysty zarządza wielozadaniowością i zasobami.

5.4. Przegląd architektur 121

Rysunek 5.2: Schemat architektury ze wspólna pamięcią Przykłady

systemów o architekturze SMP:

• Compaq ES40, GS140, GS160/320,

• HP N4000, pojedynczy węzeł systemu V2x00,

• SGI Power Challenge XL,

• IBM RS6000 H80, M80, S80,

• SUN E6500 i E10000.

Zalety systemów SMP

• Prosty model programowania, ze względu na współdzielone zasoby, wspólny system operacyjny i oprogramowanie (ang. Single System Image).

• Duża wydajność dla operacji na pamięci wspólnej, przy wysokich wy-maganiach komunikacyjnych i synchronizacyjnych. Systemy zarządzania relacyjnymi bazami danych najprościej jest zoptymalizować dla tego typu architektury.

• Architektura SMP dobrze odpowiada większości aplikacji komercyjnych:

Rozdział 5. Architektury komputerowe dla, zastosowań przemysłowych 122_____________________ _____ i komercyjnych

- typu OLTP - przy równoległych transakcjach, które nie odwołują się jednocześnie do tych samych bloków danych lub modyfikują rozłączne dane.

- typu DSS - przy przeglądaniu całych tabel (w systemach relacyjnych baz danych); w tym wypadku wymagane są znacznie rozbudowane zasoby sprzętowe.

• Łatwość zwiększenia wydajności poprzez rozbudowę systemu i zarządzania ze względu na jego małą złożoność.

Niedostatki systemów SMP

• Systemy SMP słabo nadają się do realizacji modyfikacji dużej liczby danych z różnych instancji oddziałujących na te same bloki,

• Posiadają ograniczoną skalowalność ze względu na przepustowość magistrali systemowej lub skońkzone możliwości rozbudowy w przypadku przełącznicy krzyżowej.

• Pamięć operacyjna oraz magistrala są pojedynczymi punktami uszkodzeń dla całego systemu (ang. Single Points of Failure). Niektóre systemy pozwalają kontynuować pracę przy częściowej awarii.

• Maksymalna stosowana liczba procesorów to kilkadziesiąt. W zależności od implementacji, maksymalna efektywność dla aplikacji typu komercyjnego uzyskiwana jest najczęściej dla 20-30 procesorów (15].

Ze względu na powszechne obecnie stosowanie wydajnych procesorów 64-bitowych, zwiększeniu uległa wydajność przetwarzania w modelu SMP oraz wielkość przestrzeni adresowej, umożliwiająca wykorzystanie bardzo dużych pojemności pamięci operacyjnych oraz masowych. Ocenia się, że przez naj-bliższych kilka lat SMP pokrywać będzie większość zapotrzebowania na moc obliczeniową dla aplikacji komercyjnych [30].

5.4.2 Architektury cc-NUMA

Prostota modelu programowania dla architektur SMP skłoniła do opracowania bardziej rozbudowanego rodzaju architektury, cc-NUMA (por. Rozdział 4), który udostępniałby większą wydajność, łącząc zalety systemów SMP i MPP. Budowa tego typu maszyn wykorzystuje najczęściej strukturę hierarchiczną (Rys. 5.3), złożoną z wieloprocesorowych węzłów obliczeniowych.

Rysunek 5.3: Schemat architektury cc-NUMA

W maszynie typu cc-NUMA, jak wspomniano wcześniej (por. Rozdział 4.3.2), używany jest jeden system operacyjny oraz liniowo adresowana pamięć operacyjna, fizycznie rozproszona pomiędzy węzły obliczeniowe i dostępna w sposób hierarchiczny. Zatem czas dostępu do informacji nie jest jednakowy i zależy od wzajemnego położenia procesora i modułu pamięci. Stosuje się protokoły zapewniające spójność pamięci podręcznej procesorów. Dodatkowo, podsystem we/wy jest globalnie dostępny przez fizyczne odwołanie się do dowolnego urządzenia skierowane ze strony dowolnego procesora.

Segment rynku, na którym systemy cc-NUMA odnoszą największe sukcesy to obliczenia naukowo-techniczne, wymagające bardzo dużych mocy obliczeniowych. Ich popularność w przetwarzaniu typu komercyjnego jest ograniczona. Wynika to z faktu stosunkowo (jeszcze) niewielkiego zapotrzebowania w tym zakresie na tak dużą moc obliczeniową, jaką oferują architektury cc-NUMA oraz niepełnego rozwoju technologii aplikacji relacyjnych baz danych na tego typu architekturę,

Jedną z najważniejszych cech architektury jest możliwość wykonywania aplikacji oryginalnie opracowanych dla architektury SMP, chociaż w tym wypadku wymagają one optymalizacji. Innymi cechami korzystnymi jest zdolność do partycjonowania zasobów oraz tworzenia wirtualnej struktury klastrowej.

Rozdział 5. Architektury komputerowe dla, zastosowań przemysłowych 124_____________________________ i komercyjnych

Typowe systemy reprezentujące architektury cc-NUMA to:

• IBM Sequent NUMA-Q 2000,

• SGI Origin 200/2000,

• HP system V2500SCA.

Zalety systemów cc-NUMA

• Rozszerzona skalowalność systemu (na przykład 256+ procesorów).

• Jeden system operacyjny, możliwość implementacji modelu obliczeniowego DSM w całej maszynie oraz realizacji aplikacji dla architektury SMP.

• Dobra efektywność dla aplikacji korzystających głównie z operacji odczytu lub wymagających niewielkiej synchronizacji.

• Elastyczność konfiguracji, polegająca na zdolności do partycjonowania zasobów i tworzenia wirtualnych klastrów, dobrze odwzorowanych na architekturę (por. Rys. 5.3).

Niedostatki systemów cc-NUMA

• Architektura trudna w zastosowaniach do przetwarzania transakcyjnego przy dużym udziale operacji modyfikacji zawartości pamięci i synchronizacji obliczeń, ze względu na niejednakowy czas dostępu do pamięci.

• Stosunkowo niska dostępność systemu z uwagi na istnienie pojedynczych punktów uszkodzeń. Mimo stopniowego podnoszenia niezawodności sprzętu, m.in., przez zdolność do eliminacji elementów niesprawnych w trakcie pracy (pamięć ECC, urządzenia typu hot swap), systemy wysokiej dostępności wymagają dodatkowej redundancji.

Sądzi się, że zasadniczym zakresem zastosowań w przyszłości będą systemy DSS wymagające dużej wydajności obliczeniowej — hurtownie i eksploracja danych, a także aplikacje z zakresu business intelligence, np. systemy SAS.

Architektura cc-NUMA jest bardzo elastyczna i można spodziewać się jej znacznego rozpowszechnienia w przyszłości [15].

5.4. Przegląd architektur 125

5.4.3 Równoległe SMP Równoległa architektura SMP (ang. Parallel SMP, PSMP, por. Rys. 5.4) występuje jako niezależny typ zwłaszcza w zastosowaniach do przetwarzania komercyjnego. Może być ona traktowana jako typ pośredni - między architekturą SMP a architekturą cc-NUMA [30].

Rysunek 5.4: Architektura równoległa o węzłach typu SMP

Jako węzły obliczeniowe architektura PSMP wykorzystuje układy wielo-procesorowe (z własnym systemem operacyjnym), zapewniające model prze-twarzania typu SMP. Węzły te łączy warstwa sieciowa, przez którą komunikują się one wykorzystując model przesyłania wiadomości. Realizacją tej architektury może być klaster komputerów SMP.

W praktyce, implementacji PSMP dokonuje się na istniejącej architekturze cc-NUMA lub na bardzo dużych maszynach typu SMP. W pierwszym przypadku rezygnuje się z możliwości, jakie oferuje praca pod kontrolą jednego systemu operacyjnego i traktuje się węzły maszyny cc-NUMA jako oddzielne maszyny SMP. W drugim - dokonuje się partycjonowania zasobów całej maszyny.

Zagadnieniem optymalizacyjnym jest wybór liczby procesorów węzła ob-liczeniowego. Stosowanie mniejszej liczby bardzo wydajnych procesorów ułatwia wykorzystanie ich wydajności, natomiast wymagania wysokiej dostępności najłatwiej jest spełnić wprowadzając elementy redundantne, co prze-

Rozdział 5. Architektury komputerowe dla zastosowań przemysłowych 126 __ _____ i komercyJnych

mawia za większą liczbą mniej wydajnych procesorów. Właśnie wymagania ciągłości pracy, istotne w zastosowaniach komercyjnych, stanowią o rozpo-wszechnieniu systemów PSMP w porównaniu do cc-NUMA.

PSMP zapewnia łatwą rozbudowę i dobrą skalowalność. W przypadku popytu na większą moc obliczeniową, większe zasoby systemu lub ilość użytkowników, można wstawić dodatkowe procesory lub pamięć operacyjną w ramach pojedynczego węzła SMP. Gdy zapotrzebowanie na zasoby obliczeniowe przewyższa możliwości pojedynczego węzła SMP, można dodać dodatkowe węzły SMP. Rozbudowując maksymalnie pojedynczy węzeł redukuje się liczbę węzłów potrzebnych do uzyskania wymaganej wydajności, upraszczając tym samym administrację i zarządzanie systemem. Architektura PSMP jest odpowiednia dla stosowania rozproszonych baz danych, z wykorzystaniem popularnych systemów, na przykład Informix XPS, Oracie OPS, Sybase MPP.

Architektura PSMP staje się standardem dla aplikacji DSS bardzo dużej skali (dla baz danych o pojemności ponad l TB). Dla aplikacji typu OLTP, ze względu na występowanie struktur globalnych i częste uaktualnianie danych, architektura SMP zdaje się być lepszym wyborem.

Typowe systemy reprezentujące architektury PSMP to:

• IBM RS6000 SP (z węzłami typu SMP),

• HP system V2500HyperPlex, w którym rezygnuje się z modelu cc-NUMA w stosunku do całego systemu i traktuje 32-procesorowe węzły SMP niezależnie,

• SUN E10000, w którym dokonuje się partycjonowania zasobów.

Zalety systemów PSMP

• Łatwe możliwości rozszerzeń konfiguracji poprzez rozbudowę poszcze-gólnych węzłów SMP lub liczby węzłów SMP.

• Możliwość wykorzystania równoległych systemów zarządzania relacyjnymi bazami danych (na przykład Informix XPS, Oracie OPS, Sybase MPP).

• Możliwość rozbudowy w kierunku układów wysokiej dostępności przez uzupełnienie konfiguracji i posadowienie odpowiedniego oprogramowania (por. Rozdział 5.4.4).

5.4. Przegląd architektur 127

Niedostatki systemów PSMP

• Niższy poziom zabezpieczeń przed sytuacjami awaryjnymi w porównaniu do systemów wysokiej dostępności.

• Złożone zarządzanie systemem.

Główni producenci systemów komputerowych wielkiej skali przeznaczonych do zastosowań wspomagania zarządzania przedsiębiorstwem (na przykład IBM, Hewlett-Packard, SUN) zaadoptowali model przetwarzania PSMP w odniesieniu do swoich produktów.

5.4.4 Systemy wysokiej dostępności Szczególnym przypadkiem architektury PSMP są systemy wysokiej dostępności budowane w oparciu o strukturę klastra (ang. High Availability Clusters - HAC) (Rys. 5.5). Systemy HAC wiążą się bezpośrednio z ideą systemów pracy ciągłej, odpornych na rodzaju zdarzenia losowe i katastrofy.

Rysunek 5.5: Architektura klastrowa

Są one przeznaczone do uruchamiania aplikacji o znaczeniu podstawowym, typu mission critical i maksymalnego ograniczenia wpływu awarii na ciągłość pracy całego systemu. Typowe rozwiązania dają gwarancję ciągłej pracy w wysokości 99.95% na 24x365 godzin w roku, co oznacza, że w okresie

Rozdział 5. Architektury komputerowe dla zastosowań przemysłowych 128_______________ __ i komercyjnych jednego roku może wystąpić jedynie 4.5 godziny nieplanowanego przestoju systemu komputerowego [71].

Istotną cechą wyróżniającą klaster wysokiej dostępności spośród innych typów architektur jest zastosowanie elementów redundantnych i mechanizmów programowych, które zwiększają niezawodność pracy oraz podnoszą jego dostępność dla użytkowników. Tematyka ta omówiona jest obszerniej w Rozdziale 6.6.

W przypadku wystąpienia awarii jednego z węzłów, zadaniem warstwy nadzorczej oprogramowania systemu HAC jest dokonanie automatycznej migracji aplikacji z węzła uszkodzonego na pozostałe węzły w sposób przeźroczysty dla użytkownika, z zachowaniem równoważenia obciążenia i ciągłości pracy systemu jako całości.

Cechy systemów HAG są podobne do systemów PSMP. Do dodatkowych elementów należą:

• Wysoka dostępność. • Migracja zadań z uszkodzonego węzła na węzły nieuszkodzone z zacho-waniem równoważenia obciążenia i ciągłości pracy.

• Możliwość wykonania prac systemowych w czasie działania systemu poprzez ręczną migrację zadań i wyłączenie danego węzła z eksploatacji. • Większa złożoność systemu wiąże się z trudniejszą jego administracją.

Przykładami systemów wysokiej dostępności (HAG) są:

• IBM HACMP,

• HP MC/Service Guard

Pierwszym zastosowaniem systemów HAC były duże instalacje o krytycznym znaczeniu dla bezpieczeństwa narodowego i ogólnoświatowej gospodarki. Obecnie, wraz ze rozwojem technologii i obniżką kosztów produkcji, systemy te są coraz częściej używane również i w mniejszych przedsięwzięciach, a także w obliczeniach naukowo-technicznych i usługach informatycznych. Wzrost ich popularności wiąże się z rozwojem Internetu i koniecznością realizacji usług w sposób ciągły.

5.4.5 Systemy operacyjne Jak wspomniano wcześniej w Rozdziale 5.2.2, obserwuje się rosnącą popularność systemów MS Windows i WindowsNT/Windows2000 (więcej danych

5.4. Przegląd architektur_____________________________129

zawiera Rozdział 8.2). Spowodowane to jest różnorodnością i dostępnością aplikacji oraz przyjaznym interfejsem użytkownika, a także niewysoką ceną komputerów wykorzystujących procesory Intel o architekturze IA-32. Komputery tego typu mogą pracować również pod kontrolą systemu Linux, najbardziej rozpowszechnionej, bezpłatnej wersji systemu operacyjnego typu Unix na komputery z procesorami Intel.

Sądzi się, że jeszcze przez pewien okres rola systemów Win-dowsNT/Windows2000 i Linux zostanie ograniczona raczej do serwerów speł-niających rolę klienta systemu klient-serwer, chociaż istnieją już przykłady instalacji zapewniających wysoką dostępność [9]. Nadal jednak komercyjne wersje systemu typu Unix postrzegane są jako bardziej funkcjonalne, stabilne i bezpieczne.

W systemach operacyjnych mogą występować błędy, istotne z punktu widzenia bezpieczeństwa systemu informatycznego, wykrywane na etapie eksploatacji i sukcesywnie usuwane [105]. Korzystać należy z systemów i mechanizmów sprawdzonych i certyfikowanych zgodnie z kryteriami, np. [87] lub [94], posiadających odpowiednią klasę bezpieczeństwa (np. C2/E2). Według oceny [97] największym uznaniem użytkowników cieszy się system IBM AIX (4.3.3), a następnie w kolejności; Compaq Tru64UNIX (5.0), HP-UX (11.0), SUN Solaris (7) i SGI IRIX (6.5).

Większość systemów operacyjnych typu Unix może pracować w wersji 32-bitowej lub 64-bitowej (np. IBM AIX 4.3, HP-UX 11.0). Zazwyczaj korzystniej jest używać systemu operacyjnego i aplikacji w wersji 32-bitowej, ze względu na bardziej oszczędną gospodarkę zasobami systemu. Obliczenia z wykorzystaniem reprezentacji 64-bitowej (ang. 64-bit computing) są jednak niezbędne w niektórych zastosowaniach; do ich elementów należą:

• Adresacja. 32-bitowy procesor udostępnia adresację do 232 bajtów, czyli około 4 GB pamięci; procesor 64-bitowy pozwala zaadresować teoretycznie do 264 bajtów (rzędu 18 EB).

• .Obliczenia stałoprzecinkowe. Zwiększony jest zakres zmiennych całkowitych (typu long i pointer) i wzrasta wydajność przetwarzania dla dłuższych reprezentacji danych.

• Większe wykorzystanie zasobów komputera przez system operacyjny - większych zbiorów i większej ich liczby oraz obsługa większej liczby użytkowników.

• Aplikacje. Możliwa jest realizacja aplikacji o dużym zapotrzebowaniu na zasoby systemu.

Rozdział 5. Architektury komputerowe dla zastosowali przemysłowych 130_________________ __ __ i komercyjnych

Jak widać, reprezentacja 64-bitowa przydatna jest w przypadkach, gdy wymagane jest użycie zbiorów danych o wielkiej pojemności, bardzo dużej pamięci operacyjnej oraz dużej przestrzeni adresowej dla aplikacji. Duża pamięć operacyjna jest niezbędna w systemach SMP z wieloma procesorami (np. IBM S80 lub SUŃ E10000). WindowsNT nie oferuje pełnej funkcjonalności reprezentacji 64-bitowej.

5.5 Podsumowanie 5.5.1 Wysoka dostępność i bezpieczeństwo systemów

komputerowych

Systemy wysokiej dostępności wiążą się bezpośrednio z ideą systemu pracy ciągłej, który dostarcza usług niezależnie od możliwych awarii, zaburzeń i katastrof. Oprócz odpowiedniej architektury systemu informatycznego (której szczegóły dyskutuje się w dalszych rozdziałach), na dostępność niezaburzonych usług i wiarygodnej informacji wpływ mają jeszcze kolejne elementy bezpieczeństwa, do których należą:

• ochrona informacji przy transmisji w rozproszonych systemach infor-matycznych,

• ochrona systemów przed penetracją zewnętrzną.

W pierwszym z wymienionych powyżej elementów chodzi o eliminację możliwości podsłuchu, zamiany, zniszczenia lub nadania fałszywej informacji. W użyciu są różne metody autentyfikacji użytkowników i ich uprawnień, certyfikacji dokumentów i wykorzystania podpisu cyfrowego. Zastosowanie znajdują metody kryptograficzne w odniesieniu do przesyłanej informacji. Opracowanych zostało kilka metod, np. DES (ang. Data Encryption Standard), potrójny DES, Blowfish i RSA. Trwają intensywne prace nad rozwojem kolejnych algorytmów, z których wybrany zostanie kolejny standard - AES (ang. Advanced Encryption Standard) [65, 80], a także nad innymi czynnikami mającymi wpływ na bezpieczeństwo przesyłanej informacji (np, dobór odpowiedniej topologii sieci, wirtualne sieci prywatne). Dobry przegląd norm, m.in., w tym zakresie zawiera praca [73].

Ochrona systemów przed penetracją zewnętrzną wymaga zastosowania ścian ognia (ang. firewalls). Instaluje się je na styku prywatnej sieci organizacji z siecią rozległą. W użyciu są dwie podstawowe technologie:

• nitrowanie pakietów na poziomie protokołu sieciowego IP,

• zabezpieczenia na poziomie warstwy aplikacyjnej, tzw. proxy.

Pierwsza z wymienionych technologii umożliwia szczegółowe przyznanie uprawnień poszczególnym użytkownikom, kontrolę pracy i śledzenie ruchu pakietów. Druga technologia jest prostsza w implementacji i stanowi przeźroczysty interfejs pomiędzy siecią organizacji a siecią rozległą. Ochrona przed penetracją może być realizowana w postaci rozwiązań programowych, przeznaczonych do instalacji na typowym sprzęcie, lub wykorzystywać niezależne specjalizowane urządzenia.

Normy i standardy. Ze względu na cechy systemów otwartych, ich bezpieczna eksploatacja wymaga implementacji i przestrzegania szeregu norm i przepisów. Wśród nich znajdują się normy ogólne, dotyczące przepisów o ochronie informacji niejawnej (por. [6] oraz [95, 96]), jak również standardy międzynarodowe, wraz z ich odpowiednikami krajowymi. Standardy międzynarodowe tworzone są przez International Organization for Standarization (ISO), istniejącą od 1947. Dotyczą one w szczególności zasad bezpieczeństwa dla modelu ISO-OSI, standardów dla niższych i wyższych warstw tego modelu, technik kryptograficznych, oceny bezpieczeństwa systemów informacyjnych, a także wielu innych problemów szczegółowych. Standardy opracowywane są także przez National Institute of Standards and Technology (NIST), dla federalnych systemów komputerowych, American National Standards Institute (ANSI), ułatwiający porozumienie między kwalifikowanymi grupami roboczymi, komitet IEEE Standards Association oraz European Telecommu-nications Standards Institute (ETSI). Wynikiem prac w zakresie standaryzacji usług internetowych są dokumenty nazywane Request for Comments (RFC).

Widać więc, że standaryzacja w zakresie systemów otwartych i ich bez-pieczeństwa odgrywa dużą rolę. Na bieżąco w świecie prowadzi się prace nad około 300 normami i innych przepisami prawnymi. Ich przegląd zawiera na przykład praca [73].

5.5.2 Wybór architektury i wnioski Wybór odpowiedniego systemu dla konkretnego celu powinien się dokonywać według sprawdzonych kryteriów. Można w tym celu wykorzystać kryteria określone przez konsultantów z Gartner Group [30, 112]. Należą do nich między innymi:

• wydajność i skalowalność, sprawdzona i współczesna technologia,

Rozdział 5. Architektury komputerowe dla zastosowali przemysłowych 132__________________ __ ___ i komercyjJnych

• możliwość etapowej realizacji inwestycji poprzez rozbudowę instalacji pilotażowej,

• wysoka dostępność,

• popularność, dostępność i cena oprogramowania użytkowego,

• wymagany poziom integracji z istniejącymi zasobami,

• długowieczność systemu,

• wymagane nakłady finansowe,

• wizerunek produktu i producenta,

• aktualne umiejętności użytkownika,

• zakres i jakość usług producenta, serwis, usługi gwarancyjne i pogwarancyjne.

Wybór architektury zależny jest w dużej mierze od aplikacji, która ma być na niej uruchamiana. Dla obliczeń naukowo-technicznych jest to najczęściej typ cc-NUMA. Odpowiedniość architektury w zastosowiniu do wspomagania zarządzania przedstawia Tablica 5.2 (15, 30].

OLTP ogólnego przeznaczenia

OLTP i DSS średniej wielkości (do l TB)

DSS dużej skali (powyżej l TB)

SMP A B D cc-NUMA B B B/A PSMP C B A HAC A A C

Tablica 5.2: Poziom odpowiedniości rodzaju architektury w zależności od rodzaju aplikacji (w skali ocen od A-najbardziej odpowiednia do D-najmniej odpowiednia)

Analizując Tablicę 5.2 widać, że najbardziej uniwersalną architekturą jest SMP, która w przypadku perspektywy rozbudowy do PSMP, pokrywa zapotrzebowanie ze strony większości rodzajów komercyjnie wykorzystywanych aplikacji. Architektury typu cc-NUMA są mniej odpowiednie dla obsługi komercyjnych aplikacji niż SMP i PSMP.

5.5. Podsumowanie __ 133

W przypadku centrum komputerowego o dużym udziale przetwarzania transakcyjnego (np. systemy obsługi klienta w bankach czy firmach teleko-munikacyjnych) oraz aplikacji podtrzymywania decyzji lub eksploracji danych (business intelligence) (tj. DSS - dla biur menadżerskich, maklerskich, konsultingowych), korzystnie jest wykorzystywać komputery o architekturze SMP, a w przypadku wymaganej przez klientów większej mocy obliczeniowej na PSMP lub HAG wtedy, gdy względy niezawodności i bezpieczeństwa traktowane są jako pierwszoplanowe.

Przy podejmowaniu decyzji ważny jest również wizerunek producentów sprzętu i oprogramowania. Ich mocna pozycja finansowa wiąże się z popularnością produktu i jego nowoczesnością (ze względu na możliwość inwestycji w zakresie badań rozwojowych), a także z efektywną obsługą serwisową. Wszystkie te elementy wpływają na ochronę inwestycji użytkownika poczynionych przy zakupie sprzętu i oprogramowania.

Rozdział 8 stanowi dalsze rozszerzenie przedstawianej tematyki. Porównano w nim wybrane komputery oraz przedstawiono pewne zagadnienia ekonomiczne.

Rozdział 6

Systemy komputerowe wysokiej dostępności

6.1 Wymagania wysokiej dostępności

Podstawowym przeznaczeniem systemu komputerowego jest wspomaganie działalności przedsiębiorstwa lub instytucji, które system-eksploatuj ą. Wspo-maganie to może dotyczyć zarządzania z wykorzystaniem przetwarzania transakcyjnego lub eksploracji danych, a także realizacji usług sieciowych i obliczeniowych niezbędnych do wypełnienia celów stojących przed daną instytucją.

Podstawową cechą, którą powinny odznaczać się systemy komputerowe stosowane w takim zakresie problemowym, jest wysoka dostępność systemu, przejawiająca się ciągłością pracy sprzętu i zainstalowanych aplikacji. Systemy tego typu stosowane są także w instytucjach o charakterze rządowym i militarnym.

Bezpieczeństwo danych polega na ich ochronie przed przypadkowym bądź umyślnym zniszczeniem, ujawnieniem lub modyfikacją. Przez środki bezpie-czeństwa w systemach komputerowych należy rozumieć zabezpieczenia tech-nologiczne i środki administracyjne, które można zastosować w sprzęcie kom-puterowym, aplikacjach i danych dla zapewnienia ochrony interesów przed-siębiorstwa lub instytucji.

Na podstawie wieloletnich doświadczeń określono kilka podstawowych czynników będących przyczyną awarii, czyli stanu, w którym działanie systemu odbiega od założeń projektowych. Tablica 6.1 przedstawia udział czynników przy standardowych konfiguracjach sprzętu i oprogramowania, bez dodatkowych zabezpieczeń podnoszących dostępność oferowanych usług.

135

Dane tego typu stanowią punkt wyjścia do rozważań w zakresie minimalizacji udziału awarii pochodzących od czynników innych niż ludzki. Zastosowanie systemów wysokiej dostępności w istotny sposób zmienia proporcje udziału czynników wywołujących awarie.

Czynnik Udział, [%] Sprzęt Oprogramowanie Ludzie Środowisko

40 30 20 10

Tablica 6.1: Udział czynników wywołujących awarie w warunkach standardowych

Mimo ogromnego postępu w zakresie technologii komputerowych oraz w organizacji pracy i produkcji (określanych przez międzynarodowe normy jakości IS09000), eliminacja prawdopodobieństwa wystąpienia uszkodzenia albo błędu elementu składowego systemu komputerowego jest niemożliwa. Dlatego bardziej interesująca jest możliwość uczynienia systemu zdolnym do przetrwania uszkodzeń elementów składowych. Wynika stąd konieczność stosowania dodatkowych metod i środków podnoszących wiarygodność systemu informatycznego i niezawodność jego eksploatacji.

Wiarygodność systemów informatycznych jest pojęciem bardzo pojemnym, wśród atrybutów wiarygodności wymienia się [42, 43]:

• niezawodność, dostępność systemu i tolerowanie błędów,

• nadmiarowość i diagnostyka istniejących błędów i usterek w systemie,

• bezpieczeństwo systemu w sytuacjach wyjątkowych,

• zabezpieczenie systemu przed niepowołanym dostępem do jego zasobów, zapewnienie poufności i integralności przetwarzanej lub przesyłanej informacji,

• przeżywalność systemu, określona jako odporność na wszelkiego typu zagrożenia, jakie mogą pojawić się w systemie.

Występujące w praktyce uszkodzenia ze względu na widoczność awarii można podzielić na [76]:

• uszkodzenia uciszające (ang. fail-silent faults), objawiające się zatrzymaniem procesu i brakiem dalszego działania,

6.1. Wymagania wysokciej dostępności ______ 137

• uszkodzenia bizantyjskie (ang. Byzantine faults), w wyniku których element lub proces pracują w sposób nieprawidłowy, trudny do weryfikacji.

Uszkodzenia bizantyjskie są znacznie trudniejsze do lokalizacji i usunięcia, w porównaniu z uszkodzeniami uciszającymi. Przykładem takiego uszkodzenia może być niewykryty błąd w oprogramowaniu.

Wady składowych systemu komputerowego pod względem trwałości awarii sklasyfikować można jako (np. [76]):

• wady przejściowe (ang. transient faults), występujące przejściowo w wyniku zakłócenia ze strony jakiegoś chwilowego istniejącego czynnika,

• wady nieciągłe (ang. intermittent faults), pojawiające się przypadkowo,

• wady trwałe (ang. permanent faults), obecne do czasu ich usunięcia.

Wpływ wad i uszkodzeń na działanie systemu można modelować stosując jakościową i ilościową analizę atrybutów wiarygodności. Jednym z modeli jest model przejść stanów, w którym wyróżnia się stany [42, 44]:

• dopuszczalne, określające standardowe warunki pracy systemu,

• kontrolowane, w których możliwe jest wystąpienie błędów oczekiwanych i dla których przewidziano odpowiednie strategie ich przezwyciężenia,

• zagrożenia, będące stanami nieoczekiwanymi wynikającymi zarówno z błędów przypadkowych, występujących losowo, jak i z błędów celowych, spowodowanych przez ingerencje z zewnątrz systemu,

• katastroficzne, powodujące wstrzymanie pracy systemu.

Jak wspomniano w Rozdziale l, szczególnym typem stanu nieoczekiwanego jest wystąpienie błędu nadciągającego, którego skutki są zazwyczaj bardzo rozległe. Przyczyną błędu nadciągającego może być niedeterministyczne działanie systemów i aplikacji, zwłaszcza rozproszonych, może on także być wynikiem niespójnych i niekompletnych informacji, nieuporządkowanego rozwoju systemów informatycznych oraz niesprawdzonych i niepełnych modyfikacji konfiguracji systemu i aplikacji. Eliminacja tego typu błędów jest przedsięwzięciem bardzo złożonym. Wymaga rozwinięcia metod monitorujących i prognozujących, a także symulacji zachowań systemu w sytuacjach szczególnych. Nadzieje wiąże się z rozwojem metod agentowych oraz rozbudowanych metod wnioskowania [42].

138 Rozdział 6. Systemy komputerowe wysokiej dostępności

Na uzyskanie wysokiej dostępności usług oferowanych przez system kom-puterowy wpływa zarówno niezawodność eksploatowanych aplikacji użytkowych i systemowych oraz niezawodność elementów sprzętowych (por. Tablica 6.1).

Problematyka jakości oprogramowania jest obecnie przedmiotem szerokich studiów, prac badawczych i implementacyjnych. Znajduje się w centrum zainteresowania firm komputerowych — producentów oprogramowania — zwłaszcza w przypadku ich ogólnoświatowego charakteru i zdalnej, mię-dzynarodowej współpracy. Stosunkowo niewiele pozycji literaturowych jest jeszcze poświęconych tej tematyce — jedną z nielicznych na rynku polskim jest opracowanie (21].

Typową metodą podniesienia dostępności jest zastosowanie redundancji, która dotyczyć może [76]:

• czasu, polegającą na powtórzeniu operacji w razie konieczności,

• informacji, poprzez użycie dodatkowych bitów, umożliwiających odtworzenie zniekształconych bitów, lub poprzez zasoby rezerwowe pozwalająca na rekonstrukcję zniszczonych lub utraconych danych,

• aktywnego zwielokrotnienia elementów sprzętowych lub dopuszczeniu zasobów rezerwowych (redundancja fizyczna).

Głównym przedmiotem rozważań objęto w niniejszym rozdziale metody redundancji fizycznej i redundancji informacji (z zastosowaniem zasobów re-zerwowych), gdyż są to elementy bezpośrednio wpływające na ciągłość pracy centrum informatycznego.

Segment rynku przemysł telekomunikacja banki i biura maklerskie biura maklerskie transport ubezpieczenia sprzedaż detaliczna Kategorie strat

utrata klientów utrata dochodów bezczynni pracownicy koszt odtworzenia zasobów kary umowne odpowiedzialność prawna zła opinia o firmie

Tablica 6.2: Przykładowe segmenty rynku dotknięte stratami w przypadku awarii systemu komputerowego i kategorie występujących strat

W zależności od rodzaju prowadzonej działalności różna może być wysokość strat spowodowanych awarią czy utratą danych. Segmenty rynku, w

6.1. Wymagania wysokiej dostępności ______ ___ __ 139

których notuje się największe straty (zarówno materialne jak i niematerialne), jak i kategorie tych strat umieszczono w Tablicy 6.2. Środki i narzędzia informatyki stosowane w wymienionych powyżej zastosowaniach wymagają wysokiej dostępności. Zastosowanie systemu zwiększającego bezpieczeństwo i zapobiegającego awarii ma dla firmy wartość niemal niewymierną.

Na przykład [71], z badań przeprowadzonych przez Uniwersytet w Teksasie w 1994r wynika, że 50% firm, które w wyniku katastrofy utraciły swoje dane upada natychmiast, a 90% w ciągu dwóch lat. Według szacunków firmy Oracie, średni koszt przerwy w pracy systemu stanowi 80 tysięcy dolarów za godzinę, natomiast dla firmy brokerskiej straty szacuje się na 6 min dolarów za godzinę nieplanowanej przerwy w pracy [86].

Warto zauważyć, że w przeszłości głównymi klientami systemów pracy ciągłej były w dużej mierze instytucje rządowe, firmy transportowe, giełdy i banki. Obecnie — wraz z wzrostem popularności Internetu, traktowanego jako medium integracyjne gospodarki — przedsiębiorstwa i instytucje muszą działać w sposób ciągły i niezawodny.

Dobrym przykładem jest firma Intel, zajmująca pierwsze miejsce pod względem obrotu w handlu elektronicznym [91]. Każdego miesiąca klienci z ponad 40 krajów składają przez Internet zamówienia o wartości około l miliarda dolarów. Sprawdzają jednocześnie wiele elementów: własności produktów, ceny dostępność, stan zamówienia i daty dostaw. Internet zmienia błyskawicznie świat biznesu. Dla realizacji tego typu usług niezbędne jest stosowanie systemów wysokiej dostępności.

6.1.1 System pracy ciągłej System pracy ciągłej jest to system komputerowy, który realizuje swoje funkcje bez znaczących przerw nawet w przypadku wystąpienia awarii1. Do jego budowy wykorzystuje się zazwyczaj kilka komputerów oraz pamięci masowe odpowiedniej konstrukcji. W każdym elemencie składowym uwzględnia się szczególne wymagania, wśród których wymienia się:

• niezawodność (ang. reliability),

• dostępność, zwana także dyspozycyjnością (ang. availability),

• serwisowanie (ang. serviceability).

Zestaw tych wymagań określa się wspólna nazwą RAS. 1 Ogólne zasady bezpieczeństwa systemów określają normy, m.in. IEC15Ó8 [82].

140 Rozdział 6. Systemy komputerowe wysokiej dostępności

Niezawodność określa się jako zdolność systemu lub elementu do realizacji funkcji przy zadanych warunkach w wybranym przedziale czasu. Przy analizie ilościowej posłużyć można się metodami statystycznymi i prawdopodobieństwem. Jednak takie podejście do niezawodności bywa czasem nadmiernie uproszczone. Problemem jest określenie odpowiedniej funkcji rozkładu zmiennych losowych, a także wybór operatorów dla opisu niezawodności układów złożonych [76]. Zagadnienia niezawodności systemów komputerowych posiadają obszerną bibliografię prac teoretycznych (por. pozycję [50] i odsyłacze w niej zawarte).

Używaną w praktyce miarą niezawodności jest statystycznie określony średni czas między uszkodzeniami, MTBF, w skład którego wchodzą: czas do wystąpienia uszkodzenia MTTF oraz czas dla usunięcia uszkodzenia, MTTR2. Ostatni z wymienionych parametrów jest miarą serwisowania. Niezawodność jest funkcją odpowiedniego projektu, selekcji elementów oraz odpowiedniej jakości procesu produkcyjnego.

Dostępność jest określona jako procent czasu, w jakim system komputerowy może być wykorzystywany przez użytkownika, czyli jest zdatny do użytku (nie uwzględniając planowanych przerw) [76]. W stosunku do niezawodności, dostępność jest pojęciem bardziej inżynierskim i dotyczy stanów pracy systemu, które pozwalają na realizację zadań w warunkach częściowej awarii. Można ją interpretować także jako prawdopodobieństwo uniknięcia wstrzymania pracy. Na dostępność wpływają poszczególne składowe, ale również odpowiednia struktura systemu — wyposażenie go w dodatkowe elementy (por. wzór 6.1 i Tablicę 6.3).

Systemy, w których występują wysoka niezawodność, dostępność oraz krótki czas naprawy elementu nazywa się systemami RAS. Inne określenia systemów tej klasy to: systemy odporne na awarie, systemy odporne na katastrofy, systemy 24x365 lub systemy o wysokiej dostępności. Precyzyjna kategoryzacja wyżej wymienionych nazw wynika wartości parametru dostępności wyrażaiacego się wzorem:

gdzie:

A - dostępność, t - czas (w godz.) nieplanowanych przerw w roku. Tablica 6.3 przedstawia długości nieplanowanych przerw w pracy dla systemów

o różnej dostępności oraz ich kategorie. rozwinięcia skrótów (ang.): Mean Time Between Failures, Mean Time To Failure, Mew Time

To Reair.

6.2. Wprowadzenie w zagadnienia projektowania, 141

Dostępność A[%]

Czas niedostępności w roku

Kategoria systemów

95 98 17.5 dnia 7 dni standardowe (basie reliability)

99 3.5dnia 99.9 99.99 9 godzin l godzina wysokiej dostępności (highly

available)99.999 5 minut odporne na uszkodzenia (fault

tolerant)

Tablica 6.3: Typowe wartości dostępności i kategorie systemów

Warto zwrócić uwagę, że klasyfikacja systemów o wysokiej dostępności dokonywana jest na podstawie ułamka (0.001-0.00001) czasu całego roku. Z praktycznego punktu widzenia osiągnięcie takiego poziomu jest spektakularnym sukcesem inżynierskim. Zalecanym rozwiązaniem w instalacjach dla potrzeb przemysłowych lub komercyjnych jest gwarantowanie wysokiej dostępności na poziomie A = 99.9 — 99.99%. Gdy system zapewnia dostępność mniejszą (A <, 99%) - uważa się to za niewystarczające, przy A > 99.999% — systemy są bardzo kosztowne i przeznaczone do zastosowań strategicznych w sensie bezpieczeństwa krajowego lub ogólnoświatowego. Należy jednak wspomnieć, że niektórzy producenci sprzętu proponują w swoich rozwiązaniach poziom A = 99.999% również w zastosowaniach przemysłowych.

6.2 Wprowadzenie w zagadnienia projektowania Uzyskanie wysokiej dostępności systemu jest przedsięwzięciem złożonym merytorycznie i organizacyjnie. Na etapie wstępnym wymaga stosownego projektu systemu składającego się z odpowiednich elementów, zapewnienia współpracy serwisu producenta w trakcie eksploatacji oraz opracowania i stosowania strategii zabezpieczenia danych poprzez tworzenie kopii zapasowych i archiwizację.

W dalszym ciągu przedyskutowane zostaną niektóre z tych problemów.

6.2.1 Wymagania projektowe i redundancja Projektując system pracy ciągłej należy precyzyjnie określić:

• przeznaczenie systemu,

• dopuszczalny czas przerwy w pracy systemu,

• wielkość informacji, która może zostać stracona w wyniku awarii.

Przeznaczenie systemu określa wymagany poziom dostępności. Dwie ostatnio wymienione cechy określają podatność systemu na odtworzenie ciągłości pracy po wystąpieniu awarii. Można je określić jako (np. [71]):

• granulacja odtwarzania - punkt od jakiego dane i transakcje muszą być odtworzone przed powtórnym rozpoczęciem pracy,

• czas odtwarzania - jak szybko system ma rozpocząć działanie po awarii.

Należy zwrócić uwagę na następujące czynniki:

• brak pojedynczych punktów uszkodzeń,

• wykrywanie uszkodzeń i szybką reakcję na uszkodzenia,

• wspomaganie planowanych czynności obsługowych.

Pojedynczym punktem uszkodzenia (ang. Single Point of Failure- SPF) jest element krytyczny mogący spowodować przerwę w pracy, jeśli ulegnie on uszkodzeniu. Przykładami SPF są komputer (procesor), dysk, sterowniki i kable, sieć, zasilanie. Metody eliminacji SPF zależą od elementów, które mogą powodować uszkodzenia. Pojedyncze komputery należy zastąpić gronami (klastrami) systemów, wykorzystać kopie lustrzane lub macierze dyskowe, zastosować nadmiarowe karty i połączenia, sieć komputerową zabezpieczyć łączami zapasowymi, a zasilanie energetyczne zasilaczami awaryjnymi.

Redundantność jest podstawą wysokiej dostępności. Aby przybliżyć jej ideę, korzystnie jest spojrzeć na cały system informatyczny jako układ 6 komponentów (por. Rys. 6.1), w którym zachodzi realizacja transakcji.

Zapytanie ze strony użytkownika formułowane jest z pomocą warstwy klienta systemu klient-serwer. Jest ono przetworzone przez aplikację i kierowane do obsługi przez system zarządzania bazą danych, który realizuje swoje funkcje w oparciu o warstwy systemu operacyjnego (operacje w systemie plików), sprzętu oraz zasobów dyskowych (operacje dyskowe).

Redundancja poszczególnych komponentów systemu informatycznego może być realizowana na wiele sposobów dając w rezultacie systemy różniące się odpornością na wystąpienie awarii. W praktyce stosuje się systemy,

: Rysunek 6.1: Komponenty systemu informatycznego

które mają zapewnioną redundancję wielu różnych komponentów jednocześnie. Uzyskuje się w ten sposób system mogący spełnić wymagania nawet najbardziej wymagającego użytkownika.

Możliwa jest redundancja na poziomie [71]:

• zasobów dyskowych,

• sprzętu,

• systemu operacyjnego,

• baz danych,

• aplikacji,

• transakcji.

Redundancja na poziomie zasobów dyskowych. Mechanizm ten zapewnia replikacje na poziomie zasobów dyskowych. W podstawowym rozwiązaniu, każda operacja zapisu czy modyfikacji jest kierowana do dwóch (lub więcej) miejsc na nośniku magnetycznym (najczęściej na dwóch różnych dyskach). Jest to najbardziej oczywiste rozwiązanie zapewniające zwiększone bezpieczeństwo danych, powszechnie znane jako dyski lustrzane (ang. mirroring).

Bardziej wyrafinowaną technologią zapewniającą bezpieczeństwo danych na poziomie sprzętowym z wykorzystaniem specjalizowanego procesora (kontrolera) dyskowego jest wykorzystanie zespołu dysków w jednym z trybów

144 _______Rozdział6. Systemy kompu terowe wysokiej dostępności

RAID [60] (ang. Redundant Array of Independent Disks). Mechanizm ten pozwala nie tylko zwiększyć bezpieczeństwo danych, ale także zapewnia znaczną elastyczność konfiguracji. W zależności od struktury danych i typu przetwarzania może także oferować zwiększoną wydajność.

Tryb RAID i dyski lustrzane są zazwyczaj implementowane lokalnie. Ograniczenie to wynika z najczęściej stosowanej technologii SCSI dla obsługi sterowników. Dla ochrony przed skutkami rozległych zniszczeń (np. w wyniku katastrofy) stosuje się sterowniki obsługujące inny protokół lub macierze dyskowe umożliwiające rozproszenie danych (omówione dalej).

Zaletą stosowania replikacji na poziomie dysków jest przezroczystość z punktu widzenia aplikacji czy systemu bazy danych. Wybór pomiędzy dyskami lustrzanymi, a układami typu RAID zależny jest od wielkości przechowywanych danych (oraz charakterystyki ich wykorzystania). Dla małych i średnich pojemności (do kilkuset GB) preferowanym rozwiązaniem są dyski lustrzane udostępniające wyższą przepustowość, przy większych pojemnościach układy RAID są rozwiązaniem korzystniejszym technologicznie i ekonomicznie.

Redundancja na poziomie sprzętu. Ta klasa systemów określana jest mianem systemów odpornych na uszkodzenia (por. Tablica 6.3). W klasycznej konstrukcji tego typu wszystkie komponenty sprzętowe komputera są zduplikowane i w wypadku awarii jakiegokolwiek z nich w przeciągu zaledwie kilku cykli maszynowych następuje aktywacja zapasowego komputera, cały czas pracującego równolegle pod nadzorem wspólnego systemu operacyjnego.

Rozwiązania tego typu wymagane są na przykład w zastosowaniach lotniczych lub problematyce bezpieczeństwa krajowego lub międzynarodowego. Jednak ze względu na małą odporność na rozległe zniszczenia wymagana jest dodatkowa ochrona mechaniczna, np. bunkier. Istotnymi cechami jest bardzo wysoki koszt inwestycji i stosunkowo często występujące niestandardowe rozwiązania na poziomie systemu operacyjnego.

Redundancja na poziomie systemu operacyjnego. Rozwiązaniem, które zapewnia redundancje na poziomie całych systemów komputerowych rozumianych jako sprzęt i oprogramowanie systemowe są klastry wysokiej dostępności (HAC), w których zasobami współdzielonymi są najczęściej pamięci masowe (por. Rozdział 5.4.4). Określają one klasę systemów wysokiej dostępności (Tablica 6.3). W przypadku awarii jednego z komputerów kla-stra aplikacja jest z niego przenoszona automatycznie na inne komputery z uwzględnieniem równoważenia obciążenia. Przykładowe implementacje architektury HAC przybliża Rozdział 6.6.

6.2. Wprowadzenie w zagadnienia projektowania 145

Redundancja na poziomie baz danych. Redundancja (replikacja) na poziomie bazy danych jest implementowana jako pewna konfiguracja systemu zarządzania bazą danych, w której zawartość jednej bazy jest w sposób automatyczny kopiowana do innej bazy danych (na innym komputerze). Wyróżnia się dwa rodzaje takiej replikacji:

• asynchroniczna, stosowana do dystrybucji zmian dokonanych w bazie centralnej do baz regionalnych; zazwyczaj odbywa się ona raz na dzień,

• synchroniczna, w której dokonuje się kopiowania każdej transakcji; ta możliwość udostępniana jest dopiero od niedawna przez różnych producentów systemów zarządzania bazami danych.

Zaletą replikacji synchronicznej jest przezroczystość z punktu widzenia sprzętu i użytkownika końcowego. Wadą jest znaczna ilość replikowanych danych i generowane obciążenie systemu.

Redundancja na poziomie aplikacji. Rozwiązanie to jest głównym zadaniem monitorów transakcyjnych, polegającym na zarządzaniu procesami realizującymi logikę transakcji. Jedną z jego cech jest gospodarka procesami zapasowymi i przekazywanie do nich sterowania przy awarii procesów pierwotnych. W przypadku występowania tych procesów na różnych maszynach, obsługa aktualnego zapytania ulega przerwaniu.

Zaletą rozwiązań tego typu jest replikacja na wysokim poziomie jednostki granulacji. Wadą natomiast konieczność utworzenia aplikacji z uwzględnieniem cech wybranego monitora transakcyjnego.

Redundancja na poziomie transakcji. Rozwiązaniem jeszcze bardziej zaawansowanym jest pełna replikacja transakcji od momentu opuszczenia aplikacji użytkownika końcowego. Jest to możliwe dzięki wykorzystaniu oprogramowania o wielowarstwowej architekturze, kontrolującego transakcję przebiegającą od aplikacji użytkownika końcowego poprzez aplikację z logiką przetwarzania, aż po bazę danych. Idea takiego systemu opiera się na założeniu, że użytkownik ma zagwarantowane wykonanie swojej transakcji bez względu na awarię sprzętu i oprogramowania (poprzez które transakcja przechodzi), o ile oczywiście nie dotyczą one jego własnego komputera typu klient.

Rozwiązania tego typu są jeszcze stosunkowo mało popularne, a istniejące — stosuje się do bardzo wymagających przedsięwzięć. Jednym z przykładów jest obsługa giełdy.

146 Rozdział 6. Systemy komputerowe wysokiej dostępności

6.2.2 Usługi serwisowe W systemie pracy ciągłej, oprócz wymagań dotyczących niezawodności elementów oraz zapewnienia stosownego poziomu dostępności usług (por. Rozdział 6.1,1), ważny jest także poziom usług serwisowych. W tej dziedzinie producenci sprzętu oferują zazwyczaj kilka wariantów dla użytkowników systemów komercyjnych:

• Pakiet podstawowy - stosowany dla odbiorców wymagających tylko reaktywnego wsparcia i nie potrzebujących dedykowanej aktywnej pomocy. Typowym przykładem jest czas reakcji serwisu producenta na zgłoszenie awarii wynoszący 4 godziny przez każdą dobę w roku oraz wsparcie telefoniczne.

• Indywidualna obsługa systemowa - dedykowane wsparcie techniczne dla użytkowników systemów działających w zmieniających się środowiskach, wymagających indywidualnych porad i wsparcia.

• Obsługa systemów krytycznych - dla odbiorców, którzy wymagają skrajnie wysokiej niezawodności pracy dla swojego systemu komputerowego, a także dla użytkowników oczekujących od firmy zindywidualizowanego, aktywnego wsparcia i szybkiego rozwiązywania problemów. W tym zakresie oferowany jest rozszerzony bezpośredni kontakt z ekspertami technicznymi i priorytetowy dostęp do zasobów pomocy technicznej, podjęcie natychmiastowej naprawy w przypadku krytycznych problemów ze sprzętem oraz aktywne doradztwo w celu maksymalizacji wydajności i niezawodności kluczowych systemów. Przykładem jest gwarantowany czas naprawy uszkodzenia wynoszący 4 godziny od czasu zgłoszenia awarii.

W ostatnim przypadku usługa ze strony serwisu producenta jest bardzo kosztowna - jej cena może być porównywalna lub przewyższająca cenę zakupu sprzętu.

6.2.3 Wnioski Projektując system wysokiej dostępności należy wykonać szereg opracowań i analiz, takich jak na przykład:

• analiza stosowanych lub tworzonych aplikacji,

• opracowanie architektury systemu obejmującej zabezpieczenia przed awarią komputerów i ich elementów,

6.3. Pamięci masowe ______________________________147

• analiza i wybór poziomu usług serwisowych,

• analiza ekonomiczna możliwych rozwiązań,

• utworzenie planu implementacji i procedury eksploatacyjnej zarządzania systemami,

• określenie metod wykonywania kopii zapasowych danych i odtworzenia danych,

• ustalenie planu odtworzenia danych po zniszczeniu rozległym,

• przygotowanie planu szkoleń.

Podejmując decyzję o wyborze systemu należy kierować się dwoma kryteriami: kosztem sprzętu i oprogramowania oraz wielkością strat spowodowanych niedostępnością aplikacji lub/i danych.

6.3 Pamięci masowe W Tablicy 6.4 umieszczono porównanie podstawowych parametrów typowych pamięci masowych, z uwzględnieniem dysków magnetycznych, dysków magnetooptycznych oraz taśm magnetycznych najpopularniejszych standardów. Dyski magnetyczne używane są w trybie on-line, natomiast z pomocą pozostałych rodzajów pamięci masowych tworzone są różne rodzaje podsystemów zwiększających bezpieczeństwo danych. Problematyka ta przedstawiona jest szerzej w Rozdziale 7.

Medium

Typowa pojemność [GB]

Średni czas dostępu

Typowa przepustowość [MB/s]

Stopa błędu

Dysk magnetyczny

Dysk magnetooptyczny

Taśma DDS3

Taśma DLT7000

18

5.2

12

35

8 ms

35 ms

40 s

45 s

15 4.6(odczyt)2.3(zapis)

1.2

5

10-14

10-14

10-14

10-17

Tablica 6.4: Porównanie podstawowych parametrów typowych pamięci masowych

148 Rozdział 6. Systemy komputerowe wysokiej dostępności

6.3.1 Magistrale pamięci masowej Jednym z elementów mających duży wpływ na wydajność systemu, a także na jego dostępność jest pamięć masowa wchodząca w skład systemu komputerowego. Aktualnie realizowanych jest kilka protokołów komunikacji komputera z pamięcią masową, z których typowe ukazano w Tablicy 6.5.

Standard SCSI (ang. Smali Computer System Interface) jest odpowiedni do lokalnych połączeń komputera z zewnętrznymi nośnikami informacji. Magistrala SCSI pozwala na wykonywanie połączeń typu V (dwa komputery połączone z jednym urządzeniem). Kanały mogą być redundantne (zarówno w komputerze jak i w urządzeniu zewnętrznym umieszczonych jest dwa lub więcej sterowników) celem podniesienia niezawodności.

Używa się kilku rodzajów standardu SCSI, na przykład: SE (ang. Single Ended), FWD (ang. Fast Wide Differential) i Ultra2, różniących się szerokością magistrali, organizacja sygnałów elektrycznych oraz zasięgiem.

Dużą zaletą tego rozwiązania jest fakt, że jest ono uznanym standardem — umożliwia współpracę urządzeń pochodzących od różnych producentów. Wadami standardu SCSI są stosunkowo mała przepustowość (niezależnie od rodzaju), niewielka liczba urządzeń mogących współpracować z jedna magistralą oraz lokalny zasięg.

SCSI SE/FWD/Ultra2

Fibrę Channel 1

IBM SSA 2

Maksymalna przepustowość [MB/s]

5/20/80

200

80

Maksymalna liczba urządzeń

7/15/15

127

128

Maksymalna długość połączenia [m]

6/25/12

10000

2400

Tablica 6.5: Porównanie parametrów magistrali

Stosunkowo nowym standardem jest rozwiązanie FC (ang. Fibre Chan-nel), nie posiadające wad standardu SCSI; jest odpowiednie do zastosowań w systemach o wysokiej dostępności, zwłaszcza w takich, w których ze względów

1 Arbitrary loop, fulI duplex, z wykorzystaniem koncentratorów 2 wykorzystaniem Fibrę Optic Extenders

6.3. Pamięci masowe ___ __________ 149

bezpieczeństwa konieczne są połączenia na większe odległości (celem separacji zbiorów lub/i komputerów dla ochrony przed zniszczeniami rozległymi).

Rozwiązanie SSĄ (ang. Serial Storage Architecture), proponowane przez firmę IBM, cechuje się parametrami porównywalnymi z rozwiązanie FC, jednak jest rozwiązaniem własnościowym firmy [98]. Jest ono najczęściej stosowane w komputerach typu mainframe (superserwerach); w dalszym horyzoncie czasowym planuje się rezygnację z tego standardu na rzecz FC.

Najbardziej godnym polecenia są możliwości oferowane przez standard FC (z wykorzystaniem koncentratorów optycznych), w szczególności przepustowość i możliwość transmisji na duże odległości.

6.3.2 Podsystemy dysków magnetycznych Zgodnie z informacjami z Rozdziału 6.1.1, parametrem określającym niezawodność elementów jest czas bezawaryjnej pracy MTBF. W obecnych konstrukcjach dysków jest on rzędu 105 — 106 godzin. Statystyczny charakter MTBF oraz duża liczba dysków we współczesnych instalacjach powoduje, że w systemach przeznaczonych do zastosowań komercyjnych instaluje się dodatkowe układy oraz podejmuje się dodatkowe czynności mające na celu ochronę danych. W tym ostatnim przypadku ustala się strategię tworzenia kopii zapasowych i archiwizacji na nośnikach magnetycznych innych niż dyski (np. na taśmach magnetycznych, por. Rozdział 7). Tworzenie kopii zapasowych jest niezbędne mimo sprzętowego podniesienia niezawodności zbiorów dyskowych, gdyż dane mogą być usunięte z dysków przez przypadek lub awaria dysków może objąć więcej, niż jeden napęd dyskowy. Większość stosowanych rozwiązań podnoszących niezawodność dostępu do dysku implementuje bowiem obsługę sytuacji awaryjnej, w której uszkodzeniu ulega jeden napęd dyskowy.

Dyski lustrzane. Najczęściej stosowanym obecnie rozwiązaniem podnoszącym bezpieczeństwo danych w systemach informatycznych jest duplikowanie informacji przechowywanej w pamięci masowej. Dokonuje się tego stosując tzw. dyski zwierciadlane (ang. mirror disks). Zasada działania polega na zapisywaniu tej samej informacji na dwu lub więcej dyskach. Rozwiązanie zabezpiecza system przed brakiem dostępu do informacji z powodu fizycznego uszkodzenia dysku. Często dyski mogą być wymieniane podczas normalnej pracy systemu (ang. hot-swap). Dalsze zabezpieczenie uzyskuje się stosując w komputerze redundantne sterowniki dyskowe połączone niezależnymi magistralami SCSI z zestawem dysków, a także redundantne zasilacze i wentylatory.

Tego typu rozwiązanie sprzętowe wymaga odpowiedniego oprogramowania, które jest oferowane praktycznie przez wszystkich producentów. Zakres zastosowań do małych i średnich pojemności (do kilkuset GB) ogranicza mała efektywność wykorzystania pojemności dysków (50% przy dwóch dyskach) oraz niezależna adresacja napędów.

Macierze dyskowe RAID. Przy większych pojemnościach użytkowych jest to rozwiązanie preferowane pod względem ekonomicznym i technologicznym. Zostało zaprezentowane po raz pierwszy w pracy [60]. Przez macierz dyskową RAID rozumie się zespół dysków:

• wspólnie sterowanych z użyciem pojedynczego adresu,

• umieszczony we wspólnej obudowie z zasilaczem zapewniającym redun-dancję zasilania,

• wyposażony w inne elementy redundantne w celu zapewnienia wysokiej dostępności,

• wyposażony w dwa lub więcej sterowników we/wy,

• wyposażony w pamięć podręczną (z podtrzymywaniem bateryjnym) i dedykowany procesor w celu przyspieszenia komunikacji,

• skonfigurowanych tak, by zminimalizować możliwość utraty informacji w wyniku awarii pojedynczego dysku (sprzętowa realizacja standardu RAID).

Istnieje kilka odmian (trybów) pracy (por. Tablica 6.6). Wykorzystanie powierzchni dyskowej w przypadku macierzy dyskowej jest lepsze, niż w kla-sycznym układzie dysków lustrzanych.

Najważniejszą korzyścią jest zapewnienie pracy ciągłej systemu — dzięki zapisywaniu dodatkowych bajtów kontrolnych uzyskuje się kontynuację pracy w przypadku awarii jednego z dysków. Po wymianie uszkodzonego dysku na nowy (bez przerywania pracy systemu) dane są odtwarzane na nowym dysku. Cała operacja jest niezależna od systemu operacyjnego.

Dla przykładu załóżmy, że w przypadku macierzy trzech dysków, dane są zapisywane z przeplotem dyskowym (ang. stripping) na dwóch dyskach, a trzeci, dodatkowy dysk, wykorzystywany jest do przechowywania bajtów kontrolnych, określonych jako różnica symetryczna (XOR). Tego typu sposób pracy macierzy określony jest jako RAID 3 (por. Tablice 6.6 i 6.7). Jeżeli

6.3. Pamięci masowe 151

RAID0

Dane są zapisywane z przeplotem dyskowym (stripping), tryb nie zapewnia redundancji danych, najszybszy ze względu na czas zapisu i odczytu.

RAID l

Określany jako tryb zwierciadlany, stosowany najczęściej z jednoczesnym przeplotem dyskowym; dane zapisywane są jednocześnie na pary dysków. Tryb zapewnia dużą szybkość, pełną redundancje danych, wymaga zwielokrotnienia liczby dysków.

RAID 2

Dane są zapisywane z przeplotem bitowym na grupie dysków, część dysków służy do przechowania kodów korekcyjnych. Tryb ten zapewnia pełną redundancje, ale jest wolniejszy od trybu RAID l.

RAID 3

Dane są zapisywane z przeplotem bitowym lub bajtowym, jeden z dysków przechowuje sumy KOR. Tryb zapewnia pełną redundancję i wysoką szybkość transmisji dużych bloków danych.

RAID 4

Dane dzielone są na bloki logiczne i zapisywane na grupie dysków z jednym dyskiem przeznaczonym dla sum KOR. Tryb zapewnia pełną redundancję i lepszą efektywność obsługi dużych bloków danych (w porównaniu do RAID 3)

RAID 5

Dane dzielone są na bloki logiczne i zapisywane na grupie dysków z rozproszonym cyklicznie zapisem sum KOR. Tryb zapewnia pełną redundancję. Jest zalecany do współpracy z systemami transakcyjnymi.

Tablica 6.6: Tryby pracy macierzy RAID

awarii ulega dodatkowy dysk, wtedy dostęp do danych pozostaje niezaburzony, natomiast w przypadku uszkodzenia jednego z dysków przechowujących dane — są one odbudowane na podstawie zachowanych danych i zbioru bajtów kontrolnych z dysku dodatkowego.

W przetwarzaniu transakcyjnym najczęściej stosuje się tryb RAID 5, cha-rakteryzujący się dobrą wydajnością w przypadku niewielkich bloków danych z dostępem przypadkowym (random). W trybie RAID 3 każda operacja odczytu lub zapisu angażuje wszystkie dyski macierzy (dlatego tryb ten jest odpowiedni dla dużych zbiorów danych), podczas gdy w trybie RAID 5 większość operacji realizowana jest z wykorzystaniem tylko jednego dysku macierzy (ze względu na rozproszenie zarówno danych jak i sum kontrolnych). Uzyskuje się w ten sposób możliwość jednoczesnej obsługi wielu żądań operacji (por. Tablica 6.7).

152 Rozdział 6. Systemy komputerowe wysokiej dostępności

RAID0 RAID1 RAID3 RAID5 Metoda

stripping

dyski zwierciadlane

równoległy dostęp do danych

niezależny dostęp do danych

Liczba dysków n 2n n+1 n+1 Ochrona danych brak bardzo wysoka wysoka wysoka Wydajność

wysoka

wysoka (odczyt) średnia (zapis)

średnia średnia1

Koszt2 niski wysoki średni średni

Tablica 6.7: Porównanie typowych trybów pracy RAID

Przy istotnie dominującym udziale operacji modyfikacji lub zapisu danych, rozproszenie danych i sum kontrolnych może doprowadzić do degradacji wydajności tej operacji. Każdy zapis wymaga bowiem czterech operacji — dwóch operacji odczytu w odniesieniu do nieaktualnych danych i sum kontrolnych oraz dwóch dla zapisu nowych danych i sum kontrolnych. Dla przeciwdziałania temu niekorzystnemu zjawisku, współczesne macierze wyposażone są w dużą, nieulotną pamięć podręczną. Przy mniejszych macierzach pojemność jej wynosi 32-64 MB, przy największych 2-16 GB. Podniesienie wydajności osiąga się także przez użycie kilku interfejsów dyskowych. Oprócz trybów opisanych w Tablicy 6.6 spotyka się także inne tryby, jak np. RAID 6 i RAID S, będące kombinacjami podstawowych trybów.

Kryterium wyboru odpowiedniego trybu RAID zależy od aplikacji (por. Tablica 6.8). Tryb RAID 3 powinno się stosować w przypadku pojedynczych odwołań do długich ciągów danych (operacje na dużych plikach wykonywane przez pojedynczy, sekwencyjny proces). Przykładami zastosowań są programy GAD, grafika komputerowa, multimedia i obliczenia naukowe. Tryb RAID 5 zapewnia wysoką wydajność w przypadku występowania wielu współbieżnych procesów odwołujących się do małych porcji informacji na dysku. W związku z tym jest on najlepszy dla systemów przetwarzania transakcyjnego w aplikacjach stosowanych przez banki, towarzystwa ubezpieczeniowe oraz inne instytucje masowej obsługi klientów.

Z przedstawionych rozważań wynika, że stosunkowo trudno jest dobrać tryb pracy macierzy w przypadku zróżnicowanego typu przetwarzania, jakie może mieć miejsce w centrum komputerowym ogólnego przeznaczenia. Dlatego niektórzy producenci oferują macierze, które w sposób automatyczny dostosowują tryb pracy do typu przetwarzania (AutoRAlD). Zwalnia to ad-

1 możliwa degradacja wydajności przy intensywnych operacjach zapisu 2 Odniesiony do jednostki pojemności

6.3. Pamięci masowe 153

Najniższy koszt (najlepsze wykorzystanie dysków)

RAID0

Najlepsza wydajność w przetwarzaniu transakcyjnym

RAID5

Największa szybkość w dostępie do dużych plików danych

RAID3

Dostępność danych RAID l, RAID 3, RAID 5

Tablica 6.8: Podsumowanie kryteriów wyboru trybu RAID

ministratora systemu od analizy obciążenia systemu i wyboru najkorzystniejszego trybu pracy.

Automatyczny tryb RAID polega na jednoczesnej implementacji w macierzy kilku trybów pracy, na przykład RAID l i RAID 5. W zależności od intensywności wykorzystania dane są migrowane między wymienionymi powyżej trybami, co wpływa na wzrost wydajności obsługi danych.

Zastosowanie macierzy dyskowych daje przede wszystkim istotne zwiększenie bezpieczeństwa danych W większości wypadków poprawie ulegają także parametry wydajnościowe w porównaniu z pojedynczymi dyskami.

Podsumowując, można stwierdzić, że macierze dyskowe są obecnie naj-efektywniejszym rozwiązaniem służącym do przechowywania danych o pojemności od kilkuset gigabajtów do kilku terabajtów oraz umożliwiającym bezpośredni dostęp i szybką transmisję danych z prędkością większą niż 20 MB/s.

6.3.3 Przykłady rozwiązań

Macierze dyskowe mogą być produkowane przez niezależne, specjalizowane firmy lub być oferowane przez producentów sprzętu komputerowego ogólnego przeznaczenia. Przykładem wytwórcy pierwszego typu jest firma EMC Symroetrix, drugiego - praktycznie wszyscy producenci sprzętu przeznaczonego do zastosowań komercyjnych.

Przedstawione macierze dyskowe można podzielić umownie na dwie klasy: macierze średniej wielkości (o pojemności od kilkuset gigabajtów do około dwóch terabajtów) oraz macierze duże (o większej pojemności). Tablice 6.9 i 6.10 pozwalają porównać podstawowe parametry techniczne macierzy w obu klasach.

W większości rozwiązań wykorzystywane są dyski o pojemności 18 lub 36 GB typu SCSI. Rzadko (np. StorageTek CLARiiON) wykorzystywane są

154 Rozdział 6. Systemy komputerowe wysokiej dostępności

Model

Maksymalna pojemność [GB]

Maksymalna pamięć podręczna [MB]

Sterowniki

Tryby RAID

EMC Symmetrbc 3330

579 8192 SCSI, FC l, S

HP SureStore E Disk Array 12H

437 192 SCSI, FC auto

HP SureStore E Disk Array FC60

2184 512 FC 0,1,5

STK CLARiiON FC5700

2160 1024 FC 0, l, 3, 5

IBM 2102 1080 512 FC 5

SUN StoreEdge A5100

1528 256 0, 1, 3, 5

Tablica 6.9: Zestawienie parametrów macierzy dyskowych średniej wielkości

Model

Maksymalna pojemność [GB]

Maksymalna pamięć podręczna [GB]

Sterowniki

Tryby RAID

EMC Symmetrix 3930

9267

16

SCSI, FC, ESCON

0. l, 5, S

HP SureStore E XP256 9472 16 SCSI, FC, ESCON

1,5

IBM

2520

4

SCSI, ESCON 5

SUN StoreEdge A7000

5860

4

SCSI, ESCON 0,1,5

Tablica 6.10: Zestawienie parametrów dużych macierzy dyskowych

6.4. Sieciowe zaplecze danych ____155

dyski z sterownikiem FC. Macierze średniej wielkości wyposażone są pamięć podręczną kontrolerów dyskowych o pojemności rzędu kilkuset MB (wyjątkiem jest macierz EMC Symmetrix 3330 - por. Tablica 6.9). W przypadku dużych macierzy pojemność ta często wynosi kilka lub kilkanaście gigabajtów. Pamięć ta często jest zduplikowana i pracuje w trybie kopii zwierciadlanych (mirroring).

Sterowniki FC posiadają większą przepustowość i mniejszą podatność na zakłócenia zewnętrzne, a także możliwość pracy w większym oddaleniu od komputera. Cechy te wpływają na podniesienie dostępności systemu. Macierze duże dodatkowo mogą wykorzystywać kanały ESCON, typowe dla maszyn IBM. Niektórzy producenci przewidują współpracę z systemami komputerowymi używającymi systemu WindowsNT.

Producenci macierzy przewidują dalszy ich rozwój w przyszłości. Planowane jest wykorzystanie dysków o pojemności 46-72 GB każdy, pamięci podręcznej o wielkości 32-64 GB oraz zwiększenie liczby sterowników FC (do 16-32), Rozwijane są systemy zarządzania oraz możliwości współpracy ze sprzętem pochodzącym od różnych producentów.

6.4 Sieciowe zaplecze danych Urządzenia NAS. Jednym z kierunków rozwoju są urządzenia sieciowe, zwane także serwerami danych lub węzłami NAS (ang. Network Attached Storage). W odróżnieniu od serwerów ogólnego przeznaczenia wypełniających zróżnicowane funkcje (np. obsługi aplikacji, kolejek urządzeń zewnętrznych, usług sieciowych) urządzenie typu NAS jest znacznie bardziej specjalizowane (np. [3]). Składa się ono z "lekkiego" serwera o ograniczonych możliwościach (ang. thin server), podsystemu pamięci masowej (np. dysków magnetycznych, czytników magnetooptycznych lub DVD) oraz oprogramowania udostępniającego te zasoby w sieci.

Serwery danych wyposażone w dyski magnetyczne ujawniają swoje zalety:

• w sytuacjach, w których wymagany jest intensywny przepływ danych:

— przy przeszukiwaniu wielkich baz danych, — wykonywaniu analiz na podstawie zgromadzonych danych,

• przy przetwarzaniu w czasie rzeczywistym, dla przykładu:

— w aplikacjach multimedialnych, — w transmisjach video lub wideokonferencjach,

156 Rozdział 6. Systemy .komputerowe wysokiej dostępności • w

przetwarzaniu wieloprocesorowym.

Serwery danych stanowią uzupełnienie systemów archiwizacji wykorzystujących roboty (taśmowe lub dysków magnetooptycznych). Mogą w tym wypadku być traktowane jako swojego rodzaju cache (lub bufor) pozwalając na szybki dostęp do najczęściej używanych danych. O problematyce tej szerzej traktuje Rozdział 7.

Jako przykłady wymienić można systemy produkcji Hewlett-Packard: HD Server 4000 (z 6 dyskami pracującymi w trybie RAID 5) oraz CD/DYD ROM Server (wyposażony w 7-34 napędy CD lub DVD), a także ATL LANvault obsługujący bibliotekę taśmową o pojemności 280 GB.

Zastosowanie NAS do udostępniania dźwięku, a zwłaszcza obrazu (strumieni standardu MPEG) wymaga spełnienia założonego poziomu usług (ang. Quality of Service). Niezbędny jest specjalizowany system operacyjny, którego rolą jest, m.in., odpowiednie rozłożenie danych na dyskach serwera (ang. stripping) oraz takie kolejkowanie zadań i ich obsługa, aby zachować wymagany poziom usług. Specjalizowane urządzenia tego typu (wideo-serwery) winny współpracować z siecią komputerową pozwalającą na transmisję danych multimedialnych (np. ATM). Jednym z producentów takich urządzeń jest SUN Microsystems.

Sieci SAN. Drugim kierunkiem rozwoju są sieci SAN (ang. Storage Area Network), służące wyłącznie do transmisji danych dużej objętości, w sposób oddzielny od sygnałów sterujących przesyłanych siecią LAN. Elementami sieci SAN są urządzenia pamięci masowej wykorzystujące protokoły zapewniające dużą przepustowość (np. Fibrę Channel) do których dostęp posiadają serwery sieci LAN. Jest to koncepcja, która będzie stosowana już w niedalekiej przyszłości.

6.5 Implementacja wymagań RAS Współczesne komputery budowane są z wykorzystaniem wymagań RAS (por. Rozdział 6.1.1). Wyposażone są w redundantne elementy podnoszące dostępność systemu. Należą do nich zasilacze, sterowniki, dyski z podsystemami minimalizującymi możliwość utraty danych (por. Rozdział 6.3), wiele procesorów współpracujących z warstwą sieciową odporną na uszkodzenia (patrz Rozdział 4.3.5 i Tablica 4.1), pamięć operacyjna z korekcją błędów (typu ECC). Istotnym elementem jest system operacyjny przemysłowego standardu.

6.5. ImpJementacJa wymagań RAS________________________157

Dobrymi przykładami maszyn tego typu są: serwery SUŃ E6500 i E10000, IBM RS6000 M80, S80 oraz HP N4000 i V2500. Również w konstrukcji komputerów klasy podstawowej występują rozwiązania podnoszące dyspozycyjność, poprzednio stosowane jedynie w maszynach wyższych klas. Na przykład w serwerze klasy L produkcji firmy Hewlett-Packard wprowadzono zintegrowaną obsługę błędów polegającą na wykorzystaniu następujących elementów:

• system monitorowania pracy komputera, wyposażony w oddzielny procesor z funkcją powiadamiania administratora,

• pamięć operacyjna i pamięć podręczna procesorów (typu ECC) posiadają możliwość korekcji błędów,

• system wyposażony został w możliwości dynamicznej dealokacji procesorów lub modułów pamięci, mające na celu unikanie sytuacji awaryjnych,

• wprowadzono oddzielne podsystemy magistrali i sterownika dla dysków lustrzanych,

• zastosowano możliwość wymiany elementów lub uzupełnienia konfiguracji podczas pracy - redundantne zasilacze, wentylatory i urządzenia zewnętrzne typu hot-swap,

• oferuje się przedłużoną obsługę gwarancyjną w okresie 3 lat.

6.5.1 Przykłady rozwiązań Konstrukcje komputerów średniego poziomu (średniej klasy) są do siebie zbliżone. Pamięć operacyjna jest wspólna, wykorzystuje się magistralę systemową jako warstwę sieciową. System operacyjny oferuje model przetwarzania typu SMP.

Znacznie bardziej interesujące są konstrukcje komputerów z klasy wysokiego poziomu (high-end). Różnice między nimi są bardziej zauważalne.

SUŃ E10000. Architektura E10000 StarFire została opracowana przez firmę Cray w postaci komputera CS6400, którego projekt został następnie zmodyfikowany przez firmę SUN Microsystems. Podstawowym elementem jest płyta systemowa, czyli moduł 4 procesorów UltraSPARC II (336 lub 400 MHz) z pamięcią podręczną drugiego poziomu wynoszącą 4/8 MB dla instrukcji i danych odpowiednio, czterema bankami pamięci operacyjnej oraz sterownikami SBus [7, 135, 136]. Warstwa komunikacyjna wewnątrz modułu

158 Rozdział 6. Systemy komputerowe wysokiej dostępności

(przełącznica krzyżowa Ultra Port Architecture - UPA) zapewnia komunikację pomiędzy elementami modułu a jego otoczeniem. Warstwa komunikacyjna między modułami zaprojektowana zgodnie ze standardem UPA, implementuje rozdział transakcji adresów od transakcji danych (por. Rys. 6.2). Adresy przesyłane są z wykorzystaniem 4 magistrali, podczas gdy dane - z użyciem przełącznicy krzyżowej (Gigaplane-XB) o wymiarze 16x16. Przepustowość warstwy komunikacyjnej w odniesieniu do danych wynosi 12.8 GB/s z opóźnieniem mniejszym niż 500 ns.

Rysunek 6.2: Ogólny schemat architektury komputera E10000

Ponieważ maszyna realizuje model obliczeniowy typu SMP, nie ma możliwości bezpośredniego wykorzystania danych generowanych wewnątrz modułu przez inny procesor tego modułu. Każde przesłanie musi angażować procedury komunikacji między modułami.

Dozwolona jest dynamiczna definicja i rekonfiguracja logicznie izolowanych domen (partycji) w systemie, z których każda jest traktowana jako oddzielny komputer z własną kopią systemu operacyjnego. Zapewniona jest wysoka dostępność poprzez wbudowane elementy nadmiarowe, co pozwala na pracę przy częściowej awarii magistral adresowych i przełącznicy krzyżowej, a także uszkodzeniu elementów poszczególnych domen. Organizacja domen, weryfikacja stanu pracy, automatyczne testowanie elementów oraz niemal wszystkie prace systemowe (również sprzętowe) mogą być realizowane przy pracującej maszynie z wykorzystaniem komputera zarządzającego (ang. System Service Processor).

Elementy RAS obejmują, m.in., oddzielny procesor nadzorujący pracę

6.5. Implementacja, wymagań RAS 159

systemu, redundantne, rozproszone układy zasilania i chłodzenia, pamięć typu ECC, śledzenie przepływu i temperatury powietrza chłodzącego i napięć zasilających, automatyczną realizację procedur włączania i wyłączania, nadmiarowe elementy konfiguracji oraz wymianę elementów podczas pracy. Pewnym niedostatkiem architektury jest realizacja warstwy komunikacyjnej Gigaplane-XB, stanowiąca pojedynczy punkt uszkodzeń.

Planuje się rozwój architektury komputera E10000 w kierunku cc-NUMA, większej liczby procesorów (do 72) następnej generacji (UltraSPARCIII 600 MHz i kolejne) oraz wzrost przepustowości przełącznicy krzyżowej.

HP V2500. Komputer w pełnej konfiguracji V2500SCA stanowi rozwinięcie architektury ccNUMA z wielowarstwową siecią komunikacyjną o dostępie hierarchicznym, opracowanej przez firmę Convex (por. Rozdział 4.4). Podstawową jednostką konfiguracji jest (super-) węzeł SMP (Rys. 6.3) [140], w skład którego wchodzi do 8 modułów, zawierających po cztery procesory PA8500 (440 MHz) (lub PA8600, 552 MHz w wersji V2600) wraz z sterownikami PCI oraz pamięcią operacyjną. Komunikacja wewnątrz węzła odbywa się za pośrednictwem przełącznicy krzyżowej o wymiarze 8x8, przepustowości 15.36 GB/s i opóźnieniu 500 ns [72].

Rysunek 6.3: Ogólny schemat architektury komputera V2500SCA

Pełna konfiguracja maszyny (w wersji Scalable Computing Architecture - SCA), pracującej pod nadzorem jednej kopii systemu operacyjnego, może zawierać 4 węzły (128 procesorów) - o łącznej przepustowości przełącznic

160 Rozdział 6. Systemy komputerowe wysokiej dostępności

krzyżowych wynoszącej 61.6 GB/s - w topologii 2-wymiarowego torusa. Sche-matycznie połączenia te oznaczono przez X i Y na Rys. 6.3. Komunikacja wewnątrz węzła nie wymaga angażowania komunikacji między węzłami, stąd czas dostępu do danych w pamięci operacyjnej nie jest jednakowy i zależy od ich rozmieszczenia w stosunku do procesorów.

Możliwości konfiguracyjne przewidują także inny sposób wykorzystania, z większą autonomią węzłów zawierających oddzielne kopie systemu operacyjnego. Własność ta pozwala na zbudowanie klastra wysokiej dostępności (HyperPlex, por. Rozdział 6.6). Elementy RAS związane z poszczególnymi węzłami obejmują: wydajne procesory (co pozwala na stosowanie mniejszej ich liczby), pamięć typu ECC także w odniesieniu do pamięci podręcznej procesorów, elementy nadmiarowe zasilania i chłodzenia, sygnalizowanie uszkodzeń i automatyczne odłączenie uszkodzonych procesorów i modułów pamięci, możliwość wymiany uszkodzonych podzespołów podczas pracy. Producent planuje kolejny model z zakresu high-end, posiadający więcej procesorów i dynamiczną definicję partycji,

IBM S80. System S80 będący rozwinięciem systemu IBM S70/7A, stanowi odpowiedź na zapotrzebowanie w zakresie wydajnego komputera typu SMP3. Zasadnicza różnica polega na zastosowaniu wydajniejszych procesorów RS64III (o architekturze POWERPC i częstotliwości pracy 450 MHz), specjalizowanych pod kątem przetwarzania typu komercyjnego i wykonanych w technologii miedzianej, zwiększeniu ich liczby oraz rozwinięciu technologii warstwy komunikacyjnej. W maksymalnej konfiguracji komputer wyposażony jest w 4 moduły (płyty systemowe) zawierające po 6 procesorów wraz z pamięciami podręcznymi L2 (o pojemności 8 MB). Komunikacja z każdym modułem odbywa się za pośrednictwem dwóch magistral; dodatkowe dwie magistrale przeznaczone są do obsługi urządzeń wejścia/wyjścia. Zagregowana przepustowość warstwy komunikacyjnej (typu przełącznicy krzyżowej) osiąga 43.2 GB/s (w tym dostęp do pamięci operacyjnej stanowi 19.2 GB/s).

Elementy RAS dotyczą zastosowania pamięci operacyjnej i podręcznej procesorów typu ECC, nadmiarowego wyposażenia typu zasilacze i wentylatory. Rozwinięty jest system diagnostyczny w postaci procesora serwisowego dla monitorowania zmian temperatury oraz lokalizacji nadciągających uszkodzeń modułów pamięci, procesorów i innych podsystemów. Możliwa jest praca przy częściowej awarii.

Plany rozwojowe przewidują zwiększenie liczby procesorów (do 30-36),

'S80 stanowi przykład komputera z nowej rodziny, w której korzysta się z procesorów wykonanych w technologii półprzewodnikowej ze ścieżkami miedzianymi. Została ona wprowadzona na rynek w połowie roku 2000.

6.6. Klastry wysokiej dostępności__________________________161

zastosowanie kolejnych ich wersji, np. RS64 IV (wykonanych z użyciem nowej technologii Silicon on lnsulator, por. Rozdział 3.3) o częstotliwości rzędu iGHz, a także architektury NUMA z firmy Sequent z procesorami Intel o architekturze IA-32 i IA-64 [79].

IBM RS/6000SP SMP. Komputer RS/6000SP SMP reprezentując przykład architektury PSMP, zbudowany jest z kilkuprocesorowych węzłów obliczeniowych, z których każdy realizuje model przetwarzania typu SMP i wyposażony jest w lokalną pamięć operacyjną [129]. Obecnie używa się dwóch typów procesorów: POWERPC604e (o częstotliwości 332 MHz) oraz POWER3 (200-375+ MHz). Liczba procesorów wchodzących w skład węzła wynosi 2—8. Warstwa komunikacyjna jest realizowana z wykorzystaniem wielostopniowej sieci połączeń [72].

Ze względu na różnorodność procesorów, jak również ich liczby w węzłach, węzły mogą być one wykonane na kilka różnych sposobów, co objawia się różnicami w parametrach. I tak, dla przykładu dla węzłów złożonych z dwóch procesorów POWER3, dostęp do pamięci operacyjnej wewnątrz węzła dokonuje się z przepustowością 1.6 GB/s, natomiast przepustowość interfejsu wielostopniowej sieci połączeń wynosi 300 MB/s. W praktyce osiąga się mniejsze przepustowości sieci [72].

Elementy RAS obejmują, m. in., pamięć operacyjną i podręczną procesorów typu ECC, redundantne elementy o podwyższonej niezawodności, komputer sterujący dla potrzeb diagnostyki i lokalizacji uszkodzeń, a także - ze względu na implementowaną architekturę - elastyczność wykorzystania, również w strukturze HAC i łatwość rozbudowy. Plany rozwojowe obejmują, m.in., wykorzystanie modułów stosowanych w komputerach S80 oraz wzrost liczby procesorów (zwłaszcza POWER3) w węzłach SMP.

6.6 Klastry wysokiej dostępności Redundancja na poziomie zasobów dyskowych oraz implementacja elementów RAS w komputerach są koniecznymi lecz niewystarczającymi warunkami struktury systemu wysokiej dostępności. Aby zapewnić ciągłość pracy należy wprowadzić dodatkowe elementy w postaci nadmiarowego komputera, redundantnych sterowników (dyskowych i sieciowych) oraz sieci komputerowej, tworząc strukturę klastra HAC (por. Rozdział 5.4.4).

Praca systemu HAC polega na takim rozkładzie wymaganych aplikacji pomiędzy komputery (czyli węzły obliczeniowe) klastra, aby realizacja jednej lub kilku aplikacji wykonywana była w całości na jednym komputerze. Mogą

Rysunek 6.4: Schemat struktury HAG z redundancją komputerów

one być wykonywane równolegle (w ramach jednego węzła obliczeniowego), jeśli stosuje się węzły zapewniające przetwarzanie typu SMP o odpowiedniej wydajności. Rozkład aplikacji pomiędzy węzły klastra dokonywany jest z zachowaniem gruboziarnistego równoważenia obciążenia.

Warstwa sieciowa może być popularnego typu (np. Ethernet, FDDI) lub też implementować standardy mniej rozpowszechnione, takie jak Fibrę Channel. Istniejące rozwiązania pozwalają na stworzenie rozległych systemów.

Podstawowa konfiguracja systemu HAC przedstawiona jest schematycznie na Rys. 6.4. Jest ona wyposażona w macierz dyskową zapewniającą bezpieczeństwo danych na poziomie RAID, do której dostęp jest zorganizowany za pośrednictwem dwóch kontrolerów dyskowych każdego z komputerów. Istotnym elementem instalacji jest redundantna sieć, służąca także do automatycznej weryfikacji pracy każdego z komputerów z pomocą sygnału określającego ich działanie (ang. Heartbeat).

W typowych warunkach (przy braku awarii) każdy z komputerów wykonuje alokowane na nim aplikacje. W sytuacji awaryjnej (to jest przy braku sygnału heartbeat jednej z maszyn) stan aplikacji z uszkodzonej maszyny jest odtwarzany na drugiej maszynie klastra (lub na pozostałych maszynach — w przypadku większej ich liczby — z zachowaniem równoważenia obciążenia). Migracja aplikacji odbywa się z pomocą specjalizowanego, własnościowego oprogramowania, dedykowanego do systemu HAC danego producenta. Oprogramowanie korzysta z informacji pomocniczych zapisanych na dyskach. Zachowana jest ciągłość przetwarzania lecz ze zmniejszoną wydajnością. W dalszej części (Rozdział 6.7) zawarto więcej informacji na temat systemów zarządzania taką strukturą.

W rozbudowanych instalacjach stosuje się macierze dyskowe o dużej pojemności, posiadające szereg udogodnień eksploatacyjnych (por. Roz-

Rysunek 6.5: Przykład realizacji systemu HAC z redundancją na poziomie komputerów i macierzą odległą

dział 6.3.3). Podstawowa konfiguracja macierzy dopuszcza wykorzystanie kilku sterowników (Rys. 6.5), co wpływa na wzrost przepustowości systemu, a także pozwala na reorganizację wewnętrznej struktury połączeń dyskowych celem utworzenia grup dysków. Osiąga się dzięki temu możliwość (w warunkach pracy ciągłej) "zamrożenia" stanu zbiorów dla potrzeb utworzenia kopii zapasowej lub archiwizacji. W przykładowej realizacji rozdzielono redundantną sieć komputerową od łączy telekomunikacyjnych służących przesyłaniu sygnałów heartbeat.

Rozwiązania tego typu - w pełni bezpieczne ze względu na awarię kom-ponentów sieci - nie chronią systemu, a zwłaszcza danych przed katastrofą budynku spowodowaną pożarem, powodzią czy zawaleniem, a także przed przypadkowym usunięciem danych. Mimo, iż katastrofy zdarzają się rzadko (patrz Tablica 6.1), to jednak nie można ich całkowicie wykluczyć. Bezpośrednimi skutkami katastrofy mogą być: • fizyczne uszkodzenie sprzętu komputerowego,

• uszkodzenie łączy telekomunikacyjnych,

• utrata zasilania.

Wraz ze wzrostem znaczenia technologii informatycznej rośnie wartość danych przechowywanych w systemie komputerowym i wartość usług dostarczanych przez system. Dla zabezpieczenia danych można wykorzystać macierz odległą (Rys. 6.5), połączoną z macierzą podstawową dedykowanym.

Rysunek 6.6: Schemat struktury HAC z zasobami o rozproszonej lokalizacji

redundandnym kanałem. Rozwiązanie tego typu może mieć zasięg regionalny, na przykład dla macierzy firmy EMC Symmetrix i kanału SRDF (Symmetrix Remote Data Facility) odległość może wynosić kilkadziesiąt kilometrów4. Opcjonalnie można zastosować drugi komputer, pozwalający uzyskać dostęp do danych umieszczonych w macierzy odległej.

Wykorzystanie macierzy odległej jest w praktyce mało skuteczne. W przy-padku zniszczenia lokalizacji podstawowej, kontynuacja realizacji funkcji systemu możliwa jest dopiero po jego odbudowie i odtworzeniu danych z macierzy odległej. Skuteczniejszą metodą jest rozproszenie zasobów systemu HAC; schemat przykładowej instalacji przedstawiony jest na Rys. 6.6.

Wykorzystuje ona technikę światłowodową do połączenia odległych kom-puterów ze sobą z wykorzystaniem oprogramowania nadzorującego ich współ-pracę. Zasięg standardu FC dopuszcza rozkład zasobów w oddzielnych budynkach, oddalonych na odległość rzędu kilku kilometrów. Macierze dyskowe wyposażone są w sterowniki FC, wysoką dostępność uzyskuje się przez zduplikowanie kanałów dyskowych (z wykorzystaniem koncentratorów światłowodowych) oraz redundantną sieć komputerową. Podobny schemat zastosować można wykorzystując inne standardy telekomunikacyjne, na przykład dla zasięgu regionalnego sieć typu MAŃ ze standardem FDDI lub szybki kanał dyskowy (np. SRDF dla macierzy EMC Symmetrix).

W przedsięwzięciach o największych znaczeniach — np. strategicznych i militarnych — stosuje się systemy odporne na uszkodzenia (por. Tablica 6.3). Jedna z przykładowych realizacji przedstawiona jest na Rys. 6.7.

System składa się z dwóch układów HAC, o rozproszonych lokalizacjach,

4Inne metody zabezpieczenia danych przedstawiono w następnym rozdziale.

Rysunek 6.7: Przykład realizacji systemu odpornego na uszkodzenia

pracujących równolegle, przy czym użytkownicy korzystają jedynie z układu podstawowego. Ze względu na równoległą pracę obu układów, w przypadku uszkodzenia układu podstawowego, układ odległy przejmuje jego funkcje w czasie kilku cykli zegara, w sposób niezauważalny przez użytkowników.

Rozwiązanie tego typu, o najwyższym poziomie dostępności, jest jednak bardzo kosztowne i dlatego przewiduje się jego stosowanie w instalacjach o największym znaczeniu.

6.7 Systemy oprogramowania Jak wspomniano wcześniej używane są różne pakiety oprogramowania zarzą-dzającego dla uzyskania wysokiej dostępności z wykorzystaniem architektury HAG. Podstawowy schemat pracy takiego oprogramowania przedstawiono na Rys. 6.8.

Przedstawiony na schemacie system informatyczny składa się z trzech komputerów tworzących klaster typu HAC. Dla uproszczenia pamięć masowa systemu nie została ukazana. Oprogramowanie zarządzające dokonuje alokacji aplikacji na poszczególnych węzłach klastra z uwzględnieniem równomiernego rozkładu obciążenia. W przypadku wystąpienia awarii jednego z węzłów (np. komputera l), oprogramowanie zarządzające dokonuje automatycznej migracji aplikacji z węzła uszkodzonego do pozostałych węzłów - z zachowaniem równoważenia obciążenia. Migracja może zostać zadana także przez administratora systemu celem chwilowego wyłączenia jednego z węzłów

166 Rozdział 6. Systemy komputerowe wysokiej dostępności

Rysunek 6.8: Schemat działania oprogramowania zarządzającego systemem HAG

z eksploatacji dla dokonania prac systemowych. W praktyce możliwe są bardziej zaawansowane strategie pracy systemu. Węzły

obliczeniowe mogą być maszynami równoległymi typu SMP lub cc-NUMA albo poszczególne aplikacje mogą być realizowane w sposób rozproszony w odniesieniu do zasobów obliczeniowych lub/i systemów zarządzania bazami danych. W tym ostatnim przypadku cenna jest zdolność odtworzenia danych po katastrofach. Wariantowo - jeden z węzłów HAC może być jedynie w stanie gotowości. Możliwa jest więc praca w trybie symetrycznym lub asymetrycznym. Tematyka ta jest przedmiotem intensywnych prac o charakterze aplikacyjnym, np. [70].

Oprogramowanie zarządzające produkowane jest w większości przez wy-twórców sprzętu komputerowego (patrz Tablica 6.11).

Według [81] poziom funkcjonalności, jaki zapewniają poszczególne realizacje oprogramowania zarządzającego wynosi ~70%, przy czym korzystnie (o kilka procent) od średniej odbiegają produkty IBM. W ocenie na ostatniej pozycji występuje produkt firmy Data Generał.

Poziom funkcjonalności oprogramowania zależy od konkretnej realizacji, np. oprogramowanie HP MC/ServiceGuard potrafi wykryć awarię sprzętu (procesora, pamięci, sterowników sieciowych, kabli sieciowych), a także awarie systemu operacyjnego lub aplikacji. Czas odtworzenia w przypadku awarii sprzętu (np. sterownika sieciowego) jest rzędu kilku sekund. Czas odtworze-

Producent Nazwa i właściwości IBM

High Availability Cluster Multiprocessing (HACMP) (przeznaczone dla klastrów komputerów RS/6000) oprogramowanie systemu Parallel SYSPLEX (dla klastrów zbudowanych z superserwerów)

HP Multi Cluster SendceGuard (MC/SG) (dla komputerów serii HP9000)

SUN SUN Cluster (dla klastrów zbudowanych z maszyn Enterprise)

Compaq

NonStop Software (dla klastrów serwerów Himalaya) OpenVMS Cluster Software (dla maszyn pracujących pod systemem VMS)

Data Generał DG UX Clusters (dla maszyn serii AVxxxx)

Veritas

Cluster Server (VCS) produkt firmy niezależnej (maszyny NT, SUN i HP, planowane - IBM)

Tablica 6.11: Przykłady oprogramowania zarządzającego systemami HAG

nią typowej aplikacji typu komercyjnego na nowym węźle trwa kilkadziesiąt sekund. W czasie przenoszenia aplikacji z uszkodzonego węzła chronione są dane do których odwoływała się aplikacja tak, aby po przeniesieniu aplikacji zachowana była ich spójność i poprawność.

6.8 Podsumowanie W poprzednich podrozdziałach szczegółowo omówiono systemy wysokiej do-stępności - systemy wielokomputerowe, oprogramowanie zarządzające oraz macierze dyskowe. W każdym centrum informatycznym zachodzi jednak potrzeba archiwizacji danych. Wynika to z konieczności zabezpieczenia danych przed zniszczeniem lub przypadkowym usunięciem z systemu. Dlatego poza systemami pamięci masowych, z których dane dostępne są bezpośrednio w trybie on-line, w centrum informatycznym powinny znaleźć się urządzenia umożliwiające tworzenie kopii zapasowych lub pozwalające na przechowywanie zbiorów o większej pojemności. Do urządzeń tego typu należą automatyczne biblioteki (taśmowe i dysków magnetooptycznych). Problematyka ta jest przedstawiona w Rozdziale 7.

6.8. Podsumowanie 167

Rozdział 7

Składowanie i udostępnianie dużych zbiorów danych

7.1 Wstęp

Metody, środki i narzędzia obsługi potrzeb użytkowników w zakresie dużych zbiorów danych stanowią bardzo dynamicznie rozwijającą się problematykę. Ocenia się [3], że do roku 2001 nakłady finansowe przeznaczone na ten typ działalności przekroczą nakłady na rozwój serwerów rynku komercyjnego (typu Unix i WindowsNT/2000). Przewidywane jest także zachowanie przyrostu rocznego nakładów, wynoszącego 72%. Przy ich szacowaniu brane są pod uwagę trzy zasadnicze systemy zapisu informacji: układy dysków magnetycznych, systemy dysków optycznych i magnetooptycznych oraz taśmy magnetyczne.

Bezpieczeństwo danych polega na ich ochronie przed przypadkowym bądź umyślnym zniszczeniem, ujawnieniem lub modyfikacją. Przez środki bezpie-czeństwa w systemach komputerowych należy rozumieć zabezpieczenia tech-nologiczne i środki administracyjne przyjęte dla zapewnienia ochrony interesów danej instytucji. <; Informatyczne środki zapisu, przechowywania i udostępniania informacji zmieniają modele pracy przedsiębiorstw. Pozwalają przechowywać wszystkie dokumenty w formie elektronicznej, minimalizując koszty własne. Stają się one strategicznymi zasobami, pozwalając na wypełnienie różnorodnych norm jakości produkcji oraz zarządzania jakością [21].

Duże pamięci masowe o dostępie bezpośrednim on-line uzyskuje się drogą instalacji odpowiedniej liczby dysków magnetycznych, wyposażonych w układy podnoszące niezawodność pracy (por. Rozdział 6.3). Z doświad-

169

170 Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

czeń eksploatacyjnych wynika jednak, że wykorzystanie pamięci masowych jednego rodzaju jest niewystarczające.

Wprowadzenie redundancji i zabezpieczeń, a także stosownych konfiguracji systemowych, skutkujące utworzeniem systemów wysokiej dostępności (por. Rozdział 6) zmienia udziały poszczególnych czynników wywołujących awarie (Tablica 6.1). Dominującym (w 80-85%) staje się czynnik ludzki [85], a także złożone wpływy ze strony techniki i środowiska, trudne do przewidzenia i eliminacji.

Wystąpić mogą następujące czynniki:

• przypadkowe lub umyślne usunięcie danych z podsystemu dyskowego albo ich modyfikacja (czynnik ludzki),

• złożone awarie obejmujące kilka dysków lub/i sterowników,

• zanik zasilania energetycznego wraz z uszkodzeniem systemów awaryjnego podtrzymania napięcia podczas operacji na plikach,

• rozlegle awarie będące skutkami katastrof.

Dlatego też krytyczne dane powinny być archiwizowane na nośnikach taśmowych lub magnetooptycznych, najlepiej w kilku kopiach i przechowywane w rozproszonych lokalizacjach.

7.2 Przegląd problematyki zarządzania zbiorami wielkiej objętości

Wzrost znaczenia informacji powoduje, że w systemach informatycznych instaluje się dodatkowe układy oraz podejmuje się dodatkowe czynności mające na celu ochronę danych przed zniszczeniem lub utratą. Ustala się strategię tworzenia kopii zapasowych i archiwizacji na nośnikach magnetycznych innych niż dyski (np. na taśmach magnetycznych). Wynika to z faktu, iż większość stosowanych rozwiązań podnoszących niezawodność zbiorów dyskowych implementuje obsługę sytuacji awaryjnej, w której uszkodzeniu ulega tylko jeden napęd dyskowy (por. Rozdział 6.3.2).

Powszechnie stosowaną metodą zagwarantowania dostępności danych jest tworzenie kopii bezpieczeństwa (ang. backup). W małych systemach kompu-terowych często spotykane jest ręczne tworzenie kopii bezpieczeństwa na po-jedynczych taśmach. Większe instytucje powinny posiadać możliwość trwałego gromadzenia i zabezpieczenia danych w sposób automatyczny. Możliwość taką oferują nowoczesne, zautomatyzowane systemy pamięci masowych

7.2. Przegląd problematyki zarządzania, zbiorami wielkiej objętości ____171

pracujące z wykorzystaniem napędów taśmowych albo dysków magnetoop-tycznych (jednokrotnego lub wielokrotnego zapisu). Biblioteki takie nie tylko gwarantują pewność i bezpieczeństwo danych w systemie komputerowym, ale jednocześnie stwarzają możliwość praktycznie nieograniczonej przestrzeni dyskowej za pośrednictwem systemu zarządzania składowaniem hierarchicznym (ang. Hierarchical Storage Management - HSM). Rozwój tych urządzeń zmierza w kierunku wyposażenia ich w lekki serwer i utworzenia węzłów NAS lub elementów sieci SAN (por. Rozdział 6.4).

Wielkie aplikacje, jak np. hurtownie danych, systemy wspomagania po-dejmowania decyzji lub eksploracji danych (DSS), zbierają i przetwarzają lawinowo rosnące wolumeny danych. Szacuje się, że co roku ilość danych niemal podwaja się, co oznacza, że jest to tendencja o charakterze wykładniczym. Powstaje konieczność ciągłej rozbudowy systemów komputerowych i wyposażania ich w coraz to większe zasoby pamięci masowych. Aby nadążyć za tymi potrzebami konieczne jest wykorzystanie najnowszych technologii, owocujących rozwiązaniami o dużych pojemnościach i wysokiej wydajności.

Z badań przeprowadzonych przez firmę Odetics wynika, że 80% zbiorów jest wykorzystywanych rzadziej niż l raz na miesiąc. Konfrontując ten wynik z charakterystykami użytkowymi i cenowymi różnych typów pamięci masowych widać, jak duża rolę odgrywa odpowiednie zaprojektowanie, wykorzystywanie, a zwłaszcza zarządzanie systemami przechowywania danych. Odpowiedzią na potrzebę uzyskania dużych pojemności składowania danych jest zbudowanie systemu, złożonego z szybkich pamięci dyskowych i bibliotek taśmowych o dużej pojemności, zarządzanego przez oprogramowanie HSM.

7.2.1 Modele składowania i udostępniania danych Wyróżnia się trzy podstawowe modele:

• tworzenie kopii zapasowych danych - w celu zabezpieczenia danych przetwarzanych w systemie na wypadek awarii sprzętu, błędów w opro-gramowaniu czy błędów popełnionych w ich obsłudze; jest to zabezpieczenie okresowe, a pliki są modyfikowane,

• archiwizacja danych - występująca w przypadku potrzeby zachowania danych na długi okres czasu; jest to zabezpieczenie trwałe, a pliki są stabilne,

• składowanie hierarchiczne - stosowane w odniesieniu do hierarchicznych systemów składowania danych, zbudowanych z urządzeń o różnych charakterystykach pojemności i czasu dostępu do danych.

Składowanie danych jest jednym z elementów ich ochrony przed utratą i zniszczeniem - tak zwanym disaster recovery. Jest to podstawowy problem dla wszystkich organizacji, w których informacja i zgromadzone dane mają znaczenie strategiczne, a ich utrata może zagrozić podstawą funkcjonowania tych organizacji. Jak wskazują statystyki [53, 71], ponad 90% firm, które utraciły swoje dane, zmuszonych jest zrezygnować z działalności w okresie kilku lat po awarii.

Rodzaj kosztu Wielkość względna kosztuprzechowywania zarządzania odtworzenia

l 10 103+

Tablica 7.1: Porównanie względnych kosztów obsługi danych

W Tablicy 7.1 umieszczono porównanie kosztów przechowywania, zarządzania i odtworzenia danych przy zastosowaniu najkorzystniejszego cenowo nośnika. Wynika z niego, że koszt odtworzenia danych jest bardzo wysoki w porównaniu z kosztem przechowywania.

7.2.2 Porównanie parametrów nośników informacji i podstawowych urządzeń

W Tablicy 7.2 przedstawiono charakterystykę mediów i urządzeń innych niż pamięć dyskowa [3, 90]. Podane nie uwzględniają kompresji, która może zwiększyć użytkową pojemność dwu lub nawet czterokrotnie.

Jak można się spodziewać, różny jest koszt przechowywania jednostki informacji. Największy jest dla podsystemów dysków magnetycznych i macierzy RAID, a najmniejszy — dla taśm magnetycznych typu DLT. Miejsce pośrednie zajmują urządzenia wykorzystujące zapis magnetooptyczny.

Taśmy magnetyczne oraz napędy z ruchomą głowicą i zapisem spiralnym (ang. helical scan, np. 4 i 8 mm - powszechnie stosowane dzisiaj do tworzenia zapasowych kopii danych) cechują się niewielką ceną, stosunkowo dużą pojemnością oraz umiarkowanie wolnym dostępem. Są one używane w systemach średniego poziomu. W standardzie DAT planuje się wprowadzenie wersji DDS5 o pojemności 40 GB i przepustowości 3-6 MB/s.

Taśmy magnetyczne oraz napędy z nieruchomą głowicą o zapisie liniowym są bardziej kosztowne, lecz bardziej pojemne i bardziej wytrzymałe w eksploatacji w porównaniu do rozwiązań z ruchomą głowicą. Ich zakres zastosowań to systemy o dużej pojemności i wymaganej dużej niezawodności.

7.2. Przegląd problematyki zarządzania, zbiorami wielkiej objętości 173

Rodzaj nośnika

Pojemność bez kompresji [GB]

Przepus-towość [MB/s] (odczyt)

Średni czas

dostępu [s]

Żywotność głowicy [xl04 h]

Żywotność taśmy [xl0* liczba, przewinięć]

taśma 1.4" QIC

26

3

— —

taśma. 8mm Exabyte Mamooth LT

14

2

3.5

2

taśma 8mm Exabyte Mamooth 2

60

12

5

2

taśma 4mm DDS3 DAT

12

1

40

— —

taśma 4mm DDS4 DAT

20

3

50

— 0.2

taśma 3590 IBM Magstar

20

14

— —

DLT7000 Quantum

35 5 45 3 50-100

DLT8000 Quantum

40

6

60

5 50-100

SuperDLT 100+ 10+ - - - LTO HP Ultrium

100-200

10-30

- - 100

dysk MO 5.2 5-10 0.4 - - dysk MO 9.1 7.5-15 0.4 - - Tablica 7.2: Porównanie niektórych parametrów technicznych dla wybranych nośników i podstawowych urządzeń

Ocenia się, że trwałość zapisu na nośniku DDS4 wynosi 10 lat, a na taśmach DLT7000/DLT8000 - 30 lat.

Dyski magnetooptyczne (MO) cechuje duża trwałość i niezawodność nośnika, a także stosunkowo krótki czas dostępu, co rekompensuje w znacznym stopniu mniejszą pojemność i wyższy koszt przechowywania jednostki informacji w porównaniu z taśmami. Przewiduje się, że stanowić będą popularne elementy węzłów NAS (por. Rozdział 6.4). Wydaje się jednak, że najważniejszym rozwiązaniem w przyszłości staną się taśmy magnetyczne o zapisie liniowym (standardu SuperDLT i LTO) oferujące znaczne pojemności.

174 Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

7.3 Technologia zapisu liniowego Technologia zapisu liniowego, będąc standardem przemysłowym, dostarcza pojemności i jakości wymaganej przez aplikacje używające dużej ilości danych. Cechuje się dużą trwałością napędów i nośnika, oferując dobre metody detekcji i korekcji błędów. W rezultacie zapis liniowy przewyższa jakością zapis spiralny.

Implementacja technologii zapisu liniowego może być różna. Najpopular-niejszym standardem jest standard DLT (zaadoptowany przez firmę Quan-tum), którego nazwa wywodzi się wprost z nazwy technologii (ang. Digita1 Linear Tape). Inni producenci (np. Tandberg Data [137]) realizują zapis liniowy w odmienny sposób. Popularność zdobywa standard LTO (ang. Linear Tape Open, np. [3]), rozwijany we współpracy firm IBM, HP i Seagate. Poszczególne realizacje różnią się, między innymi, wymiarami kaset, szerokością taśmy i sposobem jej prowadzenia.

Technologia zapisu spiralnego zapisuje dane w ukośnych ścieżkach używając obrotowej głowicy bębnowej i powolnego mechanizmu napędzającego, co sprawia, iż charakteryzuje się dużą pojemnością, ale stosunkowo niskimi osiągami.

Rysunek 7.1: Idea zapisu taśmy w technologiach spiralnej i liniowej

Liniowa technologia taśmowa segmentuje nośnik w równoległe, poziome ścieżki, nagrywając dane przy użyciu stacjonarnej głowicy. Liniowe napędy taśmowe używając stacjonarnej głowicy osiągają prędkość taśmy rzędu 2.5 m/s podczas operacji odczytu i zapisu oraz uzyskują większą prędkość przy operacjach wyszukiwania.

W przypadku technologu DLT stosować można buforowanie w pamięci podręcznej w celu osiągnięcia maksymalnej wydajności. Cecha ta zwiększa ogólną przepustowość poprzez stałe monitorowanie prędkości przesyłu danych i dynamiczne dostosowywanie do niej operacji buforowania. Innym kryterium, które należy uwzględnić przy ocenie technologii taśmowych jest czas potrzebny do zlokalizowania pliku. Jest ono szczególnie ważne przy używaniu

7.4. Urządzenia, o dostępie pośrednim 175

aplikacji, które wymagają częstego odszukiwania plików. Technologia DLT minimalizuje czas szukania poprzez stworzenie indeksowego pliku znaczników umiejscowionego na logicznym końcu taśmy. Powierzchnia przeznaczona do zapisu na taśmach DLT jest znacząco większa, niż w przypadku innych technologii - na powyższą cechę składają się: szerokość taśmy wynosząca 1.27 cm oraz kaseta o jednej szpuli.

Technologia DLT redukuje prawdopodobieństwo wystąpienia błędu w długim okresie użytkowania oraz zmniejsza zużycie nośnika i napędu poprzez zapis liniowy, niewielkie napięcie taśm oraz minimalizację kontaktu pomiędzy głowicami odczytu/zapisu a medium. W przypadku wystąpienia błędu istnieje możliwość efektywnego odzysku danych na podstawie technik korekcyjnych typu ECC.

Konkurencyjna w stosunku do DLT technologia LTO stanowi jeszcze bardziej zaawansowane rozwiązanie. Udział trzech potentatów rynku komputerowego zapewnia jej rozwój w przyszłości. Zachowując zasadniczą koncepcję DLT, stosuje rozwiązania podnoszące niezawodność pracy i zachowujące trwałość nośnika. Odnosi się to, m.in., do części mechanicznej, w której wprowadzono udoskonalenia poprawiające transport nośnika, redundantność głowic oraz pamięć kasety zawierającą informacje o położeniu danych, co umożliwia szybki dostęp. Dalszy rozwój dotyczy zwiększenia pojemności jednej kasety do ponad 1TB i przepustowości urządzenia do 80-160 MB/s.

7.4 Urządzenia o dostępie pośrednim Pojęcie dostępu pośredniego (ang. near-line storage) pojawiło się w specjalistycznej literaturze wraz z opracowaniem automatycznych urządzeń obsługi nośników informacji. Przy braku automatyzacji nośniki musiały być obsługiwane przez operatora, definiując grupę nośników bez dostępu bezpośredniego (ang. off-line storage). Takim typowym nośnikiem jest kaseta z taśmą magnetyczną, której użycie wymaga wprowadzenia jej do urządzenia (np. stre-amera). Przeciwieństwem są nośniki z dostępem bezpośrednim (on-Line) — dyski magnetyczne.

7.4.1 Zautomatyzowane biblioteki W przypadku nośników o dostępie pośrednim dostęp do danych nie jest na-tychmiastowy. Następuje on po włożeniu taśmy lub dysku do czytnika w zautomatyzowany sposób. Najistotniejszymi przykładami takich urządzeń są zautomatyzowane biblioteki taśmowe oraz biblioteki dysków magnetooptycz-

176_______Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

nych (o tradycyjnej nazwie jukebox). W skład zautomatyzowanej biblioteki wchodzą trzy istotne elementy:

• magazyn nośników (taśm lub dysków),

• napęd(y) nośników,

• robot umożliwiający pobranie nośnika z magazynu oraz załadowanie go do napędu oraz powrotne odłożenie nośnika z napędu do magazynu.

Zautomatyzowane biblioteki wydają się być jedynymi dostępnymi rozwią-zaniami gwarantującymi posiadanie dużej ilości pamięci masowej. Możliwości ich rozbudowy i zwiększania ilości nośników zapewniają niezbyt kosztowny przyrost pojemności. Biblioteki taśmowe dostarczają pojemności mierzonych w terabajtach. Wprowadzone kilkanaście lat temu do świata maszyn typu mainframe i superkomputerów, automatyczne biblioteki taśmowe są coraz częściej używane w systemach otwartych. Stanowią istotny element infrastruktury informatycznej każdego centrum, przeznaczonego zarówno do realizacji obliczeń o charakterze naukowo-technicznym, jak również typu komercyjnego. W drugim przypadku oprócz zwiększenia dostępnej pojemności pamięci masowej dostarczają niezbędnego poziomu bezpieczeństwa danych.

7.4.2 Elementy integrujące Względy bezpieczeństwa danych wymagają często utworzenia rozbudowanej konfiguracji. Może to polegać na przestrzennym rozmieszczeniu poszczególnych elementów systemu lub wykorzystaniu bardziej rozbudowanej topologii połączeń. Dla realizacji transferu danych na większe odległości można zastosować technologię Fibre Channel, implementowaną w urządzeniu typu koncentrator. W innym, nietypowym przypadku, gdy zachodzi potrzeba dołączenia jednej biblioteki taśmowej do kilku serwerów archiwizacji stosuje się specjalizowane urządzenia (np. PL50 produkcji firmy ATL), które służyć mogą także do zestawienia połączeń awaryjnych w systemach o wielu bibliotekach.

7.4.3 Przykłady urządzeń Wśród przykładów przedstawiono automatyczne biblioteki taśmowe oraz dysków magnetooptycznych.

7.4. Urządzenia o dostępie pośrednim 177

Automatyczne biblioteki taśmowe. Są one urządzeniami w których występują zarówno elementy robotyki przemysłowej, sterowania cyfrowego, jak również układy transmisji danych. Przywiązuje się dużą wagę do części mechanicznej robota, jako elementu najbardziej zawodnego w tym układzie.

Firma ATL Products (wchodząca w skład konsorcjum Quantum) jest pro-ducentem specjalizującym się w bibliotach taśmowych z taśmami standardu DLT [103]. W wyniku przeprowadzonych przez nią badań, wśród elementów, wpływających na jakość pracy występują [90]:

• automatyczna kalibracja robota, wykonywana po zainstalowaniu nowych elementów, nie wymaga precyzyjnego ustawiania ręcznego,

• inteligentne pozycjonowanie taśm w stosunku do napędów oraz redukcja wpływów wibracji i zakłóceń zewnętrznych na pracę robota; do realizacji tych celów służy rozbudowany mechanizm obsługi kasety, uwzględniający transport kasety z użyciem dużej powierzchni styku chwytaka z obudową kasety oraz kontrolę czasu i siły używanej do załadowania kasety do napędu z eliminacją poślizgu,

• automatyczny inwentarz taśm, wykonywany na podstawie kodów paskowych umieszczonych na kasetach; etykiety oraz rodzaje kaset są zapamiętane w nieulotnej pamięci RAM dla wykorzystania przez oprogramowanie,

• możliwości współpracy z wieloma systemami komputerowymi.

Dla przykładu, w Tablicy 7.3 umieszczono parametry (bez kompresji danych) wybranych modeli bibliotek produkowanych przez firmy ATL Products i Hewlett-Packard. Większość modeli może występować w wykonaniu z mniejszą liczbą napędów i taśm, co pozwala uzyskać wiele możliwości konfiguracyjnych. W określeniu pojemności i przepustowości nie uwzględniono kompresji danych.

Dane podawane przez producentów ukazują wysoka niezawodność -MTBF wynosi 2 x 105 godzin, a MSBF1 - 106. Stopa błędów sprzętowych wynosi 10~14. Możliwe jest ich zarządzanie przez Internet, z wykorzystaniem przeglądarek sieciowych. Na przykład, w odniesieniu do bibliotek ATL korzysta się z oprogramowania firmowego WebAdmin, wykorzystującego przeglądarkę sieciową.

Biblioteki taśmowe HP SureStore są łatwo rozbudowywalne. Można korzystać z sterowników SCSI lub Fibre Channel. Technologia DLT może zostać 1Średnia liczba przeładowań napędów między uszkodzeniami (ang. Mean Swaps Be-tween Failure -

MSBF)

178 Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

Model

Liczba napędów

Liczba taśm

Pojemność biblioteki [GB]

Maksymalna przepustowość [GB/h]

ATL Products/DLT7000 L200

L500

P1000

7100

P3000

l

3

4

7

16

8

14

30

100

326

280

490

1050

3500

11400

18

54

72

126

288 HP SureStore/DLTSOOO 2/20

4/40

6/60

2

4

6

20

40

60

800

1600

2400

43

86

130

Tablica 7.3: Główne parametry przykładowych modeli bibliotek taśmowych

zastąpiona technologią LTO lub SuperDLT. Zastosowanie elementów zezwa-lających na wymianę podczas pracy podnosi dostępność urządzenia.

Na rynku obecne są rozwiązania także innych firm. IBM produkuje biblioteki, w których wykorzystuje się technologię zapisu spiralnego. Tandberg Data [137] wytwarza biblioteki taśmowe implementujące kasety i zapis liniowy innego standardu niż DLT i LTO.

Biblioteki dysków magnetooptycznych. Stanowią one rozwiązanie alternatywne lub komplementarne w stosunku do bibliotek taśmowych. Używane media mogą być jednokrotnego lub wielokrotnego zapisu, przy czym ta druga możliwość jest bardziej rozpowszechniona. Jednym z producentów jest firma Hewlett-Packard, przykładowe parametry (bez kompresji danych) dla rodziny produktów SureStore przedstawiono w Tablicy 7.4.

Model

Liczba napędów

Liczba dysków

Pojemność biblioteki [GB]

Średni czas ładowania dysku [s]

80ex 320ex 660ex 1200ex

2 4 6 10

16 64 128 238

83 333 666 1238

12 5.5 5.5 5.5

Tablica 7.4: Główne parametry przykładowych modeli bibliotek dysków magnetooptycznych firmy Hewlett-Packard (dla dysków o pojemności 5.2 GB)

Urządzenia te są wyposażone w napędy dysków magnetooptycznych

7.5. Systemy zarządzania danymi_________________________179

(umożliwiające także zapis jednokrotny), pozwalające na zapis do 5.2 GB na jednym krążku (8-krotna gęstość zapisu), z przepustowością (dla dysków MO) niewiele ustępującą innym współczesnym urządzeniom pamięci masowej (4.6 MB/s dla odczytu, 2.3 MB/s dla zapisu). Układ robotyki jest precyzyjny i trwały; parametry niezawodnościowe wynoszą MTBF - 105 godzin i MSBF - 2 x 106 (dla układu robotyki) oraz MSBF - 7.5 x 104 (dla napędu). Stopa błędu dla zapisu i odczytu jest 10~14. Biblioteki wyposażone są w sterowniki SCSI, umożliwiające współpracę z różnymi systemami komputerowymi.

Rozwiązania zintegrowane. Tendencje rozwojowe w zakresie składowania danych obejmują także rozwiązania zintegrowane (por. Rozdział 6.4). Przykładem węzła NAS jest urządzenie o nazwie LANvault, pochodzące z firmy ATL Products. Niska cena i łatwość zarządzania czynią je również przydatnym dla tworzenia kopii zapasowych danych w przypadku sieci komputerowej złożonej z kilku lub kilkudziesięciu maszyn.

W przeciwieństwie do standardowych rozwiązań opartych o urządzenia wymagające współpracy z osobnym, dedykowanym serwerem, LANvault wy-posażony jest w zintegrowany "lekki" serwer, pracujący pod kontrolą WindowsNT, karty sieciowe oraz bibliotekę L200. Fabrycznie instalowane jest oprogramowanie służące do tworzenia kopii zapasowych. Zarządzanie odbywa się za pośrednictwem stacji roboczej z wykorzystaniem przeglądarki WWW.

7.5 Systemy zarządzania danymi

7.5.1 Rodzaje systemów Oprogramowanie do zarządzania składowaniem danych dzieli się na trzy rodzaje wynikające ze stosowanych modeli składowania i udostępniania danych (por. Rozdział 7.2.1):

• tworzenie zapasowych kopii bezpieczeństwa (ang. backup),

• archiwizacja danych (ang. archive),

• składowanie hierarchiczne (ang. Hierarchical Storage Managemeat -HSM).

Oprogramowanie do tworzenia kopii zapasowych. Jest to stosunkowo proste oprogramowanie, pozwalające na automatyczne tworzenie kopii bezpieczeństwa (zabezpieczenia okresowego) zasobów dyskowych komputera w odniesieniu do:

180 Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

• odpowiednich zbiorów lub/i katalogów,

• czasu realizacji (np. w nocy),

• wymaganych ilości (np. kilka kopii).

Oprogramowanie tego rodzaju istnieje dla wielu platform sprzętowych w środowiskach typu Unix, Windows i Novell NetWare oraz oferuje zazwyczaj bardzo elastyczne rozwiązania szczegółowe. Może być stosowane do sieci SAN, systemów klastrowych oraz zasobów rozproszonych.

Rozwijane są wersje oprogramowania obsługujące profesjonalne urządzenia archiwizujące (biblioteki taśmowe oraz biblioteki dysków magnetooptycznych) przeznaczone do komputerów typu PC. Zezwala to na budowę małych systemów tworzenia kopii zapasowych po niskich kosztach. Wiele systemów dedykowanych dla środowiska Unix współpracuje z komputerami typu PC jako klientami. Dzięki takiemu podejściu uzyskuje się łatwość integracji procesów tworzenia kopii bezpieczeństwa różnorodnych systemów.

W praktyce (np. [29]) stosuje się trzy podstawowe strategie wykonywania kopii zapasowych i rotacji nośnika, ukazane w Tablicy 7.5.

Tablica 7.5: Strategie wykonywania kopii zapasowych i rotacji nośnika

Wymieniane są pewne niedostatki tego modelu składowania i udostępniania danych. Polegają one na ograniczeniu możliwości ciągłości bezpieczeństwa danych, szybkim zużywaniu się nośników oraz braku interaktywnego dostępu do danych.

Archiwizacja danych. Jest procesem bardzo zbliżonym do tworzenia kopii zapasowych. Z formalnego punktu widzenia stwierdzić można, że jeżeli tworzenie kopii zapasowych odbywa się bez wykorzystania informacji o zawartości zbiorów, to archiwizacja dotyczy zbiorów o określonym znaczeniu, np. danych z konkretnego systemu baz danych. Archiwizacja posiada cechy oprogramowania do tworzenia kopii zapasowych oraz dodatkowo pozwala na kontrolę czasu przechowywania zbiorów, w szczególności przez wiele lat w

Strategie wykonywania kopii

zapasowychpełna

przyrostowa

różnicowa

Schematy rotacji

nośnikaojciec-syn

dziadek-ojciec-syn

wieże Hanoi

7.5. Systemy zarządzania danymi _______ ________ 181

sposób trwały. Systemy archiwizacji dedykowane są do konkretnych zastosowań (w dziedzinach takich jak: medycyna, bankowość, zarządzanie przedsiębiorstwem, systemy inżynierskie) i w związku z tym wykazują duże zróżnicowanie spotykanych rozwiązań.

Składowanie hierarchiczne. System zarządzania składowaniem hierarchicznym jest najbardziej zaawansowaną formą obsługi danych przechowywanych z wykorzystaniem nośników o dostępie pośrednim. W prostym przypadku obsługuje zbiory dyskowe i bibliotekę z nośnikami jednego typu. W bardziej rozbudowanych konfiguracjach struktura systemu może uwzględniać kilka rodzajów nośników i dotyczyć zbiorów rezydujących na dysku, w bibliotece dysków magnetooptycznych i bibliotece taśm magnetycznych. Jak pokazuje praktyka, 80% informacji zgromadzonej w systemie komputerowym jest używanych zaledwie w 20% przypadków.

System autonomicznie decyduje o tym, które dane powinny rezydować na poszczególnych rodzajach nośników (poziomach hierarchii), w zależności od ich objętości i częstotliwości wykorzystywania oraz pojemności dostępnych zasobów. Udostępnia użytkownikom i aplikacjom zasoby pamięci masowej dostępnej w trybie bezpośrednim i pośrednim z pomocą wirtualnego systemu plików zapewniającego transparentność i jednolitość odwołań do zbiorów znajdujących się na różnych poziomach hierarchii.

System składowania hierarchicznego jest systemem dynamicznej migracji danych z dysków bezpośredniego dostępu na nośniki o dostępie pośrednim i odwrotnie. Przeważnie uruchamiany jest na serwerze, który obsługuje bibliotekę i udostępnia zasoby biblioteki innym komputerom w sieci. Klientami takiego systemu, podobnie jak w przypadku oprogramowania innego typu, mogą być zarówno systemy typu Unix jak i PC. Dostęp do zasobów zachodzi poprzez standardowe protokoły sieciowe FTP lub NFS.

7.5.2 Przykłady systemów zarządzania Systemy kopii

zapasowych i archiwizacji

Do najbardziej popularnego oprogramowania tworzenia kopii zapasowych i archiwizacji można zaliczyć: HP OmniBack II, Legato Networker i CA ARC-serveIT.

HP OpenView OmniBack II jest rozwiązaniem o wysokiej jakości, prze-znaczonym do automatycznego tworzenia kopii zapasowych aplikacji i baz danych w trakcie pracy [114]. Posiada więc także cechy systemu archiwizacji

182 Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

ze względu na dostarczanie agentów archiwizujących on-line dla typowych systemów baz danych i aplikacji (na przykład Oracie, Informix, Sybase, MS SQL Server, MS Exchange Server), a także systemów wspomagających zarządzanie, np. SAP R/3.

Pozwala on administratorowi na centralne monitorowanie i zarządzanie procesem tworzenia kopii bezpieczeństwa na platformach Unix, Win-dows95/NT i NetWare, z zachowaniem dowolności w wyborze miejsca ich tworzenia. Raportowanie odbywa się z pomocą WWW. OmniBack II nadaje się do zastosowania w środowiskach wysokiej dostępności (HAC) oraz w sieciach SAN (z wykorzystaniem Fibrę Channel) i WAN.

Współpracuje z różnorodnymi technologiami taśmowymi, a także z urzą-dzeniami nośników magnetooptycznych. Podstawowym elementem oprogra-mowania jest manager archiwizacji - oprogramowanie instalowane na centralnym komputerze systemu którego rolą jest obsługa żądań klientów.

Zbiór dodatkowych cech systemu pozwala na rozwiązywanie sytuacji awa-ryjnych. W przypadku awarii sieci w trakcie zapisu, system ponawia nawiązanie połączenia i kontynuuje rozpoczęte zadanie. Jeżeli awaria nastąpiła z innych powodów, możliwa jest manualna interwencję w celu zabezpieczenia danych. Przy awarii jednego z urządzeń archiwizujących zadania stojące w kolejce do wykonania skierowane zostają na alternatywne urządzenie poprzez sieć lub obsłużone lokalnie. W przypadku awarii managera archiwizacji, jego zadania mogą być przejęte poprzez alternatywny system.

Legato Networker jest także oprogramowaniem służącym do tworzenia kopii zapasowych. Oprócz standardowych funkcji, może pełnić również funkcje HSM [126].

Serwery systemu Legato Networker mogą być instalowane na platformach UNIK i WindowsNT. Obsługiwany jest szeroki zakres bibliotek taśmowych i zmieniaczy taśm. Oprogramowanie typu klient dostępne jest dla większości systemów pracujących pod kontrolą systemów operacyjnych typu UNIK, WindowsNT/95, NetWare, OS/2 i Macintosh. Wprowadzono tzw. obszary danych - wirtualne partycje - których celem jest podział dużego systemu komputerowego na lokalne, centralnie zarządzane węzły tworzenia kopii zapasowych. Taki zabieg pozwala na zbudowanie rozproszonego systemu o łatwym zarządzaniu i o zredukowanym przepływie danych przez sieć.

CA ARCserveIT jest oprogramowaniem bardzo rozpowszechnionym. Jego udział w rynku systemów zarządzania (łącznie z systemami typu main-frame wynosi 33% [66]. Oferuje kompleksowe rozwiązania (na wiele podsta-

7.5. Systemy zarządzania danymi 183

wowych platform) tworzenia kopii zapasowych i archiwizacji oa-line danych praktycznie ze wszystkich systemów zarządzania relacyjnymi bazami danych oraz SAP R/3, z uwzględnieniem najnowszych trendów rozwojowych, takich jak, SAN, NAS i inne. Cechuje się bardzo wysoką wydajnością, poziomem automatyzacji oraz szybkością odtworzenia danych po awarii.

Oprócz wymienionych powyżej systemów zarządzania rozpowszechnione są także inne systemy, produkowane przez specjalizowane firmy. Jednym z przykładów jest VERITAS Software, Corp. [141].

Systemy zarządzania składowaniem hierarchicznym

UniTree Central File Manager (UCFM), produkcji firmy UniTree Software, Inc. [139], jest jednym z dobrych przykładów systemu zarządzania składowaniem hierarchicznym. Umożliwia obsługę rozbudowanych konfiguracji, w skład których wchodzą biblioteki dysków magnetooptycznych i biblioteki taśmowe także przez sieć komputerową z wykorzystaniem sieciowego systemu plików lub protokołu FTP. System UniTree jest postrzegany przez użytkownika jako standardowa struktura katalogów systemu UNIK. Jego działanie opiera się na interaktywnej współpracy procesów (ang. daemons) poprzez gniazda BSD. Nie jest wymagana modyfikacja jądra systemu operacyjnego, dzięki czemu uzyskuje się niezależność od platformy sprzętowej.

System UniTree jest wynikiem wieloletnich badań i prac rozwojowych prowadzonych w Lawrence Livermore National Laboratory dla potrzeb rządu USA oraz środowisk akademickich. Jego pierwsze zastosowania dotyczyły obsługi zbiorów systemów typu mainframe. Obecnie dostępny jest na platformach systemów otwartych pochodzących od różnych producentów.

System zarządza zasobami tworząc wielopoziomową hierarchię, na której szczycie znajdują się dyski magnetyczne. Część przestrzeni dyskowej definiowana jest jako pamięć podręczna dla większych objętości danych znajdujących się na niższych szczeblach hierarchii: bibliotek dysków magnetooptycznych lub bibliotek taśmowych. Tworzone pliki rezydują początkowo w pamięci podręcznej. Po upływie pewnego czasu lub po przekroczeniu pojemności pamięci podręcznej ulegają one migracji na nośniki drugiego poziomu hierarchii (albo w razie konieczności kolejnych poziomów) w ilości kopii określonej przez użytkownika. Pliki usunięte z pamięci podręcznej są nadal widoczne w przestrzeni katalogów użytkownika, ich zawartość znajduje się jednak wyłącznie na nośnikach zewnętrznych do czasu, kiedy użytkownik wykona próbę ich odczytu. Podczas obsługi tego żądania, urządzenie archiwizujące dokonuje ładowania odpowiedniego nośnika w jednym z napędów i w pamięci podręcznej tworzona jest jego kopia.

184 ______Rozdział 7. Składowanie i udostępnianie dużych zbiorów danych

Istnieje kilka modeli pracy systemu UCFM:

• Podstawowy model pracy, w którym jedna instancja UCFM zarządza pamięcią podręczną, systemem taśmowym i systemem plików. Zasoby te mogą być alokowane na jednej lub kilku maszynach. W tym ostatnim przypadku konieczne jest przypisanie zasobów konkretnego typu do jednej maszyny.

• Realizacja i obsługa wirtualnych prywatnych systemów plikowych, w którym użytkownik nie posiada dostępu do zasobów innego użytkownika, natomiast wszystkie żądania są obsługiwane przez jeden system taśmowy.

• Rozproszony system zasobów taśmowych, w którym UCFM zarządza zasobami lokalnymi oraz zasobami zdalnymi (dostępnymi przez sieć), tworzonymi na potrzeby wzrostu poziomu ochrony danych przed znisz-czeniem.

Oprogramowanie UCFM jest często używane w rozbudowanych strukturach centrów informatycznych2.

Inne przykładowe systemy HSM to: moduł Storage Migrator wspomnianej powyżej firmy VERITAS Software, Corp. [1411, DiskXtender z OTG Software [127] oraz SAM-FS firmy LSC [130].

7.6 Podsumowanie Problematyka bezpieczeństwa danych jest istotnym kierunkiem badań aplika-cyjnych. W zakresie ochrony przed utratą proponuje się w przyszłości szersze wykorzystanie specjalizowanych sieci SAN (z użyciem standardu Fibrę Channel). Na obecnym etapie rozwoju popularność zyskują urządzenia NAS zbudowane są w oparciu o integrację lekkiego, dedykowanego serwera z automatycznymi systemami składowania i udostępniania informacji.

We współczesnych systemach zarządzania składowaniem i udostępnianiem danych implementowane są trzy podstawowe modele zarządzania: tworzenie i obsługa kopii zapasowych, archiwizacja oraz składowanie hierarchiczne. Większość systemów jednoczy kilka funkcji, oferując większą elastyczność eksploatacji oraz pozwalając na geograficzne rozproszenie zasobów celem podniesienia poziomu ochrony danych przed zniszczeniem.

2 W Polsce zainstalowane jest w Akademickim Centrum Komputerowym CYFRO NET-AGH (Kraków), w Centrum Informatycznym Trójmiejskiej Akademickiej Sieci Komputerowej (Gdańsk), w Poznańskim Centrum Superkomputerowo-Sieciowym oraz we Wrocławskim Centrum Sieciowo-Superkomputerowym.

Rozdział 8

Porównanie producentów w zakresie systemów otwartych

Celem poniższego rozdziału jest porównanie wybranych klas systemów kom-puterowych przeznaczonych do zastosowań przemysłowych i komercyjnych produkowanych przez różnych producentów systemów otwartych. Zawarte informacje stanowić mogą przesłanki w zakresie wyboru producenta na podstawie cech sprzętu i pewnych wskaźników ekonomicznych. Szczególnym za-interesowaniem objęto produkty firm: SUN, IBM, HP i Compaq, ze względu na ich największy udział w rynku.

8.1 Porównanie wydajności maszyn W przedstawionej poniżej analizie posłużono się danymi z początku roku 2000 i cenami z rynku amerykańskiego. Należy zdawać sobie sprawę z pewnej niejednoznaczności tego typu analizy wynikającej z:

• wyższych cen w Europie w porównaniu z rynkiem amerykańskim,

• cen zmiennych w czasie, co wynika z wprowadzania nowych wyrobów,

• realizacji kontraktów w oparciu o ceny negocjowane, niejednokrotnie znacznie niższe od cen listowych,

• silnej zależności wydajności oraz kosztów od wyposażenia serwerów.

Przedstawione wyniki dają jednak pewien pogląd na temat osiągów i wskaźników typu cena/wydajność dla typowych maszyn, których podstawowe cechy umieszczono w Tablicy 8.1. Ograniczono się do komputerów typu SMP

185

186____Rozdział 8. Porównanie producentów w zakresie systemów otwartych

(z wyjątkiem IBM SP2) klas średniego i wysokiego poziomu. Podstawowe źródła bibliograficzne stanowiły pozycje [131, 133, 138], chociaż w wielu wypadkach dane są niepełne1. Wyniki silnie zależą od warunków eksperymentu: wyposażenia maszyn, stosowanych systemów zarządzania relacyjnymi bazami danych oraz ich wersji. Przyjęto, iż w tablicach zamieszcza się wyniki najko-rzystniejsze spośród dostępnych.

Klasa maszyn Model Podstawowe daneSUŃ E3500 SMP, 8xUltraSPARC II

(250/336/400MHz)SUNE4500 SMP, 14xUltraSPARC II

(250/336/400MHz)Compaq ES40 (6/500)

SMP, 6xAlpha 21264 (500MHz)

HP N4000 SMP, 8xPA8500 (360/440MHz)

średni poziom

IBM S7A/S70 SMP, 12xRS64II (262MHz)

SUN E6500 SMP, 30xUltraSPARC II • (336/400MHz)

SUN E10000 SMP, 64xUltraSPARC II (336/400MHz)

Compaq GS140 (6/700)

SMP, 14xAlpha 21264 (700MHz)

HP V2500 SMP, 32xPA8500 (440MHz)

IBM S80 SMP, 24xRS64III (450MHz)

IBM SP2 (12 węzłów)

Parallel SMP, 96xPPC604e (200MHz)

wysoki poziom

IBM SP2 (48 węzłów)

Parallel SMP, 192xPPC604e (200MHz)

Tablica 8.1: Typowi reprezentanci klas serwerów

Wartości miar ze zbioru TPC-C i SPECweb96 (por. Rozdziały 2.8 i 2.11) przedstawia Tablica 8.2. Komputery średniej klasy są stosunkowo uniwersalne — biorąc pod uwagę zarówno parametry techniczne, jak i ekonomiczne —

1W połowie 2000r została rozszerzona linia komputerów IBM, w skład której wchodzi S80. Obejmuje ona także maszyny niższego poziomu: FSO, H80, M80. Podobnie Compaq wprowadził w tym samym okresie unowocześnioną serię AlphaServer GS80, GS160, GS320 i SC. Z uwagi na cykl wydawniczy wymienione w przypisie komputery nie zostały ujęte w tej książce.

8.1. Porównanie wydajności maszyn 187

mogą być one używane zarówno jako serwery usług sieciowych, jak i maszyny przetwarzania transakcyjnego dla stosunkowo umiarkowanej liczby użytkowników. Maszyny o największych mocach przetwarzania przeznaczone są dla centrów informatycznych obsługujących wielu użytkowników lub jako elementy architektury HAC. Wydajności uzyskiwane przez komputery firm SUN (E10000), HP (V2500) i IBM (S80) w zakresie przetwarzania transakcyjnego (tpmC) są porównywalne, chociaż uzyskane przy różnych wskaźnikach ekonomicznych ($/tpmC) i dla różnych systemów zarządzania bazami danych. Za najbardziej wymagający pod względem wykorzystania zasobów sprzętowych uchodzi system Oracie. Wpływ systemu zarządzania na wydajność może wynosić ponad 10% [138].

Komputer

Liczba procesorów i częstotliwość [MHz]

tpmC

$/tpmC

System zarządzania relacyjną bazą danych

SPECweb96

SUN E3500

8 (336)

21871 78

Sybase 11

SUN E4500

14 (400)

50268 50

Sybase 11

Compaq ES40

4 (500)

25903 37

Sybase 11 11159

HP N4000

8 (440)

49308 57

Sybase 11 24139

IBM 870

12 (262)

34140 88

Oracle 8 19264

SUN E6500

24 (336)

53049 76

Sybase 11

SUN E10000

64 (400)

115396 106

Oracle 8i

Compaq GS140

8 (700) 42437 55 Sybase 11

HP V2500

32 (440)

102024 63

Sybase 12

IBM S80

24 (450)

135816 53

Oracle 8i

IBM SP2

96 (200)

57054 147

Oracle 8

Tablica 8.2: Porównanie wydajności maszyn z wykorzystaniem miar tpmC i SPECweb96

188 Rozdział 8. Porównanie producentów w zakresie systemów otwartych

QppD

QthD

$/QphD

Komputer

Liczba pro-cesorów (częstotliwość [MHz]) QphH QthH

$/QphH

Wielkość bazy [GB]

System za-rządzania relacyjną bazą danych

13738 2551 182 100 Oracle 8i SUN E3500

8 (400)

SUN E4500

14 (400) 1280 912 816 100 Informix 8

HP N4000

8 (440) 1482 1008 872 100 Informix 8

4226 1093 589 100 DB25 IBM S7A

12 (262)

121825 10566 283 1000 Oracle 8i SUN E10000

64 (400)

29711 4869 192 300 Oracle 8i Compaq GS140

12 (575) 6514 4806 2171 1000 Informix 8

106700 6319 168 1000 Oracle 8i HP V2500

32 (440) 3715 2592 1119 300 Informix 8

19137 10661 797 1000 DB25 IBM SP2

192 (200)

Tablica 8.3: Porównanie wydajności maszyn z wykorzystaniem miar ze zbiorów TPC-D i TPC-H

Biorąc pod uwagę oba kryteria (wydajność i wskaźnik ekonomiczny) naj-korzystniejszym rozwiązaniem jest maszyna S80. Komputery wysokiego poziomu nadają się zwłaszcza do zastosowań związanych z analizą i eksploracją danych, a także wspomagania procesów decyzyjnych (por. Tablica 8.3). Ponieważ miary ze zbioru TPC-H wprowadzono stosunkowo niedawno (por. Rozdział 2), ich wartości dostępne są tylko dla niektórych modeli komputerów.

Jak wspomniano w Rozdziale 2.11, wyniki dla TPC-D i TPC-H zależą od wielkości baz danych używanych do testów. Dla maszyn średniego poziomu są one określane najczęściej dla wielkości baz wynoszących 100 GB. Maszyny najbardziej wydajne charakteryzowane są przez wyniki odnoszące się do baz większej pojemności: 300-3000 GB. Typową wielkością jest 1000 GB, dla której wydajności komputerów E10000 i V2500 są zbliżone (używając miary QppD), przy różnicach we wskaźniku ekonomicznym ($/QphD). Porównanie wartości możliwe jest jedynie dla jednakowych wielkości baz danych, chociaż i tak parametrami swobodnymi są system zarządzania relacyjną bazą danych

8.1. Porównanie wydajności maszyn 189

Komputer

Liczba pro-cesorów (częstotliwość [MHz])

Kroki [10^3/h]

Czas odpo-wiedzi

[s]

Liczba użytkow-ników

Liczba maszyn (liczba proce-sorów)

System za-rządzania relacyjną bazą danych

IBM S70 12 (262) 1518 1.76 4960 49 (196) Oracle 8

SUN E10000 64 (336) 4725 0.97 14400 7 (391) Oracle 8

Compaq GS140

10 (575) 1649 1.60 5312 41 (168) Informix 7

HP V2500

32 (440) 15150 (v.4)

Oracle 8

IBM S80

24 (450) 5007 1.96 16640 161 (588) Oracle 8

Tablica 8.4: Porównanie wydajności maszyn z wykorzystaniem miar ze zbioru SAP R./3 dla modułu SD wersji 3 (wyniki dla innych wersji zaznaczono)

oraz konfiguracja sprzętowa używana w pomiarze. Z analizy dostępnych danych wynika, że dla określenia wydajności w prze-

twarzaniu transakcyjnym (z wykorzystaniem TPC-C) najczęściej stosowanymi systemami są Oracie i Sybase, przy czym większą testową wydajność uzyskuje się dla systemu Sybase za względu na mniejsze jego wymagania sprzętowe. W zakresie problematyki wspomagania decyzji (używając TPC-D i TPC-H), dominującym systemem zarządzania jest Oracle.

Testy SAP R/3 dotyczą wydajności złożonej konfiguracji przetwarzania typu komercyjnego (por. Rozdział 2.9). W Tablicy 8.4 umieszczono rezultaty dla typowych przedstawicieli maszyn średniego i wysokiego poziomu obsługujących określony rodzaj bazy danych. Ponieważ bardzo istotny wpływ na wyniki ma całość konfiguracji, przytoczono także ogólne informacje dotyczące liczby maszyn biorących udział w eksperymencie (z wyłączeniem maszyny obsługującej bazę danych) oraz liczby zainstalowanych w nich procesorów. Widać, że dla maszyn klasy wysokiego poziomu firm SUN, HP i IBM uzyskane wydajności są porównywalne; najpopularniejszym systemem zarządzania relacyjną bazą danych w testach okazuje się ponownie Oracle.

190 Rozdział 8. Porównanie producentów w zakresie systemów otwartych

8.2 Wybór producenta W poprzednich rozdziałach szczegółowo omówiono rodzaje procesorów, klasy architektur komputerowych i rozwiązania wysokiej niezawodności, ze szczególnym uwzględnieniem aspektów wydajnościowych i innych parametrów technicznych. Przedstawiono również przesłanki dotyczące wyboru producenta z uwzględnieniem niektórych wskaźników ekonomicznych. Niemniej jednak systemy komputerowe przeznaczone dla konkretnych zastosowań stosunkowo rzadko nabywane są wyłącznie na podstawie kryterium kosztu zakupu. Wśród cech pożądanych przez użytkownika wymienia się:

• wydajność,

• dostępność,

• funkcjonalność,

• powszechność.

Systemy muszą być rozbudowywalne. Oferowane przez producenta usługi serwisowe (gwarancyjne i pogwarancyjne), podobnie jak plany i kierunki rozwoju jego technologii są istotnym elementem oceny. Bardzo ważny jest wizerunek produktu i producenta w oczach użytkowników, jak również popularność jego rozwiązań sprzętowych i programowych wśród twórców oprogramowania użytkowego.

Według grupy konsultingowej Gartner Group [112] wybierając platformę sprzętową dla stworzenia lub rozbudowy centrum informatycznego, należy rozważyć następujące problemy:

• wybór kryteriów wydajnościowych na podstawie zdefiniowanych celów przedsięwzięcia (charakterystyka funkcjonalna),

• określenie rodzaju architektury systemu i platformy sprzętowej (wymagania technologiczne),

• zagadnienia współpracy między różnymi systemami operacyjnymi i aplikacjami pochodzącymi od różnych producentów (integracja środowisk),

• wybór producenta sprzętu i oprogramowania w kontekscie realizacji wymaganych usług komputerowych oraz wypełniania zadań informatyzacji.

8.2. Wybór producenta__________________________191

Kryteria wydajnościowe. Wybór kryteriów wydajnościowych, dyskutowanych w Rozdziale 2, wiąże się z określeniem przeznaczenia projektowanego centrum informatycznego lub jego rozbudowy. Stosowny dobór miar wydajności jest pomocny przy wstępnej eliminacji platform, które nie będą spełniały stawianych wymagań. Na tej podstawie ogranicza się listę modeli sprzętu dopuszczonych do dalszej analizy.

Architektura systemu. Przeznaczenie systemu stanowi także przesłankę dla wyboru architektury systemu, zwłaszcza z uwzględnieniem elementów wysokiej dostępności (Rozdział 6). Ponieważ niektóre miary wydajności określają także koszt eksploatacji (patrz Rozdział 2.11 oraz Tablice 8.2-8.4), mogą one być użyteczne przy wyborze sprzętu z uwzględnieniem przesłanek ekonomicznych.

System operacyjny. Z wyborem klasy maszyn związane jest również zagadnienie typu systemu operacyjnego. Podstawowe serwery przeznaczone dla obsługi baz danych i obliczeń naukowo-technicznych powinny pracować pod kontrolą systemu typu Unix, jako systemu stabilnego, wydajnego i dedykowanego do profesjonalnych zastosowań. Do najlepiej ocenianych przez użytkowników należą systemy pochodzące z firm IBM, Compaq i Hewlett-Packard (por. Rozdział 5.2). W przypadku małych przedsięwzięć rozważa się także systemy WindowsNT, Windows2000 oraz, w ograniczonym zakresie, system Linux, dla których przyrost popularności oraz zaangażowanie producentów oprogramowania wskazują na możliwość zastosowań przemysłowych [9j. Maszyny z MS Windows lub WindowsNT są także często używane dla realizacji warstw aplikacyjnej i prezentacyjnej w modelu przetwarzania typu klient-serwer. Oczekiwany jest rozwój systemów Win64 i Monterey/64 dla architektury IA-64 (por. Rozdział 3.8.2).

Aspekty ekonomiczne. Wśród aspektów ekonomicznych na uwagę zasługują: koszt inwestycji, przewidywany czas wdrożenia, kompleksowość realizacji i pozycja producentów. Szczegółowa analiza rynku komputerowego nie jest sprawą łatwą ze względu na poufność danych. Poniżej przedstawiono pewne aspekty ekonomiczne, które winny być przydatne dla wyboru rozwiązania.

Do końca roku 2002 spodziewany jest szybki przyrost systemów z Win-dowsNT/Windows2000 oraz znacznie wolniejszy komputerów z systemem typu Unix [35]. Ocenia się, że na końcu analizowanego okresu dochody ze sprzedaży komputerów w odpowiedniej klasie systemów operacyjnych wyniosą: 25.6 mld dolarów oraz 42.2 mld dolarów odpowiednio, przy całkowitym dochodzie rynku rzędu 102 mld dolarów. Popularność pozostałych systemów

192 Rozdział 8. Porównanie producentów w zakresie systemów otwartych

operacyjnych (OS/390, OS/400, NetWare o udziałach rzędu 5-10 mld dolarów każdy) zostanie zachowana na obecnym poziomie.

W tym samym horyzoncie czasowym określa się, że dochód pochodzący z technologii RISC wyniesie 35.3 mld dolarów, a z architektury IA-64 — 28.9 mld.

Obserwuje się stosunkowo wysoki stopień integracji środowisk systemów otwartych. Są one chętnie wykorzystywane przez niezależnych producentów oprogramowania (ang. Jutegrated Software Vendors - ISV) dla implementacji aplikacji. Wśród systemów zarządzania relacyjnymi bazami danych naj-popularniejszymi są Oracie i Informix, oraz w mniejszym stopniu, Sybase. Na platformach IBM często wykorzystuje się system DB2 (Tablice 8.2-8.4).

W uzasadnionych przypadkach (por. Rozdział 5.2.1) polecić można systemy własnościowe firmy IBM w postaci superserwerów S/390, które zazwyczaj oferowane są w postaci kompletnego rozwiązania sprzętowo-programowego. W zależności od dostępności aplikacji, konkurencję do nich mogą stanowić systemy HAC.

Rynek serwerów z systemami typu UNIX [%1

Światowy rynek serwerów [%1

Producent

1998 1-3 Kw. 1999 1998 1-3 Kw. 1999SUN 23 30 10 13HP 21 22 13 14 IBM 20 16 26 23 Compaq Siemens 6

5 7 4 14 4 14 4

inni 25 22 33 33 Dochody, mld USD 24.7 18.1 57.8 41.7

Tablica 8.5: Udział producentów i wielkość rynku serwerów

W Tablicach 8.5 i 8.6 umieszczono udział producentów komputerów z uwzględnieniem wielkości tego rynku, którą przyjęto określać w cenach rynku amerykańskiego. Dane pochodzą z lat 1998 i 1999 [35, 115]; na przestrzeni ostatniego okresu obserwuje się powolny wzrost dominacji kilku producentów, kosztem pozostałych. Wzajemne relacje między nimi są zachowane w stosunkowo dużym horyzoncie czasowym. Klasę średnią zdefiniowano na podstawie przedziału kosztu zakupu wynoszącego 105 — 106 USD. W roku 1999 ogólna wielkość światowego rynku serwerów wyniosła 57.5 mld USD.

Udział trzech głównych producentów serwerów z systemem operacyjnym typu UNIX (SUN Microsystems, Hewlett-Packard i IBM) był w roku 1998

8.2. Wybór producenta 193

Rynek serwerów z systemami typu UNIX klasy średniej (%]

Producent

1998 1-3 Kw. 1999SUN HP IBM inni

19 27 19 35

24 29 16 31

Dochody, mld USD 11.8 8.4

Tablica 8.6: Udział producentów i wielkość rynku serwerów klasy średniej

zbliżony. W klasie średniej - najbardziej popularnej, gdyż jej udział stanowi około połowy rynku serwerów systemów otwartych - zauważa się dominację jednego producenta. Dane dotyczące światowego rynku serwerów odnoszą się do wszystkich typów maszyn. Znacząca jest przewaga produktów IBM, ze szczególnym uwzględnieniem superserwerów, a także istotny udział firmy Compaq, pochodzący z rynku komputerów osobistych.

Silna pozycja finansowa producenta jest istotnym kryterium przy wyborze sprzętu. Wpływa ona na pewne cechy, wśród których wymienić można:

• Stabilność istnienia firmy. Dla użytkownika oznacza to możliwość ko-rzystania z pogwarancyjnej obsługi serwisowej, rozbudowy lub unowo-cześnienia instalacji w razie potrzeb, a także współpracy z producentem w zakresie spełniania oczekiwań użytkowników. Cechy te są nazywane ochroną poniesionych inwestycji.

• Prowadzenie przez producenta badań o charakterze podstawowym i aplikacyjnym. Uważa się, że minimum 10% budżetu firmy powinno być przeznaczone rocznie na badania, skutkujące nowymi technologiami w zakresie sprzętu i oprogramowania.

• Rozpowszchnienie produktów danego producenta na rynku. Niezależni producenci oprogramowania chętnie adaptują swoje produkty na popularne platformy sprzętowe. Integratorzy sprzętu i oprogramowania dysponują dużym doświadczeniem praktycznym. Użytkownicy posiadają możliwość wymiany doświadczeń eksploatacyjnych.

Ważna jest także pozycja producenta systemów oprogramowania, ich roz-powszechnienie i stabilność na rynku. •• W praktyce nie istnieje jedna uniwersalna strategia informatyzacji przed-siębiorstwa. Wydaje się, że najlepszą metodą jest stworzenie mieszanego "zespołu ekspertów", w skład którego wchodzą przedstawiciele przedsiębiorstwa

194____Rozdział 8. Porównanie producentów w zakresie systemów otwartych

oraz firmy integrującej rozwiązania sprzętowe i programowe. Pierwsza grupa członków zespołu służy doświadczeniem w zakresie funkcjonowania przed-siębiorstwa i obiegu dokumentów, druga - dostarcza wymaganych aplikacji, dopasowanych do oczekiwań odbiorcy, zrealizowanych w odpowiednim śro-dowisku programistycznym i przeznaczonym do eksploatacji na wybranym sprzęcie. Bardzo korzystne jest posłużenie się ekspertyzami opracowanymi przez niezależne firmy konsultingowe w zakresach wymienionych powyżej. Konieczna jest praktyczna weryfikacji przyjętych rozwiązań przez instalację pilotażową oraz analiza rozwiązań alternatywnych.

8.3 Przegląd producentów sprzętu

Duży udział w rynku kilku zaledwie producentów powoduje zanik mniejszych firm, których wyroby stają się mniej konkurencyjne. Wynika to ze skromniejszych nakładów na badania podstawowe i aplikacyjne, uboższej współpracy z niezależnymi producentami systemów oprogramowania aplikacyjnego oraz z mniejszych możliwości marketingowych.

Część firm komputerowych, o mniejszym potencjale, znalazła swoje spe-cyficzne segmenty rynku. Do takich producentów należy firma CRAY [56], która przez długi okres samodzielnie, a następnie jako część firmy Silicon Gra-phics, Inc. (SGI) dominowała i nadal dominuje na rynku obliczeń naukowo-technicznych, początkowo produkując komputery wektorowe, a w późniejszym okresie komputery wieloprocesorowe (por. regularne publikacje Raportu [19]). Od marca roku 2000 CRAY stał się własnością firmy Tera Computer Company, zachowując swoją nazwę. Również produkty firmy SGI, początkowo popularne w zastosowaniach związanych z tworzeniem i przetwarzaniem grafiki komputerowej, rozpowszechniły się także w zakresie obliczeń naukowo-technicznych. Mowa tu o serwerach obliczeniowych SGI Origin2000 (patrz cytowany powyżej Raport [19]). Do największych instalacji na świecie należą maszyny produkowane jednostkowo w ramach Projektu ASCI [121], dotyczącego badań podstawowych o największej skali złożoności.

Każdy z producentów systemów otwartych podtrzymuje obecnie co najmniej dwie linie produktów. Jedną z nich są komputery wykorzystujące własne procesory typu RISC wraz z systemem operacyjnym typu Unbc, drugą - linia komputerów z procesorami rodziny Intel oraz systemami WindowsNT/Windows2000 i Linux. Polityka tego typu wychodzi naprzeciw oczekiwaniom różnych grup użytkowników, różniących się między sobą potrzebami oraz możliwościami finansowymi. Wydaje się jednak, że taka różnorodność produktów może być niekorzystna dla producenta, gdyż wymaga nakła-

8.3. Przegląd producentów sprzętu 195

dów na badania w kilku kierunkach rozwoju. Dla zmniejszenia tego efektu rozwijane są prace w zakresie integracji sprzętu różnych systemów.

Wszyscy producenci uczestniczą bardzo aktywnie w pracach wielu komitetów standaryzacyjnych, mających na celu ujednolicenie usług oferowanych przez swoje wyroby oraz podniesienie wzajemnej kompatybilności.

W bliskim horyzoncie czasowym można się spodziewać dużej popularności architektury IA-64 w postaci procesora Itanium, produkowanego przez firmę Intel (i przedstawionego w Rozdziale 3). Każdy z producentów sprzętu uwzględnia w swoich planach rozwojowych ten typ procesora.

8.3.1 SUN Microsystems Firma SUN Microsystems (liczba pracowników w 1999 r. wyniosła około 26000) swoją popularność w pierwotnym okresie rozwoju zawdzięcza wprowadzeniu stosunkowo niedrogich serwerów i stacji roboczych pracujących pod kontrolą systemu operacyjnego typu Unix - SunOS, a następnie Solaris -które rozpowszechniły się zwłaszcza w jednostkach badawczo-rozwojowych. Produkty tej firmy w późniejszym okresie zostały zaakceptowane w środowiskach komercyjnych, zwłaszcza po wprowadzeniu kolejnej wersji procesora UltraSPARC i udoskonaleniach konstrukcyjnych zwiększających dostępność.

Podstawowe serwery przeznaczone do realizacji usług sieciowych, do obsługi grup roboczych i serwery korporacyjne implementują procesor UltraSPARC II (400MHz). Należą do nich modele Enterprise 450, 3500, 5500 i 6500. Zakup architektury CS6400 od firmy CRAY umożliwił promocję największej maszyny - E10000. Liczba procesorów zawiera się w przedziale 4 do 64 w zależności od modelu. Planowany jest dalszy jej rozwój w kierunku implementacji architektury cc-NUMA i większej liczby wydajniejszych procesorów (por. Rozdział 6.5). Dla podniesienia zakresu zastosowań oraz dostępności wprowadzono koncepcje dynamicznych domen procesorów oraz możliwość tworzenia klastrów wysokiej dostępności, w wykorzystaniem wersji Solaris 8 systemu operacyjnego.

Powodzeniem cieszą się stacje robocze, wyposażone w akceleratory graficzne. Ponieważ hasłem marketingowym firmy SUN jest stwierdzenie "The Network is the Computer", wagę przywiązuje się do rozwoju standardów usług sieciowych, systemów otwartych oraz języka Java, systemu operacyjnego JavaOS i specjalizowanych procesorów wraz z architekturą lekkiego klienta internetowego. Sądzi się, że w przyszłości utrzymywane będą dwie platformy sprzętowe — wykorzystujące procesory SPARC oraz o architekturze IA-64 — dla obu przewidywany jest system operacyjny Solaris. System WindowsNT nie wydaje się być przedmiotem szczególnego zainteresowania.

196 Rozdział 8. Porównanie producentów w zakresie systemów otwartych

8.3.2 Hewlett-Packard Popularność rozwiązań produkcji firmy Hewlett-Packard obserwuje się głównie na rynku zastosowań przemysłowych i komercyjnych ze względu na niezawodność sprzętu, rozwiązania wysokiej dostępności, wydajność, a także sprawną obsługę serwisową (por. Rozdział 6.5). Istotnym elementem pozytywnej oceny jest istniejąca od dłuższego czasu możliwość tworzenia rozbudowanych klastrów wysokiej dostępności i doświadczenie producenta w ich implementacji. Zakup firmy CONVEX pozwolił na produkcję dużych maszyn, w których pojedynczy węzeł obliczeniowy typu SMP zawiera 32 procesory PA-RISC. Firma zatrudnia około 120000 pracowników (1999r.).

Zróżnicowane klasy serwerów HP9000: L, N i V, pokrywają szeroki zakres zastosowań - od usług sieciowych i obsługi grup roboczych, poprzez realizację zadań stawianych przez duże instytucje typu korporacyjnego, na zastosowaniach w obliczeniach naukowo-technicznych kończąc. Firma bierze udział w pracach rozwojowych dotyczących procesora Itanium o architekturze IA-64, w szczególności w zakresie zbioru instrukcji oraz systemów operacyjnych przeznaczonych na ten procesor - typu Unix (HP-UX), Window-sNT/Windows2000 oraz własnościowego MPE/iX. Ocenia się, że przez pewien okres czasu utrzymywane będą obie platformy sprzętowe (z procesorami PA RISC oraz IA-64), a następnie dokona się przejście na platformę z procesorami o architekturze IA-64 oraz możliwością wyboru systemu operacyjnego. Licencje na stosowanie systemu operacyjnego HP-UX na architekturze IA-64 zostały już zakupione przez innych wytwórców. Planuje się wprowadzenie maszyn większych niż modele V2x00.

Produkowane są także wydajne stacje robocze pracujące pod kontrolą HP-UX, WindowsNT oraz systemu Linux, wyposażone w akceleratory graficzne oraz serwery wykorzystujące procesory Pentium, a także szereg pakietów oprogramowania do realizacji usług sieciowych i zarządzania siecią (np. OpenYiew Network Node Manager).

8.3.3 IBM Firma IBM, jako największa z przedstawianych (zatrudnionych około 280000 osób w 1999r.), dysponuje najbardziej zróżnicowaną ofertą sprzętu i oprogramowania. W zakresie sprzętu są to komputery personalne, komputery systemów otwartych, superserwery (S/390) i serwery komercyjne AS/400. Obie ostatnio wymienione rodziny wykorzystują procesory typu RISC - PO-WERPC i POWER2/3. Stosowane są także różne systemy operacyjne: WindowsNT, typu Unix (AIX), oraz własnościowe OS/390 i OS/400.

8.3. Przegląd producentów sprzętu_________________________197

Systemy otwarte reprezentowane są przez kilka linii: komputery typu SMP (np. H50/70, STA, oraz najnowsze FSO, H80, M80, S80), maszyny cc-NUMA oraz wielokomputery SP. Ich przedstawiciele używani są w zastosowaniach komercyjnych, podobnie jak superserwery S/390 i charakteryzują się dobrymi parametrami eksploatacyjnymi i niezawodnościowymi oraz możliwością tworzenia klastrów wysokiej dostępności złożonych z maszyn SMP (por. Rozdział 6.5). Planowane jest szerokie wykorzystanie architektury NUMA według technologii opracowanej przez firmę Sequent. Największa maszyna tej rodziny - NUMA Center - wyposażona jest w 8-160 procesorów Intel Pentium III Xeon (w przyszłości Itanium) [79]. Komputery SP są również bardzo popularne w zastosowaniach naukowo-technicznych, co znajduje wyraz w Raporcie [19]. W oparciu o tą architekturę budowane są jednostkowe, największe na świecie modele w ramach Projektu ASCI |l21j.

Różnorodność sprzętu i oprogramowania nie ułatwia rozwoju. Ze względu na procesor Itanium realizowany jest projekt Monterey/64, dotyczący systemu typu AIX.

Dynamika rynku superserwerów S/390 jest mniejsza, niż rynku systemów otwartych. Po wprowadzeniu nowych technologii procesorowych (660 MHz) oraz systemu operacyjnego zbliżonego funkcjonalnością do systemu Unix, mają one swoich zwolenników, zwłaszcza wśród obecnych użytkowników. Ich zastosowanie jest zasadne zwłaszcza w przypadku bardzo dużej liczby użytkowników (rzędu 5000-10000) i dużych baz danych (rzędu 1+ TB).

Wybór zarówno platform sprzętowych, jak i środowisk programowych jest bardzo obszerny. Z jednej strony pozwala na najlepsze dopasowanie środków do potrzeb, z drugiej może rodzić wątpliwości co do przyszłości poszczególnych rozwiązań, a w związku z tym - do problemu ochrony inwestycji użytkownika.

8.3.4 Compaq Computer Corporation Firma powstała głównie w oparciu o sprzęt komputerów osobistych, znanych od lat również częściowo w zastosowaniach komercyjnych. Liczba zatrudnionych wyniosła w 1999 r. około 26000 osób.

Zakup technologu firmy Digital Equipment Corp umożliwił szerszy rozwój linii sprzętu pracującego pod kontrolą systemu typu Unix (Tru64 UNIX) i wykorzystującego procesory rodziny Alpha. Produkowany jest sprzęt trzech klas stosujący te procesory: serwery dla grup roboczych (seria DS), dla większych przedsiębiorstw (seria ES) oraz największe modele (serii GS). Komputer AlphaServer GS320 zawiera do 32 procesorów 21264A. Dostępne są konfiguracje klastrowe. W zakresie komputerów o największych mocach prze-

198 Rozdział 8. Porównanie producentów w zakresie systemów otwartych

twarzania proponuje się maszynę o 512 procesorach Alpha (AlphaServer SC), złożoną z 4 superwęzłów, o nazwie własnej "Sierra".

W przypadku stosunkowo niewielkiej firmy, jaką jest Compaq, istotnym problemem jest podtrzymanie pełnej linii produktów i w związku z tym ochrona inwestycji poniesionych przez użytkownika. Na komputerach osobistych z procesorami Intel wykorzystywany jest system WindowsNT, którego zastosowanie przewiduje się także na komputerach z procesorem Itanium. W tym ostatnim przypadku można się spodziewać zastosowania także systemu operacyjnego Monterey/64, powstającącego w firmie IBM (we współpracy z firmami Intel i SCO). Linia komputerów z procesorami Alpha eksploatowana(jest z systemami Tru64 UNIK, własnościowym OpenYMS oraz WindowsNT, przy czym przewiduje się stopniowy wzrost udziału systemu Linux.

Rozdział 9

Zakończenie

Silna konkurencja na rynku informatycznym oraz ogromne zapotrzebowanie wymusza szybki rozwój technologii sprzętu i oprogramowania. Tablica 9.1 przedstawia przewidywane wymagania na moc obliczeniową1 oraz wielkości innych parametrów [57].

Lata Technologia 1999 2001 2004Wydajność obliczeń [Top/s] Przepustowość we/wy [GB/s] Przepustowość warstwy komunikacyjnej systemu [GB/s] Typowa wielkość danych [TB] Pojemność masowa [PB]

3 3-6 1.6

3-30 3

30 30-60 12.8

30-300 30

100 100-200 50-100

100-1000 100

Tablica 9.1: Przewidywane wymagania na moc i inne parametry w latach 2001-2004

Pojawiają się nowe tendencje szerokiego wykorzystywania środków i narzędzi informatyki. Wymienić tutaj można następujące fakty:

• znaczny i trwały wzrost przepustowości sieci komputerowych,

• nowe technologie półprzewodnikowe, nowe architektury procesorów i komputerów,

• rozwój technologii przechowywania i wykorzystywania dużych zbiorów danych zróżnicowanego typu,

1Moc obliczeniową podano w jednostkach Top/s, l Top/s = 1012 operacji/sekundę. Jednostka pojemności l PB = 1015 bajtów.

199

200___________ Rozdział 9. Zakończenie

• stały wzrost bezpieczeństwa i niezawodności sprzętu i oprogramowania oraz ochrony i poufności informacji,

• duża dynamika prac w zakresie inżynierii oprogramowania dotyczących

- algorytmów obliczeniowych, - nowych paradygmatów i modeli obliczeniowych, - usług sieciowych o bardzo zróżnicowanym charakterze,

• wzrost zastosowań o charakterze globalnym, jak na przykład

- telekomunikacja, - teleedukacja i biblioteki wirtualne, - telemedycyna, - usługi multimedialne, - handel elektroniczny i eksploracja danych, - przetwarzanie języka naturalnego, - animacja komputerowa i rozpoznawanie obrazów, - obliczenia naukowo-techniczne (np. w zakresie nowych źródeł energii,

biologii molekularnej, modelowania zjawisk klimatycznych i wielu innych).

Każdy z tych problemów i kierunków działania jest skomplikowanym za-gadnieniem kojarzącym wiele elementów, niekiedy z odległych dziedzin. Coraz częściej uważa się, że w ciągu najbliższych kilku lat nastąpi znacząca integracja usług informatycznych w ramach przetwarzania z wykorzystaniem sieci rozległych o zasięgu ogólnoświatowym, które w literaturze zachodniej przyjęto nazywać grid computing. Wynika z tego jednoznacznie, że udział informatyki, jako nauki o przetwarzaniu, pobieraniu, przesyłaniu, przechowywaniu i interpretacji informacji, będzie wzrastał w życiu społeczeństwa, stając się jednocześnie coraz bardziej naturalnym i coraz mniej widocznym.