Spis tresci - Katedra Inżynierii programowania
Transkrypt
Spis tresci - Katedra Inżynierii programowania
Spis tresci 1 Wstep......................................................................................................................... 4 1.1 Wprowadzenie................................................................................................... 4 1.2 Teza badawcza i cel pracy................................................................................. 7 1.3 Struktura pracy.................................................................................................. 8 2 Analiza metod statystycznych sluzacych opisowi zjawisk ....................................... 9 2.1 Pojecia podstawowe modelowania statystycznego ......................................... 10 2.2 Dobór wspólczynników równania................................................................... 13 2.3 Estymacja parametrów.................................................................................... 14 2.4 Weryfikacja otrzymanych wyników ............................................................... 16 2.5 Prognozowanie na postawie modelu............................................................... 18 2.6 Analiza statystyczna przy pomocy programów komputerowych................... 19 2.7 Podsumowanie ................................................................................................ 20 3 Srodowiska równolegle i rozproszone .................................................................... 22 3.1 Komputery równolegle.................................................................................... 22 3.2 Systemy rozproszone....................................................................................... 24 3.3 Srodowiska programowania równoleglego i rozproszonego .......................... 26 3.4 Dostepnosc charakterystyk wydajnosciowych aplikacji równoleglych i rozproszonych............................................................................................................. 29 3.5 Efektywnosc zrównoleglenia .......................................................................... 30 3.5.1 Metryki wydajnosci aplikacji.................................................................. 30 3.5.2 Model Hockneya ..................................................................................... 32 3.5.3 Prawo Amdahla....................................................................................... 33 3.5.4 Prawo Gustafsona.................................................................................... 33 3.5.5 Sprawnosc systemu ................................................................................. 34 3.6 Podsumowanie ................................................................................................ 34 4 Metodyka postepowania przy budowie modeli opisujacych efektywnosc aplikacji równoleglych................................................................................................................... 36 4.1 Okreslenie celu badan modelowych................................................................ 36 4.2 Specyfikacja elementów systemu i jego otoczenia ......................................... 37 4.2.1 Ilosc procesorów..................................................................................... 39 4.2.2 Ilosc i rozmiar watków............................................................................ 39 4.2.3 Sposób dostepu do zasobów wspóldzielonych........................................ 40 4.2.4 Rozmiar pamieci operacyjnej i dyskowej ............................................... 40 4.2.5 Indywidualne cechy aplikacji.................................................................. 41 4.3 Wybór klasy modelu ....................................................................................... 42 4.4 Estymacja wspólczynników i sprawdzenie poprawnosci modelu................... 43 4.5 Korzystanie z modelu...................................................................................... 44 4.6 Podsumowanie ................................................................................................ 45 5 Zastosowanie opracowanej metodyki do budowy modeli charakteryzujacych efektywnosc aplikacji równoleglych.............................................................................. 48 5.1 Badanie efektywnosci rozwiazywania ukladów równan liniowych metoda eliminacji Gaussa ........................................................................................................ 48 5.1.1 Zalozenia wstepne................................................................................... 48 5.1.2 Czas wykonania aplikacji........................................................................ 50 5.1.3 Analiza modelu efektywnosci aplikacji.................................................. 51 5.2 Czas i efektywnosc generacji fraktala Mandelbrota ....................................... 52 5.2.1 Zakres badan........................................................................................... 52 5.2.2 Weryfikacja modelu opisujacego zachowanie sie aplikacji.................... 54 1 5.3 Analiza efektywnosci zrównoleglenia metoda liniowego przeksztalcenia petli ......................................................................................................................... 56 5.3.1 Warunki eksperymentu........................................................................... 56 5.3.2 Czas wykonania programu...................................................................... 57 5.3.3 Efektywnosc zrównoleglenia .................................................................. 62 5.3.4 Przyspieszenie wykonania programu równoleglego ............................... 65 5.4 Modele efektywnosci zastosowania metody Simpleks do rozwiazywania zadan programowania liniowego ................................................................................ 67 5.4.1 Przedstawienie obszaru badan................................................................. 67 5.4.2 Wplyw czynników na czas generacji rozwiazania.................................. 68 5.4.3 Efektywnosc aplikacji równoleglej ......................................................... 70 5.5 Charakterystyka wydajnosci aplikacji obliczajacej calki................................ 72 5.5.1 Cel badan................................................................................................. 72 5.5.2 Model efektywnosci programu................................................................ 72 5.6 Modelowanie aplikacji okreslajacej stopien korelacji dwóch obrazów.......... 74 5.6.1 Przedmiot badan...................................................................................... 74 5.6.2 Model efektywnosci................................................................................ 75 5.6.3 Analiza czasu i przyspieszenia................................................................ 77 5.7 Wykorzystanie modeli do prognozowania wydajnosci aplikacji równoleglej79 5.8 Podsumowanie ................................................................................................ 83 6 Metodyka postepowania przy budowie modeli statystycznych dla potrzeb srodowiska rozproszonego .............................................................................................. 85 6.1 Zalozenia podstawowe .................................................................................... 85 6.2 Glównie czynniki majace wplyw na aplikacje rozproszone ........................... 86 6.2.1 Ilosc komputerów polaczonych w siec.................................................... 87 6.2.2 Moc obliczeniowa komputerów.............................................................. 88 6.2.3 Liczba i rozmiar danych.......................................................................... 88 6.2.4 Homogenicznosc a heterogenicznosc srodowiska .................................. 88 6.2.5 Przepustowosc sieci................................................................................. 89 6.2.6 Lokalnosc programu................................................................................ 89 6.2.7 Cechy indywidualne aplikacji rozproszonych......................................... 89 6.3 Analiza i weryfikacja modeli........................................................................... 90 6.4 Podsumowanie ................................................................................................ 92 7 Zastosowanie opracowanej metodyki do prognozowania wydajnosci aplikacji wykonywanych w srodowiskach rozproszonych............................................................ 95 7.1 Badanie wydajnosci aplikacji rozwiazujacej uklady równan rekurencyjnych... ......................................................................................................................... 95 7.1.1 Zakres danych do analizy........................................................................ 95 7.1.2 Modele statystyczne czasu wykonania aplikacji..................................... 97 7.1.3 Efektywnosc oraz przyspieszenie wykonania kodu................................ 99 7.2 Analiza wplywu wartosci wspólczynnika na czas generacji rozwiazania .... 100 7.2.1 Zalozenia wstepne................................................................................. 100 7.2.2 Modele czasu wykonania ...................................................................... 101 7.2.3 Opis matematyczny efektywnosci aplikacji.......................................... 103 7.3 Modele statystyczne aplikacji odpowiedzialnej za mnozenie macierzy....... 106 7.3.1 Charakterystyka srodowiska rozproszonego ......................................... 106 7.3.2 Modele efektywnosci dla rozproszonego mnozenia macierzy.............. 106 7.3.3 Przyspieszenie wykonania aplikacji w srodowisku rozproszonym....... 108 7.4 Charakterystyka wydajnosciowa programu rozwiazujacego uklady równan metoda Gaussa-Seidla ............................................................................................... 109 2 7.4.1 Zakres badan......................................................................................... 109 7.4.2 Prognozowanie czasu wykonania programu......................................... 110 7.5 Modele statystyczne wydajnosci aplikacji w srodowisku .NET Remoting .. 112 7.5.1 Architektura aplikacji rozproszonej wykorzystywanej do badan......... 112 7.5.2 Zasada dzialania testowanych aplikacji................................................ 114 7.5.3 Badanie zaleznosci czasu i przyspieszenia obliczen rozproszonych od rozmiaru problemu................................................................................................ 116 7.5.4 Analiza kosztów komunikacji w zaleznosci od protokolu i metody dekompozycji dziedzinowej.................................................................................. 128 7.6 Wykorzystanie modeli do prognozowania wydajnosci aplikacji rozproszonej.. ....................................................................................................................... 131 7.7 Podsumowanie .............................................................................................. 133 8 Wnioski................................................................................................................. 136 3 1 Wstep 1.1 Wprowadzenie Postep w dziedzinie sprzetu i oprogramowania spowodowal, iz w ostatnich latach obserwuje sie coraz wieksze zainteresowanie systemami wieloprocesorowymi oraz rozproszonymi. Mimo nowoczesniejszych maszyn, szybszych i wydajniejszych procesorów, dla niektórych zadan, moc obliczeniowa okazuje sie niewystarczajaca. W celu zwiekszenia wydajnosci wykonywania aplikacji stosuje sie uwspólbieznienie procesów. Dwa procesy sa wspólbiezne, jezeli jeden z nich rozpoczyna sie przed zakonczeniem drugiego [Weiss93]. Wspólbieznosc uzyskuje sie poprzez rozproszone lub równolegle przetwarzanie danych z wykorzystaniem kilku wspólpracujacych procesorów. Dzieki równoleglemu, czyli jednoczesnemu wykonywaniu obliczen przez wiele procesorów lub stanowisk w systemach rozproszonych, mozna uzyskac znaczne przyspieszenie w stosunku do obliczen wykonywanych na maszynie jednoprocesorowej. O atrakcyjnosci systemów równoleglych decyduja tkwiace w nich ogromne mozliwosci koncentracji zasobów obliczeniowych (takich, jak np. procesory lub pamiec) w celu rozwiazywania najbardziej zlozonych zagadnien obliczeniowych. Dazy sie do skrócenia czasu wykonania programu, podniesienia efektywnosci, zmniejszenia kosztów. Nalezy odpowiedziec na pytanie, przy jakich warunkach wykonanie kodu równoleglego jest oplacalne. Teoretycznie liczba procesorów okresla wielokrotnosc przyspieszenia wykonywanych obliczen, w rzeczywistosci przyspieszenie jest mniejsze ze wzgledu na ograniczenia w dostepie do wspóldzielonych zasobów, koniecznosc synchronizacji watków, opóznienia w przesyle komunikatów, czy zaleznosci wystepujace miedzy danymi. Wiadomym jest, iz istotny wplyw na wydajnosc aplikacji ma rozmiar programu, ilosc operacji do wykonania, architektura sprzetowa, ilosc procesorów, sposób dostepu do pamieci, sposób zrównoleglenia, ilosc i rozmiar watków, ilosc synchronizacji, srodowisko operacyjne i wiele innych czynników. Dlatego koniecznym jest stworzenie aparatu matematycznego za pomoca którego mozna by bez uruchamiania programu odpowiedza na pytanie, jakie czynniki 4 nalezy dobrac, aby zadanie zostalo wykonane efektywnie i spelnialo zalozenia uzytkowników systemu. Rozwiazaniem tego problemu moze byc budowa modeli statystycznych, które pozwalaja na badanie i przewidywanie zachowania sie systemu bez koniecznosci uruchamiania aplikacji. Modele takie dolaczone do oprogramowania moga pomóc w podjeciu decyzji, czy oplacalnym jest zrównoleglenie i z jakimi parametrami nalezy je wykonac, aby otrzymac satysfakcjonujace wyniki. Narzedziem pomocnym przy tworzeniu modeli jest analiza statystyczna. Przy prowadzeniu analizy badanego zjawiska nalezy rozstrzygnac wzajemne zaleznosci pomiedzy wplywajacymi na nie czynnikami. Zjawiska takie moga byc bardzo zlozone, co wymusza zastosowanie do ich opisu duzej liczby zmiennych. Zmienne zmieniaja sie pod wplywem róznorodnych czynników, w tym takze losowych, oraz pozostaja we wzajemnych zaleznosciach. Aby znalezc czynniki, które w znaczacy sposób wplywaja na badane zjawisko korzysta sie z metod estymacji statystycznej. Polega ona na obliczeniu zaleznosci miedzy zestawem zmiennych niezaleznych, a zmienna zalezna. Estymacja jest procedura dopasowania, która objasnia, czy i jak zmienna zalezna jest zwiazana z lista zmiennych niezaleznych [Cuthbertson90]. Dzieki opisowi badanego zjawiska przy pomocy metod regresji mozna wyjasniac, przewidywac i sterowac zmiennymi, aby uzyskac satysfakcjonujaca wartosc zmiennej wyjsciowej. W pracy przedstawiono metody implementacji modeli statystycznych na komputery równolegle i rozproszone. Zostala dokonana analiza cech srodowisk, w wyniku czego wybrane zostaly czynniki, które moga posluzyc do prognozowania wartosci wydajnosci aplikacji. Pomimo ujecia w modelu tylko kilku z czynników charakteryzujacych badane zjawisko, wartosci wskazników dopasowania modelu do danych rzeczywistych sa zadawalajace, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. Z próbami tworzenia modeli mozna spotkac sie w pracach [Calahan79], [Bucher88], [Hockney81], jednak w znacznej mierze dotycza one komputerów wektorowych. O potrzebie tworzenia modeli matematycznych wspomina sie w publikacjach [Foster94], [Karbowski01], [Wolfe95], gdzie znalezc mozna rozwazania na poziomie implementacji algorytmów, a nie uruchamiania programów. Istnieje takze szereg modeli statystycznych opisujacych zachowanie sie systemów informatycznych w róznych dziedzinach zycia, [Stanisz98], [Czerwinski82], brak jest w nich jednak opisu wplywu charakterystyk równoleglego wykonywania kodu. 5 Wyniki otrzymywane podczas badan prowadzonych w zakresie niniejszej pracy zostaly przedstawione w nastepujacych publikacjach: [Berlinska02], [Berlinska03a], [Berlinska03b], [Berlinska04a], [Berlinska04b], [Berlinska04c], [Berlinska04d]. Podczas pisania rozprawy skorzystano lacznie ze 116 pozycji literaturowych. 6 1.2 Teza badawcza i cel pracy Teza badawcza niniejszej pracy zaklada, ze mozliwym jest opracowanie metod tworzenia modeli statystycznych, które opisywac beda czas wykonania programu, przyspieszenie oraz efektywnosc aplikacji równoleglych i rozproszonych, w zaleznosci od parametrów sprzetowych i programowych z dokladnoscia prognozowania odpowiednia do zastosowania w praktyce. Celem pracy jest opracowanie i weryfikacja metod tworzenia modeli regresyjnych charakteryzujacych programy równolegle i rozproszone pod wzgledem czasu ich wykonywania, przyspieszenia oraz efektywnosci. Stworzenie modeli pozwoli na badanie i przewidywanie zachowania sie systemu bez koniecznosci uruchamiania aplikacji. Modele takie dolaczone do oprogramowania moga pomóc w podjeciu decyzji, czy oplacalnym jest korzystanie z aplikacji równoleglych badz rozproszonych, oraz z jakimi parametrami nalezy je wykonac, aby otrzymac satysfakcjonujace wyniki. Wynikiem praktycznym niniejszej pracy jest sformulowanie metodyki postepowania przy tworzeniu modeli statystycznych charakteryzujacych wydajnosc aplikacji dzialajacych w srodowiskach równoleglym oraz rozproszonym, a takze ich weryfikacja pod katem poprawnosci prognozowania, odpowiedniej do zastosowania w praktyce. Sposób postepowania przy tworzeniu modeli dla aplikacji uruchamianych na komputerach równoleglych przedstawiono w rozdziale 4, rozdzial 6 zawiera metodyke dla systemów rozproszonych. W ramach pracy przeanalizowano cechy srodowisk, w wyniku czego wybrane zostaly czynniki, które moga posluzyc do prognozowania wartosci wydajnosci aplikacji. Mimo ujecia w modelu tylko kilku czynników majacych wplyw na badane wielkosci, wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co wskazuje na poprawnosc zaprezentowanej metodyki. Mozliwosc rezygnacji z niektórych czynników podczas okreslania wartosci parametrów wyjsciowych, czyni zaprezentowane podejscie elastycznym, prostym i mozliwym do wykorzystania przez kazdego z uzytkowników systemu. 7 Modele zaprezentowane w rozdzialach 5 oraz 7 prognozuja wydajnosc programów równoleglych oraz rozproszonych w zaleznosci od czynników sprzetowych i programowych, które moga ulegac zmianie z poziomu uzytkownika aplikacji. 1.3 Struktura pracy Niniejsza praca zawiera osiem rozdzialów. Rozdzial pierwszy jest wprowadzeniem do tematyki niniejszej pracy. Przedstawiono w nim teze badawcza, uzasadnienie wyboru tematu i cele pracy. W rozdziale drugim dokonano analizy metod sluzacych opisowi badanych zjawisk, przedstawiono pojecia podstawowe z zakresu analizy statystycznej niezbedne do prowadzenia dalszych rozwazan. Omówiono glówne etapy modelowania procesów. Rozdzial trzeci poswiecono zaprezentowaniu cech komputerów równoleglych oraz rozproszonych. Scharakteryzowano srodowiska programowania wspólbieznego oraz wskazano metody pozyskiwania charakterystyk wydajnosciowych systemów. Przedstawiono w nim takze podstawowe miary, modele i prawa dotyczace efektywnosci zrównoleglenia. Metodyke postepowania przy tworzeniu modeli statystycznych dla komputerów równoleglych zaprezentowano w rozdziale czwartym. Dokonano analizy czynników charakteryzujacych aplikacje oraz srodowisko równolegle, wskazano, które z nich moga zostac uzyte do budowy modelu. Podano metody okreslania wartosci wspólczynników, a takze weryfikacji modeli. Weryfikacje metodyki poprzez utworzenie modeli i zbadanie mozliwosci prognozowania na ich podstawie wydajnosci rzeczywistych srodowisk zawiera rozdzial piaty. Dla aplikacji realizujacych rózne zadania zbudowano modele i przeanalizowano je pod katem zmiennych w istotny sposób wplywajacych na charakterystyke wykonywanych zadan. W rozdziale szóstym podano metodyke postepowania przy budowie modeli statystycznych dla aplikacji dzialajacych w srodowisku rozproszonym. Rozdzial siódmy poswiecony zostal doswiadczalnej weryfikacji zaprezentowanej metodyki dla potrzeb srodowiska rozproszonego. Stworzono i poddano analizie modele efektywnosci i czasu wykonania aplikacji w zaleznosci od róznych parametrów sprzetowych i programowych. Rozdzial ósmy zawiera wnioski dotyczace realizacji zagadnien niniejszej pracy. 8 2 Analiza metod statystycznych sluzacych opisowi zjawisk W literaturze [Czachórski83], [Lazowska84] spotkac mozna opis metod oceny wydajnosci duzych systemów komputerowych, których podstawa sa modele teorii masowej obslugi (modele kolejkowe), a zadaniem oszacowanie, dla calego systemu lub pewnych jego elementów, takich cech jak przepustowosc (liczba programów lub zgloszen obslugiwanych w jednostce czasu), czy wykorzystanie (procent czasu, przez jaki system realizuje obsluge uzytkowników w stosunku do calego czasu pracy). Metody oceny efektywnosci maszyn równoleglych koncentruja sie na pojedynczym programie, realizujacym okreslony algorytm i zawierajacym duza liczbe operacji. Program taki realizowany na pojedynczym procesorze jest bardzo czasochlonny. Dla maszyny o architekturze równoleglej metody ocen wydajnosci koncentruja sie na oszacowaniu czasu pracy oraz szybkosci obliczen programu [Szczerbinski93]. Badanie efektywnosci funkcjonowania srodowisk równoleglych zalezy zarówno od architektury komputera jak i od konkretnych zastosowan programowych. Najprostsza charakterystyka komputera równoleglego jest charakterystyka jednoparametrowa [Smith88]. Definiuje sie ja czesto jako maksymalna szybkosc przetwarzania (ang. peak performance). Jest to jednak szybkosc teoretyczna, praktycznie osiagana jedynie w warunkach absolutnie optymalnych przez bardzo krótki okres [Szczerbinski93] . Charakterystyke wydajnosci dla aplikacji równoleglej podaje sie takze jako rzeczywista szybkosc przetwarzania dla konkretnego programu. Wartosci uzyskuje sie droga doswiadczalna, wiec charakterystyka tworzona jest dla maszyny juz uzytkowanej. Aby opis byl jak najpelniejszy przygotowuje sie cale zestawy testowe zwane benchmarkami [Patterson96]. Istnieja takze charakterystyki uwzgledniajace niemal kazdy aspekt komputera równoleglego. W takim przypadku liczba parametrów równania moze przekraczac 1000, a zadanie matematyczne jest bardzo trudne do rozwiazania oraz czasochlonne. Dla wydajnego planowania zadan do wykonania na komputerze równoleglym nalezy korzystac ze znacznie prostszego modelu, z mozliwie mala liczba parametrów, przy jednoczesnym dobrym uchwyceniu zaleznosci czasowych. Dokladnosc opisu dzialania komputera lub konkretnej aplikacji w postaci modelu matematycznego proporcjonalna jest do liczby uzytych parametrów, co narzuca koniecznosc rozsadnego kompromisu. Jednak nawet, gdy 9 parametrów bedzie kilka, zbudowany z nich uproszczony model moze byc bardzo uzyteczny, gdyz pozwalac bedzie na szacowanie, który wariant uruchomienia bedzie najbardziej korzystny dla danej architektury sprzetowej. Za pomoca metod statystycznych mozna opisac wspólzaleznosci miedzy czynnikami majacymi wplyw na badana wielkosc. Po dokonaniu analizy zwiazków pomiedzy zmiennymi, nastepuje opis zjawiska, a otrzymane wyniki mozna wykorzystywac we wnioskowaniu [Hozer98]. 2.1 Pojecia podstawowe modelowania statystycznego Modelowanie jest procesem poszukiwania formalnych struktur, które gwarantuja zgodnosc teorii i danych statystycznych [Pawlowski76]. Kazdy model jest swoistym prototypem rzeczywistosci, którego zadaniem jest odwzorowanie jak najlepiej tych wlasciwosci, które sa wazne z punktu widzenia prowadzonej analizy, a zignorowanie czesciowo lub calkowicie tych, które sa nieistotne. Modelowanie jest to przyblizone odtwarzanie najwazniejszych wlasciwosci oryginalu. Podstawowym celem modelowania w nauce jest uproszczenie zlozonej rzeczywistosci, pozwalajace na poddanie jej procesowi badawczemu. Dzieki modelowaniu [Zeigler00]: − zmniejsza sie lub powieksza obiekt badan do dowolnej wielkosci, − analizuje sie procesy trudne do uchwycenia ze wzgledu na zbyt szybkie lub zbyt wolne tempo ich przebiegu, − bada sie jeden wybrany aspekt zagadnienia pomijajac inne. Statystyka opisowa zajmuje sie metodami statystycznymi, za pomoca których opisuje sie i charakteryzuje w sposób sumaryczny badane zbiorowosci [Hozer98]. Statystyka matematyczna zajmuje sie metodami wnioskowania statystycznego, które polegaja na tym, ze na podstawie wyników uzyskanych z próby formuluje sie wnioski o calej zbiorowosci. Wnioskowanie statystyczne obejmuje estymacje i weryfikacje hipotez statystycznych [Pawlowski76]. Teoria zbiorów przyblizonych stoi u podstaw syntezy zaawansowanych i efektywnych metod analizy i redukcji zbiorów danych. W szczególnosci metody te moga byc stosowane w eksploracji danych, rozwiazywaniu zlozonych zadan klasyfikacji i komputerowego wspomagania róznorodnych procesów decyzyjnych [Mrózek99]. Metoda prób statystycznych umozliwia znajdowanie rozwiazan zlozonych problemów poprzez wielokrotne badanie próbek dobieranych losowo. Obserwacja rezultatów uzyskanych 10 z odpowiednio duzej ilosci prób pozwola na osiagniecie wyników zblizonych do zadanych [Twardochleb02]. Model matematyczny – opisuje zjawisko za pomoca równan matematycznych. Model ekonometryczny - to formalny opis stochastycznej zaleznosci wyróznionej wielkosci, zjawiska lub przebiegu procesu ekonomicznego (zjawisk, procesów) od czynników, które je ksztaltuja, wyrazony w formie pojedynczego równania badz ukladu równan [Zelias97]. Model statystyczny – model, w którym nie jest istotny czynnik czasu [Bartoszewicz89]. Badanie zjawisk statystycznych obejmuje cztery etapy [Zajac94]: - przygotowanie badania; - zbieranie obserwacji; - opracowanie materialu statystycznego; - statystyczna analiza wyników obserwacji. Podstawowe zadania modeli [Gajek94]: - Pozwalaja zrozumiec zachowanie badanego obiektu oraz zaleznosci wystepujacych miedzy czynnikami ukladu. - Porzadkuja i systematyzuja informacje statystyczne. Dzieki modelom mozliwe staje sie nadanie wlasciwej interpretacji obserwacjom. - Sluza testowaniu róznych hipotez i w wielu przypadkach pozwalaja wskazac, która z teorii lepiej opisuje rzeczywistosc. - Umozliwiaja prognozowanie zjawisk w sposób zobiektywizowany i do maksimum wykorzystujacy wiedze dotyczaca przeszlosci. Analiza regresji jest uniwersalnym aparatem matematycznym sluzacych do badania zaleznosci statystycznych i umozliwia wyznaczanie opisu matematycznego obiektów o nieznanych charakterystykach na podstawie obserwacji wartosci wejsciowych i wyjsciowych [Gajek94]. Proces analizy sprowadza sie do budowy opisowego modelu zjawiska, statystycznej estymacji jego parametrów oraz wnioskowania na podstawie modelu. Kolejnym etapem jest przeprowadzenie weryfikacji otrzymanej zaleznosci. Utworzony model to równanie lub zbiór równan matematycznych, które w przyblizony sposób przedstawiaja zasadnicze powiazania ilosciowe wystepujace miedzy rozpatrywanymi czynnikami. Tak wiec model statystyczny jest sformalizowanym opisem 11 badanego fragmentu rzeczywistosci uwzgledniajacym tylko istotne czynniki, a nieistotne pomijajacym [Hozer98]. Poniewaz pomija sie pewne nie majace wiekszego wplywu czynniki wartosci zmiennej objasnianej róznia sie nieco od wartosci uzyskanych z doswiadczenia. Przy weryfikacji zaleznosci ocenia sie stopien dopasowania zaleznosci zawierajacej tylko wybrane funkcje zmiennych niezaleznych do danych. Dzieki opisowi badanego zjawiska przy pomocy metod regresji mozna wyjasniac, przewidywac i sterowac zmiennymi, aby uzyskac satysfakcjonujaca wartosc zmiennej wyjsciowej. Model opisujacy badane zjawisko, mozna w ogólnej postaci zapisac nastepujaco [Gajek94]: Y = F(x1 , x 2 , ..., x n ), ( 2.1) gdzie skladnik F(x...) oznacza, ze zmienna zalezna jest funkcja zmiennych niezaleznych. Funkcja regresji przyporzadkowuje srednie wartosci zmiennej zaleznej konkretnym wartosciom zmiennej niezaleznej. Najczesciej spotyka sie liniowe funkcje regresji, ale dane moga czasem wymagac dopasowania funkcji nieliniowej. Decyzje o rodzaju funkcji podejmuje sie po analizie wykresu rozrzutu. Liniowy model regresji wielokrotnej jest okreslony równaniem [Pawlowski73]: Y = b 0 + b1 X 1 + b 2 X 2 + ... + b κ X κ + ε ( 2.2) gdzie: bi - parametry modelu (wspólczynniki regresji) opisujace wplyw i-tej zmiennej, ε - skladnik losowy. Wspólczynniki bi sa wielkosciami teoretycznymi szacowanymi na podstawie n-elementowej próby. Ogólny przebieg procesu modelowania przedstawiony zostal na Rys. 2.1. 12 Rys. 2.1 Etapy procesu badawczego 2.2 Dobór wspólczynników równania Poprawnosc zbudowanego modelu w duzej mierze zalezy od odpowiedniego doboru zmiennych, które maja wplyw na badane zjawisko. Zmienne objasniajace powinny odznaczac sie nastepujacymi wlasnosciami [Gajek94]: - miec odpowiednio wysoka zmiennosc; - byc silnie skorelowane z zmienna objasniana; - byc slabo skorelowane miedzy soba. Wybór zmiennych do modelu winien odbywac sie wedlug nastepujacej procedury [Stanisz98]: 1. na podstawie wiedzy merytorycznej sporzadza sie zestaw potencjalnych zmiennych, którymi sa wszystkie najwazniejsze wielkosci oddzialujace na zmienna objasniana; 2. sporzadza sie wektor Y obserwacji zmiennej zaleznej oraz macierz X obserwacji zmiennych X1 , X2 , ..., Xn, 3. eliminuje sie zmienne odznaczajace sie zbyt niskim poziomem zmiennosci, 4. oblicza sie wspólczynniki korelacji miedzy wszystkimi rozpatrywanymi zmiennymi, 5. przeprowadza sie redukcje zbioru potencjalnych zmiennych objasniajacych. Warunkiem wstepnym do uznania zmiennych za odpowiednie do budowy modelu jest ich wysoka zmiennosc. Miara poziomu zmiennosci jest wspólczynnik zmiennosci okreslany jako: 13 νi = Si ( 2.3) Xi gdzie Si jest odchyleniem standardowym zmiennej Xi , Xi - srednia arytmetyczna zmiennej. Obiera sie krytyczna wartosc wspólczynnika zmiennosci ν * . Za zmienne nie wnoszace istotnych informacji uznaje sie zmienne spelniajace nierównosc: ν i ≤ν * ( 2.4) Aby ocenic sile liniowej zaleznosci zmiennej Y od zmiennych X wyznacza sie wspólczynnik korelacji wedlug wzoru: n ri = ∑(y z =1 n ∑(y z =1 z − y ) ⋅ ( x zi − xi ) ( 2.5) n − y) ⋅ ∑ ( x zi − xi ) 2 z 2 z =1 Wspólczynniki miedzy potencjalnymi zmiennymi zaleznymi oblicza sie na podstawie wzoru: n rij = ∑(x z =1 n ∑ (x z =1 zi − xi ) ⋅ ( x zj − x j ) ( 2.6) n − xi ) ⋅ ∑ ( x zj − x j ) 2 zi 2 z =1 Dazy sie do wyboru tych zmiennych, które sa silnie skorelowane ze zmienna objasniana i jednoczesnie slabo skorelowane miedzy soba [Seber77]. Wyboru zmiennych do modelu mozna dokonac takze za pomoca metody wskazników pojemnosci informacyjnej. Nalezy wtedy wyznaczyc wskazniki indywidualne oraz integralne. Wartosci tych wskazników naleza do przedzialu [0,1] i przyjmuja tym wieksze wartosci, im zmienne objasniajace sa silniej skorelowane ze zmienna objasniana oraz slabiej skorelowane miedzy soba. Jako zmienne do modelu wybiera sie taka kombinacje zmiennych, której odpowiada maksymalna wartosc wskaznika integralnej pojemnosci informacyjnej. 2.3 Estymacja parametrów Estymacja to szacowanie wartosci parametrów lub postaci funkcji rozkladu prawdopodobienstwa w populacji generalnej, na podstawie wyników próby [Pawlowski76]. Estymacja pozwala przy ustalonym z góry prawdopodobienstwie (zwanym poziomem ufnosci) utworzyc dla nieznanej wartosci danej cechy populacji oszacowanie zwane przedzialem ufnosci. Punktem wyjsciowym w estymacji jest wylosowanie z populacji nelementowej próby i poznanie w niej okreslonych cech, czyli zmiennych [Wickens82]. Na 14 podstawie uzyskanych wyników eksperymentalnych nalezy wyciagnac wnioski dotyczace badanej cechy w calej populacji. Estymator jest zmienna losowa i ma pewien rozklad. Mozna obliczyc jego wartosc oczekiwana – E(Tn ) i odchylenie standardowe - D(Tn ) nazywane srednim bledem szacunku, gdzie: Θ - parametr - charakterystyka okreslajaca cala populacje, Tn - estymator - pewna funkcja okreslona na próbie, która sluzy do oszacowania nieznanej wartosci parametru Θ , T - ocena parametru Θ , jest to konkretna wartosc liczbowa, która przyjmuje estymator. Podstawowym narzedziem szacowania nieznanego parametru jest estymator wyliczony na podstawie próby. Powinien on posiadac nastepujace wlasciwosci [Bartoszewicz89], [Pawlowski76][Sekomski70][Seber77] [Gajek94]: 1. Nieobciazonosc: E(Tn ) = Θ odchylenia wartosci estymatora od wartosci parametru nie maja tendencyjnego charakteru (nie ma bledu systematycznego). Estymator nieobciazony to ten, którego przecietna wartosc jest dokladnie równa wartosci szacowanego parametru. Innymi slowy, przy wielokrotnym losowaniu próby srednia z wartosci przyjmowanych przez estymator nieobciazony jest równa wartosci szacowanego parametru; 2. Zgodnosc: lim P { Tn − Θ < ε } = 1 n→ ∞ dla dowolnego ε > 0 wraz ze wzrostem liczby obserwacji wzrasta dokladnosc szacunku. Zgodnosc oznacza, ze dla dostatecznie duzej próby blad w ocenie parametru przez estymator jest mniejszy od dowolnie malej (z góry ustalonej) liczby. 3. Efektywnoscia estymatora nieobciazonego Tn parametru Θ nazywamy iloraz: e(Tni ) = D 2 (Tn* ) D 2 (Tni ) gdzie: Tn* - oznacza estymator najefektywniejszy, Tni - to estymator badany. Estymator jest najefektywniejszy jezeli jest nieobciazony i ma najmniejsza wariancje. Spelnienie wszystkich powyzszych wlasnosci zapewnia otrzymanie wyników z próby zblizonych do rzeczywistosci. W zaleznosci od sposobu dokonywania szacunku wartosci cechy, wyróznia sie: • estymacje punktowa - gdy nie znamy jednego lub kilku parametrów okreslajacych rozklad analizowanej cechy w populacji i nalezy ustalic ich wartosci liczbowe na 15 podstawie wyników próby. Estymacja punktowa polega na tym, ze za ocene parametru przyjmuje sie konkretna liczbe otrzymana na podstawie próby losowej: Θ = T lub Θ = T ± D(Tn ) • Estymacje przedzialowa, która polega na tym, ze konstruuje sie pewien przedzial (zwany przedzialem ufnosci), o którym mozna powiedziec, iz z okreslonym prawdopodobienstwem (1- α ) pokryje wartosc szacowanego parametru. Prawdopodobienstwo (1- α ) jest nazywane wspólczynnikiem ufnosci. P { kd < Θ < k g }= 1- α gdzie: kd –jest to dolna granica przedzialu, k g – górna granica przedzialu ufnosci. Przy estymacji nalezy ustalic przedzial ufnosci w celu oszacowania wartosci pewnej cechy na podstawie próby. Przedzial ufnosci okresla prawdopodobny zasieg odchylenia naszych wyliczen od wartosci rzeczywistej. Interpretacja przedzialu ufnosci jest nastepujaca: im wezszy przedzial ufnosci, tym dokladniej obliczony estymator przybliza wartosc rzeczywista. I odwrotnie: szeroki przedzial ufnosci oznacza mozliwosc duzych odchylen wartosci - czyli mala wiarygodnosc wyników. 2.4 Weryfikacja otrzymanych wyników Weryfikacja hipotez statystycznych ma na celu sprawdzenie sformulowanych hipotez statystycznych, czyli wplywa na podjecie okreslonych decyzji. Istnieje wiele miar umozliwiajacych okreslenie scislosci zwiazku badanych cech. Szeroki opis miar zawarty jest w [Bartoszewicz89], [Oktaba86], [Seber77], [Welfe95], [Krzysztofiak81]. Proces weryfikacji hipotez statystycznych przebiega w 4 etapach [Welfe95]: 1. Sformulowanie hipotezy zerowej (H0) oraz odpowiadajacej jej hipotezy alternatywnej (H1). 2. Dobranie odpowiedniego dla hipotezy zerowej testu i obliczenie jego wartosci na podstawie danych pochodzacych z próby. Jest to najwazniejsza decyzja podejmowana w trakcie weryfikacji hipotez. Wybór niewlasciwego testu moze doprowadzic do blednych rezultatów analizowania. 3. Przyjecie odpowiedniego poziomu istotnosci. 4. Przy ustalonym poziomie istotnosci znajdujemy obszary krytyczne i w oparciu o nie podejmujemy decyzje o odrzuceniu lub nie hipotezy zerowej. 16 Sprawdzenie, czy zaleznosc jest poprawnie okreslona moze odbyc sie na jeden z nizej przedstawionych sposobów [Pawlowski76], [Park89], [Nowak98]: - wspólczynnik R2 – jest traktowany jako miara stopnia dopasowania powierzchni regresji do danych doswiadczalnych. Jest on kwadratem wspólczynnika korelacji wielokrotnej z próby. Wartosc R2 nalezy do przedzialu domknietego [0,1]. Dopasowanie jest tym lepsze, im wspólczynnik blizszy jednosci; n R2 = ∑(y Wspólczynnik zmiennosci losowej, − y) 2 z − y) z =1 n ∑(y z =1 - z ( 2.7) który 2 informuje jaki procent sredniej arytmetycznej zmiennej objasnianej modelu stanowi odchylenie standardowe reszt. Mniejsze wartosci tego wspólczynnika wskazuja na lepsze dopasowanie modelu do danych empirycznych; We = - Se y ⋅100% ( 2.8) Wspólczynnik zbieznosci – informuje jaka czesc calkowitej zmiennosci zmiennej objasnianej nie jest wyjasniona przez model. Dopasowanie jest tym lepsze, im wspólczynnik blizszy zeru; n ϕ2 = ∑e z =1 n ∑( y z =1 - 2 z z ( 2.9) − y) 2 statystyka F –Snedecora - hipoteze o nieistotnosci wspólczynników odrzuca sie, gdy obliczona wartosc F przekracza wartosc krytyczna Fα, przy przyjetym poziomie istotnosci α; F= - R 2 n − k −1 ⋅ 1− R2 k ( 2.10) Statystyka t-Studenta – hipoteze odrzuca sie, gdy obliczona wartosc |ti| przekracza wartosc krytyczna tα/2,f, przy zadanym poziomie istotnosci α, w przeciwnym wypadku nie ma podstaw do odrzucenia hipotezy. 17 Testy istotnosci sa takim rodzajem testów, w których na podstawie wyników próby losowej podejmuje sie jedynie decyzje odrzucenia hipotezy sprawdzanej lub stwierdza sie, ze brak jest podstaw do jej odrzucenia [Stanisz98]. Wyrózniamy parametryczne testy istotnosci (dotyczace wartosci parametrów rozkladu) oraz nieparametryczne testy istotnosci. Testy zgodnosci dotycza postaci rozkladu teoretycznego badanej zmiennej losowej skokowej lub ciaglej. Weryfikuja one stawiane przez badaczy hipotezy dotyczace rozkladu zmiennej losowej [Stanisz98]. We wszystkich testach, jesli statystyki okaza sie istotne (tzn. p <0,05), to odrzucamy hipoteze zerowa o zgodnosci danych z rozkladem normalnym. Oznacza to, ze dana zmienna (cecha) nie ma rozkladu normalnego. Nieparametryczne testy istotnosci sluza do sprawdzania hipotez nieparametrycznych (czyli takich, które nie dotycza parametrów). Mozna podzielic na trzy zasadnicze grupy: - testy zgodnosci; - testy losowosci - weryfikujace hipoteze, ze próba ma charakter losowy, np. test serii; - testy niezaleznosci - sprawdzajace hipoteze o niezaleznosci dwóch zmiennych losowych, np. test niezaleznosci χ 2 . Do najczesciej stosowanych testów weryfikujacych normalnosc rozkladów naleza [Cuthbertson90], [Intriligator71]: - Test Kolmogorowa i Smirnowa. Test ten opiera sie na porównaniu procentów skumulowanych zaobserwowanych z oczekiwanymi. Jako wartosc testu podawana jest maksymalna róznica bezwzgledna pomiedzy zaobserwowanymi i oczekiwanymi procentami skumulowanymi. Wymaga on znajomosci parametrów rozkladu (sredniej i odchylenia standardowego calej populacji). Kiedy parametry te nie sa znane stosuje sie test Kolmogorowa i Smirnowa z poprawka Lillieforsa. - test W Shapiro i Wilka. Test ten jest najbardziej polecany, ze wzgledu na duza moc. Mozna go równiez stosowac do malych prób. - test Pearsona. W celu weryfikacji hipotezy o normalnosci rozkladu wyniki próby dzielone sa na rozlaczne klasy, a nastepnie porównuje sie liczebnosci: obserwowana i oczekiwana w kazdej z tych klas. 2.5 Prognozowanie na postawie modelu Interpretacja wyników otrzymanych po weryfikacji hipotez jest jednym z najtrudniejszych i najwazniejszych kroków w przeprowadzanej analizie statystycznej. 18 Poprawna interpretacja nie moze byc niezalezna od wiedzy na temat charakteru i sposobu otrzymywania danych. Prognoze mozna zdefiniowac jako [Czerwinski82] sad, którego prawdziwosc jest zdarzeniem losowym, przy czym prawdopodobienstwo zdarzenia jest nie mniejsze od ustalonej z góry bliskiej jednosci liczby zwanej wiarygodnoscia prognozy. Inna z definicji [Seber77] okresla, ze prognoza to konkretny wynik wnioskowania w przyszlosc na podstawie znajomosci modelu opisujacego pewien wycinek badanych zjawisk. Prognoza to racjonalne i naukowe przewidywanie zdarzen, które powinno zachowac nastepujace zasady [Zelias97]: - prognoza powinna byc formulowana z wykorzystaniem dorobku nauki; - powinna byc weryfikowana empirycznie; - nie powinna byc stwierdzeniem stanowczym, ale akceptowalnym. 2.6 Analiza statystyczna przy pomocy programów komputerowych W dzisiejszych warunkach analiza statystyczna wykonywana jest przy pomocy komputerów. Daje to mozliwosc szybkiego otrzymywania wyników, wprowadzania wiekszej ilosci zmiennych, poprawnego rozwiazywania ukladów. Na rynku znajduje sie szereg oprogramowania wspomagajacego budowanie modeli statystycznych i ekonometrycznych. Do najbardziej znanych zaliczyc mozna: − − − − − − − − GAUSS (APTECH), MATHCAD & S PLUS, STATISTICA, EVIEWS, STATGRAPHICS, MATHSTATICA, MATLAB AND SIMULINK, MATHEMATICA . Do celów realizacji modeli w pracy wybrano program STATISTICA. STATISTICA to uniwersalny, zintegrowany system do statystycznej analizy danych, tworzenia wykresów oraz zarzadzania danymi. Obejmuje obszerny zestaw zaawansowanych procedur analitycznych stosowanych w nauce, biznesie i technice. System ten zawiera procedury statystyczne i graficzne ogólnego stosowania, oraz specjalistyczne techniki analityczne. Znajduje zastosowanie przy opracowaniu i analizie statystycznej, pozwala wydobyc istotne informacje i przedstawic je w formie wykresów lub tabel [Stanisz98]. Program udostepnia miedzy innymi [STATISTICA97]: 19 • zarzadzanie danymi, • statystyki opisowe, • tabele wielowymiarowe (raporty prezentacyjne), • analizy nieparametryczne, • dopasowanie rozkladów, • regresje wielokrotna, • estymacje nieliniowa, • szereg statystyk, wykresów pomocnych w analizie zjawisk. 2.7 Podsumowanie W rozdziale wykazano potrzebe wykorzystania modeli statystycznych do okreslania efektywnosci aplikacji równoleglych i rozproszonych. Zaprezentowano przeglad metod statystycznych wykorzystywanych przy budowie i weryfikacji modelu. W rozdziale 2.1 na podstawie prac [Cuthbertson92], [Nowak98] oraz [Welfe95] przedstawiono zakres stosowalnosci statystyki matematycznej, definicje modeli statystycznych oraz ich podstawowe zadania. Omówiono takze zalozenia analizy regresji, która jest uniwersalnym aparatem matematycznym sluzacych do badania zaleznosci statystycznych oraz umozliwia wyznaczanie opisu matematycznego obiektów o nieznanych charakterystykach, na podstawie obserwacji wartosci wejsciowych i wyjsciowych. Scharakteryzowano etapy procesu badawczego. Proces analizy statystycznej sprowadza sie do budowy opisowego modelu zjawiska, statystycznej estymacji jego parametrów oraz wnioskowania na podstawie modelu. Model statystyczny to równanie lub zbiór równan matematycznych, które w przyblizony sposób przedstawiaja zasadnicze powiazania ilosciowe wystepujace miedzy rozpatrywanymi czynnikami. Poprawnosc zbudowanego modelu w duzej mierze zalezy od odpowiedniego doboru zmiennych, które maja wplyw na badane zjawisko. Na podstawie prac [Seber77] i [Gajek94] w rozdziale 2.2 omówiono zasady jakie musza spelniac zmienne zalezne i niezalezne wykorzystywane przy budowie modeli. Rozdzialy 2.3 oraz 2.4 zawieraja opis metod estymacji wspólczynników linii regresji oraz metody weryfikacji modelu. Przedstawiono etapy procesu weryfikacji modeli, wspólczynniki, statystyki i testy istotnosci pozwalajace okreslic slusznosc utworzonych równan. Korzystano tu glównie z publikacji [Blake84], [Cuthbertson92], [Park89], [Seber77] oraz [Wickens82]. 20 Interpretacja wyników otrzymanych po weryfikacji hipotez jest jednym z najtrudniejszych i najwazniejszych kroków w przeprowadzanej analizie statystycznej. Na postawie pracy [Zelias97] zaprezentowano w rozdziale 2.5 mozliwosci prognozowania na postawie modelu, a rozdzial 2.6 przedstawia podstawowe programy komputerowe wykorzystywane przy budowie i weryfikacji modeli statystycznych. 21 3 Srodowiska równolegle i rozproszone Zamiast zwiekszac moc obliczeniowa pojedynczych procesorów bardziej ekonomicznym i efektywnym rozwiazaniem okazalo sie zastosowanie wielu, relatywnie tanich, standardowych procesorów. Dodatkowym bodzcem do rozwoju komputerów równoleglych jest fakt, ze wiekszosc najpowazniejszych zadan obliczeniowych opiera sie na modelach wektorowych i macierzowych, a dzialania na tego typu obiektach stosunkowo latwo daja sie dzielic na niezalezne ciagi operacji. Doprowadzilo to w ostatnich latach do popularyzacji komputerów wspólbieznie wykonujacych zadania. Obliczenia rozproszone, to takie, w których dokonano dekompozycji zadania obliczeniowego na procesy lub procesory [Brown94]. W [Catanzaro94] dokonano przegladu podstaw wieloprocesorów i szczególowo omówiono ich cechy charakterystyczne. Opis systemów wieloprocesorowych znalezc mozna takze w [Bielecki02], [Szczerbinski93]. Przeglad problemów zwiazanych ze spójnoscia pamieci podrecznych w wieloprocesorach zawiera [Lilja93] oraz [Tomasevic93]. 3.1 Komputery równolegle System wieloprocesorowy (wieloprocesor) (ang, multiprocessor system, multiprocessor) zostal zdefiniowany w roku 1970 przez Amerykanski Panstwowy Instytut Normalizacji (ANSI) jako maszyna cyfrowa zlozona z dwu lub wiecej jednostek przetwarzania sterowanych centralnie [Kozielski93]. Rozwijajac powyzsza definicje mozna stwierdzic iz system wieloprocesorowy jest to pojedynczy komputer, zawierajacy wiecej niz jeden procesor. Procesory te maja zazwyczaj zblizone wlasciwosci i mozliwosci obliczeniowe. Komputer taki pracuje pod kontrola jednego systemu operacyjnego, zapewniajacego wspólprace miedzy procesorami na róznych poziomach w celu wspólnego rozwiazania okreslonego zadania [Kozielski93]. Podstawa wspóldzialania procesorów jest komunikacja miedzy nimi i mozliwa dzieki niej synchronizacja pracy. Moze ona odbywac sie na dwa sposoby [Kozielski93]: - poprzez dostep do wspólnej pamieci operacyjnej (ang. common memory, shared memory). Architektura sytemu przedstawiona jest na Rys. 3.1. - poprzez przesylanie komunikatów (ang. message passing). Schemat przedstawiono na Rys. 3.2 22 Rys. 3.0 gg PAMIEC ...................... SIEC POLACZEN .......... Procesor 1 Procesor 2 Procesor P Rys. 3.1: Architektura systemów wieloprocesorowych z pamiecia wspólna PAMIEC .......... Procesor 1 Procesor 2 Pamiec 1 Pamiec 2 Procesor P .......... Pamiec P Rys. 3.2: Architektura systemów wieloprocesorowych z pamiecia rozproszona Systemy ze wspólna pamiecia cechuja sie teoretycznie stosunkowo szybkim mechanizmem synchronizacji, czyli komunikacji miedzyprocesorowej. Czas ten moze ulegac jednak wydluzeniu ze wzgledu na dostep wszystkich procesorów do jednej pamieci. Dlatego minimalizuje sie dostep do wspólnej pamieci poprzez pamieci lokalne, a sieci polaczen projektuje sie tak, aby zapewnialy duza przepustowosc [Karbowski01]. Zastosowanie pamieci lokalnej powoduje odciazenie pamieci wspólnej tylko dla obliczen lokalnych, tzn. obliczen nie korzystajacych z wyników pracy innych procesorów i nie generujacych wyników bedacych danymi wejsciowymi dla innych procesorów. W systemach wieloprocesorowych z pamiecia rozproszona kazdy procesor ma wlasna, dostepna tylko jemu pamiec. Komunikacja miedzy procesorami odbywa sie za posrednictwem komunikatów. Sa one przesylane przez siec polaczen. Jednakze mechanizmy synchronizacji i komunikacji sa obarczone znacznym narzutem czasowym [Karbowski01]. W przypadku rzadkich powiazan miedzy realizowanymi procesami obliczenia mozna przyspieszyc przy uzyciu bardzo duzej liczby mikroprocesorów stosujac tak zwany paralelizm masowy. Dla systemów wieloprocesorowych ze wspólna pamiecia wskazana jest gruboziarnistosc zrównoleglenia (coarse-grain), czyli kazdy watek powinien wykonac jak 23 najwieksza liczbe punktów z przestrzeni iteracji. Gruboziarnistosc zrównoleglenia uzyskuje sie przez podzial miedzy watki dziedziny wartosci zmiennej indeksowej mozliwie jak najbardziej zewnetrznej petli. Natomiast dla systemów z pamiecia rozproszona wskazana jest drobnoziarnistosc zrównoleglenia (fine-grain), w celu zapewnienia lokalnosci obliczen wykonywanych przez procesor. W celu uzyskania drobnoziarnistosci zrównoleglenia jest stosowany specjalny rodzaj transformacji polegajacy na grupowaniu iteracji w male bloki [Wolf96]. Najwazniejszymi zaletami obliczen równoleglych sa [Karbowski01]: - przyspieszenie obliczen; - zwiekszenie niezawodnosci dzialania lub dokladnosci; - stworzenie mozliwosci rozwiazywania zadan zbyt duzych dla maszyn sekwencyjnych. 3.2 Systemy rozproszone Wspólczesne systemy informatyczne budowane sa w oparciu o gigantyczna siec rozproszonych komputerów, w której miliony niezaleznych urzadzen komunikuja sie miedzy soba za pomoca laczy komunikacyjnych, na przyklad Internetu. Systemy rozproszone ciesza sie duza popularnoscia ze wzgledu na mozliwosc rozpraszania obliczen oraz wspóldzielenie zasobów [Karbowski01]. Rozproszony system komputerowy okreslany jest jako zbiór samodzielnych komputerów polaczonych za pomoca sieci, wyposazonych w oprogramowanie zaprojektowane z mysla o tworzeniu zintegrowanego srodowiska obliczeniowego [Coulouris99]. Kazda z jednostek wyposazona jest w procesor, pamiec lokalna i podsystem we/wy. Wobec braku pamieci wspólnej, komunikacja miedzy wezlami odbywa sie za posrednictwem wymiany wiadomosci (komunikatów). System rozproszony to uklad niezaleznych komputerów, który sprawia, na jego uzytkownikach wrazenie, ze jest jednym komputerem [Tanenbaum97]. Rozpraszanie obliczen polega na podzieleniu zadania obliczeniowego na kilka niezaleznych czesci i w wyniku równoleglego ich wykonania nastepuje znaczne przyspieszenie obliczen. W tej dziedzinie doskonale zastosowanie znajduja komputery równolegle. Sa to jednak maszyny bardzo drogie i nie zawsze korzysci wynikajace z szybkich obliczen równowaza koszt zakupu. Alternatywa dla maszyn równoleglych sa srodowiska rozproszone. Koszt takiego rozwiazania jest znikomy, sieci komputerowe sa latwo dostepne, istnieje jedynie potrzeba instalacji odpowiedniego oprogramowania [Wyrzykowski]. 24 Istnieje duze podobienstwo pomiedzy architektura systemu rozproszonego i architektura systemu równoleglego z pamiecia rozproszona (tj. multikomputera). W obu strukturach procesory komunikuja sie poprzez pewien uklad komunikacyjny, a nie przez wspólna pamiec. Róznice pomiedzy nimi sprowadzaja sie glównie do mniejszej szybkosci w komunikacji miedzy procesami niz w przypadku systemów rozproszonych, które zwykle charakteryzuja sie takze znacznie wieksza niejednorodnoscia wezlów. Wspóldzielenie zasobów polega na rozpraszaniu danych w sieci komputerowej. Srodowiska rozproszone pozwalaja na korzystanie z rozproszonych danych, ukrywajac przed uzytkownikami szczególy ich fizycznego rozmieszczenia. Pozwala to na latwe rozszerzanie i przemieszczanie zasobów [BenAri96]. Konstrukcja aplikacji rozproszonej musi zakladac pewien model wykonawczy, co z kolei rzutuje na sposób jej implementacji. W wiekszosci srodowisk zaklada sie, ze wykonanie aplikacji rozproszonej jest realizowane przez zbiór wykonan pojedynczych programów sekwencyjnych (nazywanych procesami), przy czym programy te nie musza byc wykonywane na jednej maszynie [Coulouris99]. Procesory w systemach rozproszonych moga sie róznic pod wzgledem rozmiaru i przeznaczenia. Moga wsród nich byc male mikroprocesory, stacje robocze, minikomputery, albo wielkie systemy komputerowe ogólnego przeznaczenia. Wsród glównych cech srodowisk rozproszonych omówic nalezy [Coulouris99]: • Przezroczystosc, rozproszonego, czyli to zapewnienie znaczy, ukrycie wrazenia przed jednolitosci uzytkownikiem oprogramowania jej rozproszenia. Przezroczysta aplikacja rozproszona powinna umozliwiac jednolity dostep do lokalnych i zdalnych obiektów informacji za pomoca identycznych dzialan oraz umozliwiac rejestracje z dowolnej maszyny w systemie rozproszonym, dodatkowo moze zapewniac ukrywanie operacji wysylania komunikatów lub przelaczania sie na inny zasób. • Wydajnosc – wykonanie danego zadania przez aplikacje rozproszona nie powinno przebiegac dostrzegalnie gorzej niz wykonanie tego samego zadania na jednym procesorze. Istnieja rózne miary wydajnosci: czas odpowiedzi, przepustowosc, wykorzystanie zasobów, systemu lub sieci. W przypadku tworzenia aplikacji rozproszonych problem wydajnosci komplikuje fakt, ze wymiana danych przez siec jest dosc wolna w porównaniu z czasem obliczen procesorów (w obliczeniach sekwencyjnych nie istnieje problem komunikacji). Dlatego dazy sie do minimalizacji liczby komunikatów. Wydajnosc pogarsza takze duza liczba punktów synchronizacji 25 procesów. Wówczas zadania zawieraja wiecej obliczen i wykazuja gruboziarnista równoleglosc. Wielkosci zadan moga jednak znaczne sie róznic i wówczas wydajnosc moze zostac obnizona przez wydluzenie czasów przestojów. • Skalowalnosc, czyli mozliwosc adaptacji aplikacji rozproszonej do rozrastajacych sie potrzeb na jej uslugi. Powiekszanie skali systemu i oprogramowania nie powinno pociagac za soba koniecznosci wykonywania w nim zmian. • Niezawodnosc jest waznym aspektem w trakcie projektowania zarówno aplikacji rozproszonych jak i samych systemów rozproszonych. System niezawodny musi miec dobra dostepnosc, dane nie moga zostac utracone czy przeklamane, a pomiedzy ich kopiami powinna zostac zachowana spójnosc. Niezawodnosc to równiez bezpieczenstwo. Inna kwestia niezawodnosci jest zdolnosc tolerowanie awarii. • Elastycznosc – elastyczna aplikacja rozproszona wykazuje cechy rekonfiguracji, skalowalnosci, otwartosci, niezawodnosci. Jest to zdolnosc oprogramowania rozproszonego do dalszego dzialania w zmieniajacym sie srodowisku sprzetowym, programowym i przy zmieniajacych sie wymaganiach. Zapewnienie elastycznosci aplikacji czesto odbywa sie kosztem jej wydajnosci. • Wspóldzialanie, czyli zapewnienie mozliwosci wspóldzialania pomiedzy róznymi aplikacjami, w szczególnosci mozliwosc komunikowania sie niezalezne napisanych programów. Interoperacyjnosc oprogramowania to sposobnosc wspólpracy aplikacji z róznych platform sprzetowych i programowych. Systemy rozproszone odznaczaja sie wieloma zaletami, miedzy innymi dobrym wspólczynnikiem cena/wydajnosc, zdolnoscia dopasowywania sie do rozproszonych zastosowan, potencjalnie duza niezawodnoscia. Cechuje je bardziej zlozone oprogramowanie oraz mozliwosc wystapienia waskich gardel [Tanenbaum97]. 3.3 Srodowiska programowania równoleglego i rozproszonego Na rynku oprogramowania znalezc mozna wiele srodowisk pozwalajacych na wykorzystanie jednoczesnej pracy kilku procesorów lub komputerów. Programowanie na maszynach z pamiecia wspólna realizuje sie w oparciu o jezyk dyrektyw OpenMP, programowanie wielowatkowe z wykorzystaniem watków Solarisa, POSIX’a oraz watków jezyka Java. Programowanie na maszynach z pamiecia lokalna oraz w sieciach komputerowych odbywa sie w srodowiskach MPI, PVM, a realizacje rozproszonych systemów z pamiecia wspólna wspomaga miedzy innymi Linda, dyrektywy HPF Fortranu 90, RPC, RMI, Corba, DCOM. 26 W rozdziale zaprezentowane zostana najbardziej znane i najczesciej wykorzystywane srodowiska programowania równoleglego oraz rozproszonego. OpenMP jest interfejsem dla standardu programowania wielowatkowego. Sluzy do programowania równoleglego, gdzie programista dba o tworzenie watków, ich synchronizacje oraz zniszczenie. Zrównoleglenie kodu odbywa sie w oparciu o model fork-and-join. Polega on na tworzeniu przez jeden watek grupy watków, które wykonuja prace, nastepnie wszystkie sie synchronizuja i dalsza praca wykonana jest sekwencyjnie. Watek tworzacy grupe staje sie watkiem typu master i równiez bierze udzial w przetwarzaniu. Po synchronizacji watek master kontynuuje swoja prace, a pozostale watki zostaja zniszczone. Specyfikacja OpenMP przewiduje zrównoleglenie zaglebione, to znaczy dopuszcza, by kazdy watek w grupie utworzyl wlasna grupe watków. W OpenMP kod jest zrównoleglony za pomoca dyrektyw kompilatora. Dyrektywy definiuja blok równolegly. Instrukcje znajdujace sie w bloku sa wykonywane przez wiele równoleglych watków. Ich liczba jest ustalona statycznie przez zmienna srodowiskowa lub dynamicznie przez wywolanie w programie odpowiedniej procedury bibliotecznej, z parametrem równym pozadanej liczbie watków [Karbowski01]. PVM to standard srodowiska do przetwarzania równoleglego i rozproszonego w heterogenicznych sieciach maszyn sekwencyjnych i równoleglych. Komputery polaczone przy pomocy sieci tworza tzw. maszyne wirtualna. Poszczególne komputery moga pracowac pod nadzorem róznych systemów operacyjnych, komputery nawet moga miec rózna architekture sprzetowa [Lundell96]. Na kazdym komputerze nalezacym do maszyny wirtualnej uruchomiony jest program demon, który posredniczy w komunikacji i zapewnia konwersje danych pomiedzy róznymi architekturami. Maszyna wirtualna konfigurowana jest dla poszczególnych uzytkowników, tzn. ten sam wezel moze byc skladnikiem wielu maszyn wirtualnych. Na poziomie maszyny wirtualnej jednostka elementarna reprezentujaca wykonywany program jest zadanie. Najwazniejsza usluga udostepniana przez PVM jest mozliwosc przesylania komunikatów. PVM zapewnia komunikacje asynchroniczna i dwie formy odbioru: blokujaca i nieblokujaca [Geist96], [FengChao]. MPI (ang. Message Passing Interface) jest standardem biblioteki przesylania komunikatów dla potrzeb programowania równoleglego w rzeczywistych i wirtualnych maszynach równoleglych z pamiecia lokalna. Jest biblioteka procedur i funkcji wywolanych z programów napisanych w jezykach C, C++ oraz Fortran, sluzacy do wysylania i odbierania komunikatów, wyliczenia pewnych charakterystyk oraz synchronizacji zadan wykonujacych najczesciej ten sam program [Gropp94], [Shir94]. 27 W standardzie MPI komunikacja moze byc realizowana kilkoma sposobami poprzez synchronizacje wzajemna (komunikacje synchroniczna i asynchroniczna) oraz warunek powrotu z funkcji wysylanie/odbieranie (blokujacy i nieblokujacy). Oprócz standardowych typów danych MPI pozwala na definiowanie i przesylanie wlasnych typów pochodnych. Topologie wirtualne przyporzadkowane sa komunikatorom. Umozliwiaja one wygodne indeksowanie procesów przy niektórych algorytmach np. traktujace procesy jako siatke wezlów w przestrzeni wielowymiarowej Rn . Ogólnie topologia algorytmu jest okreslona przez graf. Wezly grafu odpowiadaja procesom, a luki – drogom komunikacji. Wersja MPI 2 rozszerzyla poprzednia biblioteke miedzy innymi o dynamiczne tworzenie procesów, komunikacje jednostronna, operacje na plikach [MPIF97]. Porównujac pakiet PVM oraz MPI mozna wysnuc nastepujace wnioski [MPIF95], [MPIF97], [Geist]: - MPI implementuje wszystkie mechanizmy oferowane przez PVM; - jako zalete MPI wyróznic mozna efektywnosc, zwlaszcza dla maszyn równoleglych z pamiecia lokalna; - wada MPI jest brak heterogenicznosci; - zarówno MPI jak PVM ze wzgledu na swoja uniwersalnosc sa obciazone balastem, który wynika z koniecznosci zachowania zgodnosci miedzy systemami pracujacymi na róznych platformach; - staly rozwój MPI oraz wzrost popularnosci pakietu wypieraja pakiet PVM. RPC sluzy do wywolywania operacji w odleglym komputerze sluzacym jako serwer. Jest to narzedzie maksymalnie uproszczone, szybkie i o malych wymaganiach sprzetowych. Znajduje zastosowanie przy projektach wymagajacych efektywnej komunikacji miedzy obiektami. RMI (ang. Remote Method Invocation) jest czescia jezyka Java. Umozliwia on wywolanie metod obiektów w pewnej maszynie wirtualnej Javy przez obiekty znajdujace sie w innej maszynie wirtualnej. Maszyny wirtualne moga dzialac na róznych komputerach wspólpracujacych z protokolem TCP. Rozproszenie aplikacji jest niewidoczne: zarówno obiekty lokalne, jak i odlegle, sa identyfikowane przez referencje, czyli standardowy sposób dla Javy [Karbowski01]. Jest narzedziem prostym w programowaniu i konfiguracji. Zacznie absorbuje pamiec oraz procesor. Znajduje zastosowanie do prototypowania oraz do projektów nie wymagajacych czestego przesylania danych w duzych ilosciach. Wada RMI jest niska wydajnosc, gdyz Java jest jezykiem interpretowanym i aplikacje wykonywane przez maszyne wirtualna dzialaja zdecydowanie wolniej niz aplikacje skompilowane do kodu maszynowego. 28 Srodowisko Corba umozliwia wykonywanie zdalnych metod oraz dostep do zdalnych pól obiektów. Obiekt stanowi jednostke dostarczajaca uslugi, których zada klient. Uslugi oferowane przez obiekt definiuje interfejs. Do jego opisu uzywany jest jezyk IDL. Corba to rozbudowana i dobrze udokumentowana technologia, choc zarzuca sie jej kilka wad, miedzy innymi, brak bilansowania obciazen, brak rozpatrywania bezpieczenstwa (w nowszych wersjach Corba dostarcza serwis Security), obnizona wydajnosc spowodowana duzym narzutem komunikatów. Cechuje sie wysoka wydajnoscia, pozwala dostosowac obciazenie maszyn do ich mocy. Nadaje sie do duzych, profesjonalnych systemów rozproszonych [Mowbray73]. 3.4 Dostepnosc charakterystyk wydajnosciowych aplikacji równoleglych i rozproszonych Badanie zjawisk statystycznych obejmuje cztery etapy [Zajac94]: - przygotowanie badania; - zbieranie obserwacji; - opracowanie materialu statystycznego; - statystyczna analiza wyników obserwacji. Najlepszym badaczem wydajnosci systemu komputerowego zarówno w sensie czasu wykonania jak i przepustowosci jest operator, który w dluzszym okresie czasu wykonuje te same codzienne, rutynowe zadania. Jednakze niemozliwym jest ciagle testowanie oprogramowania i zatrudnianie do tego celu specjalistów. Istnieja wiec pakiety programowe sluzace do testowania wydajnosci komputerów (ang. benchmark). Mozna wyróznic co najmniej 4 klasy takich programów [Patterson96][Curnow76]: 1. Rzeczywiste programy, uzywane do realizacji konkretnych zadan (np. kompilatory, programy do generacji scen 3D), majace konkretne dane wejsciowe i parametry. 2. Programy typu „rdzen” badz „jadro” (ang. kernel), czyli fragmenty rzeczywistych programów, wyodrebnione dla celów okreslania wydajnosci wyizolowanych elementów komputera. Jako przyklad wymienic mozna Linpack [Dongarra79]. 3. Programy „zabawkowe” (ang. toy benchmark), czyli niewielkie programy, rzedu 100 linii kodu, których wyniki sa znane uzytkownikowi jeszcze przed uruchomieniem programu. 4. Benchmarki syntetyczne, podobne w filozofii dzialania do kerneli, próbuja uchwycic srednia czestotliwosc instrukcji i dostepów do danych na podstawie analizy duzych 29 zbiorów programów. Przykladem moga byc Whetstone [Curnow76] i Dhrystone [Weicker91]. Nalezy przy tym zauwazyc, ze wyniki wszystkich testów zaleza nie tylko od rodzaju i szybkosci wykonujacego je procesora, ale tez od organizacji i parametrów czasowych systemu pamieci oraz jakosci i parametrów optymalizacyjnych kompilatorów, uzytych do otrzymania testów. Dane do modelowania statystycznego moga byc takze dostarczane przez producentów oprogramowania. Systemy wraz z dolaczonymi modelami moga stac sie atutem dla osób zainteresowanych zakupem aplikacji. Na ich podstawie mozna bowiem stwierdzic, jakiego zysku czasowego mozna spodziewac sie w wyniku korzystania z aplikacji wspólbiezne wykonujacej zadania. Pozyskanie danych moze odbywac sie takze poprzez testowanie aplikacji i tworzenie zestawów pomiarowych wewnatrz instytucji posiadajacej baze sprzetowa oparta o komputery równolegle lub rozproszone, celem efektywnego wykorzystania zasobów podczas uzytkowania. 3.5 Efektywnosc zrównoleglenia 3.5.1 Metryki wydajnosci aplikacji Ocena wydajnosci funkcjonowania komputerów równoleglych stala sie istotnym zagadnieniem wobec coraz czestszych zastosowan tej architektury. Dokonanie oceny jest konieczne zarówno w fazie implementacji jak i wykonania, gdyz mozliwym jest, ze zysk czasowy w dzialaniu programów jest nieznaczny mimo poniesienia znacznych nakladów na sprzet. Komputery oparte o przetwarzanie jednoczesnie na wielu procesorach zazwyczaj wykorzystywane sa przy obsludze programów czasochlonnych, wiec z duza iloscia dzialan. Na efektywnosc dzialania programu wplywa zarówno architektura komputera, jak i konkretne zastosowania programowe. W rozwazaniach teoretycznych mozna przyjac, ze maksymalna szybkosc przetwarzania równa jest iloczynowi liczby procesorów i maksymalnej szybkosci wykonania sekwencyjnego. W definicji tej nie zostaly uwzglednione realne czynniki zaklócajace, takie jak czasy synchronizacji, niemoznosc calkowitego zrównoleglenia kodu, warunki sprzetowe [Stallings00]. 30 Rzeczywista szybkosc przetwarzania uzyskuje sie droga doswiadczalna przez podzielenie znanej liczy operacji w programie przez zmierzony czas. Charakterystyke taka tworzy sie dla maszyny juz uzytkowanej, a miara wydajnosci zalezna jest w duzym stopniu od realizowanego programu. Dlatego, aby charakterystyka byla jak najpelniejsza tworzy sie zestawy programów testowych, z których kazdy bada efektywnosc procesora typowych operacji [Szczerbinski93]. Charakterystyke wydajnosciowa w najprostszy sposób okreslic mozna poprzez pomiary i analize czasu. Zgodnie z naturalnym pojmowaniem czasu wykonania zadania przedmiotem pomiaru jest odcinek czasu miedzy uruchomieniem a zakonczeniem zadania, wlaczajac w to takze czas odczytu danych z dysku czy czas potrzebny na wykonanie w tle zadan systemu operacyjnego. Wezsze znaczeniowo jest pojecie czasu procesora, który nie obejmuje na przyklad oczekiwania na zakonczenie operacji wejscia/ wyjscia. Czas procesora moze dalej byc podzielony na czas procesora dla uzytkownika (ang. user CPU time), gdy procesor wykonuje program uzytkownika i systemowy czas procesora (ang. system CPU time), gdy procesor wykonuje zadania systemu operacyjnego, w tym równiez uslugi zlecone przez program uzytkowy [Miktus00]. Przyspieszenie wykonania programu zdefiniowac mozna nastepujaco: S = t s / tr ( 3.1) Efektywnosc zrównoleglenia okreslona jest wzorem: E = t s /( t r ⋅ p) , ( 3.2) gdzie, ts - jest czasem wykonania programu na pojedynczym procesorze, tr - czasem wykonania programu równolegle, p – ilosc procesorów. Aby uwzglednic aspekty architektury komputerów równoleglych stosuje sie programowa symulacje, cykl po cyklu, realizacji przez komputer okreslonego algorytmu obliczeniowego. Wada tej metody jest dlugi czas trwania pomiarów [Karbowski01]. Dlatego rozsadnym wydaje sie tworzenie modeli matematycznych uwzgledniajacych tylko najwazniejsze parametry i oferujacych poprawne uchwycenie zaleznosci czasowych. Model taki pozwala na szacowanie, czy programy beda wydajne w zaleznosci od profilu sprzetowego oraz parametrów uruchomienia programu. Z próbami tworzenia modeli mozna spotkac sie w literaturze [Fox87], [Hockney85], [Shimasaki87], [Calahan79], [Bucher88] jednak w znacznej mierze dotycza one komputerów 31 wektorowych. Charakterystyke komputerów wektorowych, na których oparte sa modele znalezc mozna w [Stone93], [Hwang93]. Model Calahana - Amesa opiera sie na zaleznosci czasu trwania operacji wektorowej t od dlugosci wektora n, gdzie t0 jest czasem uruchomienia potokowej operacji wektorowej, a t to czas uplywajacy miedzy generacja kolejnych wyników dzialan na elementach wektora [Calahan79]. t = t0 + n ⋅ τ ( 3.3) Model Bucher – Simmons dopasowuje poprzedni model do wymogów komputerów wektorowych typu rejestr – rejestr. Dluzsze wektory musza byc dzielone na czesci o dlugosci równej rozmiarowi rejestru wektorowego, a operacja wektora sklada sie z ciagu operacji wykonywanych na czesciach wektora [Bucher88]. Opóznienie czasowe zwiazane jest z koniecznoscia calkowitego opróznienia rejestru danych przed wczytaniem kolejnej czesci wektora. Model matematyczny przyjmuje wiec postac: t = tL + [ ]⋅ t n lr s + n ⋅τ , ( 3.4) gdzie lr jest dlugoscia wektora, tL czasem trwania inicjalizacji petli programowej, sterujacej operacja podzialu wektora na czesci, ts – zwloka czasowa zwiazana z ladowaniem nowego kawalka wektora, a t – czasem cyklu zegara. 3.5.2 Model Hockneya Model Hockneya w poczatkowej wersji dotyczyl komputerów wektorowych, ale jego pózniejsza wersja opierala sie na systemach wieloprocesorowych. Jest to obecnie najpopularniejszy model charakteryzacji wydajnosciowej dla komputerów równoleglych. Traktuje on program równolegly jako sekwencje tzw. segmentów pracy równoleglej. W kazdym z segmentów wykonywane obliczenia dzielone sa miedzy szereg logicznie niezaleznych strumieni rozkazów. Kazdy z tych strumieni wykonywany jest przez oddzielny procesor. Przez logiczna niezaleznosc strumieni rozumie sie brak potrzeby komunikacji miedzy nimi. Istota segmentu pracy równoleglej jest synchronizacja obliczen w momentach jego rozpoczecia i zakonczenia. Wszystkie obliczenia w segmencie musza zostac zakonczone zanim rozpoczna sie operacje dla kolejnego segmentu. Oznacza to, ze w ramach segmentu nastapi opóznienie zwiazane z faktem czekania na zakonczenie wszystkich procesów [Hockney81][Hockney86]. Zaleznosc czasowa i- tego segmentu przedstawiana jest nastepujaco: 32 t = ( r∞, i ) −1 ( s i + s 1 , i ) ( 3.5) 2 gdzie: si – calkowita liczba operacji w i-tym segmencie, r∞,i – asymptotyczna szybkosc przetwarzania; r∞ jest iloczynem asymptotycznej szybkosci przetwarzania w jednym procesorze i liczby procesorów aktywnych w i-tym segmencie, s1/2,i – koszt synchronizacji w przeliczeniu na operacje zmiennoprzecinkowe. 3.5.3 Prawo Amdahla Prawo Amdahl’a okresla korzysci z zastosowania architektury równoleglej od stopnia paralelizmu w wykonywanym programie [Amdahl67]. Wyraza sie go wzorem (3.6), gdzie: sp = T 1 = 1− f s 1− fs f sT + T fs + p p ( 3.6) p – teoretyczne, idealne przyspieszenie obliczen wynikajace z paralelizmu architektury(liczba procesorów), fs – czesc obliczen w programie wykonywanych sekwencyjnie, T – czas dzialania programu wykonywanego sekwencyjnie. Z powyzszego prawa wynika [Karbowski01]: - maksymalne przyspieszenie dzialania programu przy wykorzystywaniu obliczen równoleglych wynosi tylko - 1 ; fs aby efektywnosc wykorzystania architektury równoleglej byla istotna, procent kodu wykonywany w trybie równoleglym musi byc bardzo wysoki. W przeciwnym wypadku na obnizenie efektywnosci wplywa zdominowanie obliczeniami sekwencyjnymi. Analizujac prawo Amdahla mozna dojsc do wniosku, ze powodem stosowania obliczen równoleglych jest chec rozwiazywania duzych (o duzej wymiarowosci) przykladów, a nie wzrost szybkosci uzyskiwania wyników dla malego wymiaru [Karbowski01]. 3.5.4 Prawo Gustafsona Prawem przeciwnym do prawa Amdahla jest prawo Gustafsona, które mówi, ze jezeli rozmiar czesci równoleglych programu jest odpowiedni, wtedy wymagana efektywnosc mozna osiagnac na dowolnej liczbie procesorów [Gustafson88]. Przyspieszenie na P procesorach okreslic mozna wzorem: 33 S= Tδ + T || ( N ,1) Tδ + T || ( N , P) ( 3.7) gdzie, Tδ - jest czasem wykonania czesci sekwencyjnych programu, T||(N,P) – czas równoleglego wykonania programu o rozmiarze N na P procesorach. 3.5.5 Sprawnosc systemu Skalowalnosc jest to wlasnosc systemu (zarówno sprzetu jak i oprogramowania) polegajaca na elastycznym dopasowaniu sie do zwiekszonej liczby procesorów [Karbowski01]. Elastyczne dopasowanie oznacza zachowanie tej samej sprawnosci. Sprawnosc programu równoleglego o wielkosci n realizowanego na p procesorach wyraza sie wzorem η ( n, p) = w(n) = w ( n) + h( n, p) 1 h( n, p) 1+ w( n) ( 3.8) gdzie; w(n) – ilosc operacji zwiazanych z wykonaniem obliczen, h(n,p) – ilosc narzutów na komunikacje. Poniewaz narzuty na komunikacje rosna ze wzrostem liczby procesorów, jak widac ze wzoru sprawnosc maleje, gdy nie zmieniajac wielkosci zadania zwiekszona zostaje liczba wykorzystywanych procesorów. Gdy zwieksza sie wielkosc programu, narzuty h(n,p) rosna wolniej niz liczba uzytecznych operacji w(n) i wówczas sprawnosc rosnie. Mozna wiec wyznaczyc wielkosc zadania, przy której zachowana jest ta sama sprawnosc. Zwiazek ten okresla rosnaca funkcje stalej sprawnosci [Karbowski01]. Architektura jest bardziej skalowalna (dla danego zadania obliczeniowego), kiedy funkcja sprawnosci rosnie wolniej. 3.6 Podsumowanie Rozdzial 3 jest omówieniem budowy i funkcjonowania komputerów równoleglych i systemów rozproszonych na podstawie prac [Bielecki02], [Coulouris99], [Karbowski01] oraz [Szczerbinski93]. W punkcie 3.1 dokonano przegladu komputerów równoleglych. Omówiono systemy wieloprocesorowe z pamiecia wspólna oraz dzielona. 34 Cechy systemów rozproszonych zawiera rozdzial 3.2. Zaprezentowano w nim typy architektur srodowisk rozproszonych oraz omówiono aspekty, takie jak wspólne uzytkowanie zasobów, otwartosc systemu, wspólbieznosc, skalowalnosc, przezroczystosc. Systemy do programowania równoleglego i rozproszonego omówiono w 3.3. Scharakteryzowano PVM, który jest standardem srodowiska do przetwarzania równoleglego i rozproszonego w heterogenicznych sieciach maszyn sekwencyjnych i równoleglych, biblioteke przesylania komunikatów MPI, srodowisko programowania komputerów równoleglych ze wspólna pamiecia OpenMP i inne. Benchmarki zwierajace testy z wartosciami charakterystyk wydajnosci aplikacji opisane zostaly w rozdziale 3.4. Wskazano w nim takze inne metody pozyskiwania danych, które uzyte moga zostac do tworzenia modeli statystycznych charakteryzujacych aplikacje równolegle i rozproszone. Ocena wydajnosci funkcjonowania komputerów jest nieodlacznym elementem w badaniach nad srodowiskami równoleglymi oraz rozproszonymi. Dokonanie oceny jest konieczne zarówno w fazie implementacji, jak i wykonania, gdyz mozliwym jest, ze zysk czasowy w dzialaniu programów jest nieznaczny mimo poniesienia znacznych nakladów na sprzet. W rozdziale 3.5 na podstawie prac [Borowik01], [Foster94], [Bucher88], [Calahan79], [Hockney91], [Karbowski01] przedstawiono dotychczasowe badania efektywnosci zrównoleglenia. W rozdziale 3.5.1 przedstawione zostaly znane miary wydajnosci, miedzy innymi przyspieszenie, efektywnosc oraz modele tworzone dla komputerów wektorowych (model Calahana- Amesa , model Bucher – Simmonsa). Rozdzial 3.5.2 poswiecony zostal modelowi Hocneya, który jest obecnie najpopularniejszym model charakterystyki wydajnosciowej dla komputerów równoleglych. W rozdziale 3.5.3 przedstawiono prawo Amdahl’a, które okresla korzysci z zastosowania architektury równoleglej w zaleznosci od stopnia paralelizmu w wykonywanym programie a w punkcie 3.5.4 zaprezentowano prawo Gustafsona, które mówi, ze jezeli rozmiar czesci równoleglych programu jest odpowiedni, to wymagana efektywnosc mozna osiagnac na dowolnej liczbie procesorów. 35 4 Metodyka postepowania przy budowie modeli opisujacych efektywnosc aplikacji równoleglych Celem pracy jest opracowanie metodyki postepowania przy budowie modeli statystycznych opisujacych efektywnosc programu w srodowisku równoleglym. Do utworzenia modelu potrzebna bedzie gotowa aplikacja oraz dodatkowe informacje dostarczone przez producentów oprogramowania lub zaczerpniete z benchmarków komputerowych. Osoba tworzaca model bedzie traktowala aplikacje jako „czarna skrzynke”, wiec nie bedzie rozstrzygac problemy budowy algorytmów zrównoleglenia, gdyz ich wybór powinien byc dokonany w fazie projektowania systemów. W modelu pominiete beda takze pewne czynniki, których nie mozna jednoznacznie przedstawic w modelu i wyrazic ich w sposób liczbowy. Model ma byc przyblizonym odtworzeniem najwazniejszych cech badanego obiektu. Ogólny schemat budowy modelu sklada sie z kroków przedstawionych ponizej. 4.1 Okreslenie celu badan modelowych Utworzony model ma opisywac zachowanie programu równoleglego. Z reguly aplikacje takie maja do wykonania bardzo duzo instrukcji, wiec sa czasochlonne. Zastosowanie modeli pozwoli bez koniecznosci uruchamiania systemu odpowiedziec na pytanie czy zaangazowanie srodowiska równoleglego jest celowe. Moze okazac sie bowiem, ze czasy synchronizacji, przesylu komunikatów, czy tez dostep do zasobów wspóldzielonych, sa wieksze niz czas wykonania programu sekwencyjnego. Nie ma wtedy potrzeby obciazania maszyn wieloprocesorowych, które moga zostac wykorzystane do innych zadan. Model charakteryzujacy zachowanie systemu moze byc pomocny przy wyborze wariantu uruchomienia systemu ze wzgledu na ilosc procesorów, tryb pracy, ilosc oraz rozmiar watków w programie, indywidualne cechy aplikacji. 36 4.2 Specyfikacja elementów systemu i jego otoczenia Przed przystapieniem do budowy modelu nalezy dokladnie rozpoznac srodowisko, w którym dziala program. Nalezy wyszczególnic wszystkie zmienne, które moga miec wplyw na jakosc modelowania. Model statystyczny budowany jest w oparciu o dane doswiadczalne. Odpowiednie zgromadzenie informacji, ich przetworzenie, daje mozliwosc dalszej analizy przy uzyciu komputera. Im wiecej doswiadczen bedzie przeprowadzonych, tym dokladnosc dopasowania danych rzeczywistych do modelu bedzie wyzsza. Zebrany material statystyczny powinien byc usystematyzowany i odpowiednio zestawiony. Celem tego opracowania jest przejscie od indywidualnych danych do danych zbiorowych. Klasyfikacja musi spelniac stepujace warunki [Stanisz98]: - musi byc przeprowadzona w sposób rozlaczy, to znaczy, ze jednostki o okreslonych cechach musza byc jednoznacznie przydzielone do okreslonych klas; - musi byc przeprowadzona w sposób zupelny, co oznacza, ze klasy musza objac wszystkie wystepujace cechy danej zbiorowosci. Zmienne mozna sklasyfikowac nastepujaco [Nowak98]: - Zmienne niezalezne glówne – opisuja przyczyny – wplywaja w zasadniczy sposób na zmienna zalezna; - Zmienne zalezne – opisuja skutki dzialania zmiennej niezaleznej; - Zmienne niezalezne uboczne – warunkuja istnienie zwiazku pomiedzy zmiennymi, wplywaja na zmienna zalezna; - Zmienne zaklócajace, towarzyszace, kontekstowe, kontrolne, itp. Aby utworzyc model musimy dysponowac informacjami statystycznymi, uzyskanymi w wyniku testowania programu. Dostarczeniem odpowiedniej ilosci pomiarów powinien zajac sie producent oprogramowania. Przeprowadzenie wiekszej ilosci testów gwarantuje, ze utworzone modele beda mogly lepiej opisac srodowisko pracy programów. Pomocnym przy tworzeniu modeli statystycznych charakteryzujacych zachowanie sie aplikacji moga okazac sie zestawy benchmarków. Benchmarki to zestawy pomiarów, sporzadzone dzieki specjalnemu oprogramowaniu, które sluza mozliwosci wyboru warunków uruchamiania programów [Weicker91]. Istnieja programy, które okreslaja wydajnosc podstawowych operacji wykonywanych przez komputer. Wsród nich wymienic mozna: 37 • Compuware Corporation; • Cyrano; • Empirix (dawniej RSW Software); • Mercury Interactive; • RadView Software; • Rational Software; • Caw Networks, Inc.; • Dieselpoint, Inc.; • Keynote Systems; • Parasoft Corporation; • Softlight Technologies, Inc.; • Web Performance, Inc. Dzieki zgromadzonym danym oraz dostepnym parametrom sprzetowym, mozna podjac sie budowy modelu opisujacego wplyw róznych mierzalnych wielkosci na badany czynnik. Po okresleniu zmiennej wyjsciowej (na przyklad czas, przyspieszenie, efektywnosc) wyznacza sie zmienne niezalezne. Nalezy tu wybrac zmienne, które istotnie wplywaja na wielkosc wyjsciowa, a przy tym sa mozliwe do zmierzenia i jednoznacznego okreslenia. W przypadku programów równoleglych glównymi czynnikami niezaleznymi sa: - ilosc procesorów, - ilosc watków, czyli czesci programu wykonywanych na oddzielnych procesorach, - rozmiar watków, okreslanych jako porcja zadan do wykonania, - sposób dostepu do wspólnych zasobów, - rozmiar pamieci operacyjnej i dyskowej. Niektórych ze zmiennych nie mozemy wykorzystac do budowy modelu, gdyz nie mamy na nie wplywu z poziomu wykonania aplikacji. Do czynników takich naleza: - sposób podzialu przestrzeni iteracji, - algorytmy zrównoleglenia, - srodowisko operacyjne, - architektura komputerów i inne. Czynniki uzywane do budowy modelu powinny byc mozliwe do zmiany z punktu widzenia uzytkownika aplikacji. Dlatego lista zmiennych nie obejmuje parametrów, na które 38 wplyw maja tylko uprzywilejowani uzytkownicy, ani tez takich, które uniemozliwione zostaly przez programistów systemów. Zwiazek statystyczny polega na tym, ze okreslonym wartosciom jednej zmiennej odpowiadaja scisle okreslone, srednie wartosci drugiej zmiennej. Na podstawie analizy merytorycznej nalezy uzasadnic logiczne wystepowanie zwiazku, a dopiero potem przystapic do okreslenia sily i kierunku zaleznosci [Stanisz98]. Nalezy rozstrzygnac, które ze wskazanych czynników w konkretnym przykladzie mozna uznac za najbardziej istotne i majace najwiekszy wplyw na badany proces. 4.2.1 Ilosc procesorów Przetwarzanie równolegle polega na podziale kodu na fragmenty mogace byc wykonywane na innych procesorach w tym samym czasie i niezaleznie od siebie. W literaturze [Karbowski01], [Miktus00] mozna sie spotkac z nastepujacymi argumentami przemawiajacymi za zastosowaniem wiekszej ilosci procesorów: − Podczas korzystania z wielozadaniowych systemów operacyjnych mozna wykonywac wiecej niz jedna operacje w tym samym czasie. − Szybkosc procesorów podwaja sie co kazde 18 miesiecy. Ale szybkosci pamieci i dysku twardego nie rosna tak szybko, jak szybkosc CPU. − Zaleznie od aplikacji, przetwarzanie równolegle moze przyspieszyc dzialanie od 2 do 500 razy (w pewnych przypadkach nawet wiecej). Taka wydajnosc nie jest dostepna przy uzyciu pojedynczego procesora. Wiadomym jest, iz przy odpowiednim przydziale procesów do poszczególnych procesorów mozna uzyskac znaczne przyspieszenie wykonania programu. Jednak ilosc procesorów powinna byc adekwatna do czasochlonnosci i równoleglosci programu, do sposobu jego podzialu. Nie ma sensu uruchamiac na przyklad programu obslugiwanego przez dwa watki na maszynie z czterema procesorami. Wedlug prawa Amdahla [Amdahl67] nawet przy uzyciu dowolnie wielu procesorów, obliczen nie da sie przyspieszyc bardziej, niz wynosi odwrotnosc udzialu czesci sekwencyjnej w programie wykonywanym na jednym procesorze. 4.2.2 Ilosc i rozmiar watków Idea obliczen równoleglych polega na podzieleniu obliczen na czesci-watki, z których kazda jest wykonywana na oddzielnym procesorze. Po wykonaniu ciagu operacji, wchodzacych w sklad kazdego z watków, nastepuje faza synchronizacji, w której wyniki 39 pracy poszczególnych watków laczone sa w rezultat koncowy. Mozliwa jest równiez wymiana wyników pomiedzy watkami i kontynuacja pracy wielowatkowej. Róznica miedzy procesem, a watkiem polega przede wszystkim na sposobie wykorzystania dostepnych zasobów. Grupa równorzednych watków wspóldzieli przestrzen adresowa, kod i zasoby systemu operacyjnego [Weiss93]. Pojecie i zasady tworzenia watków wyjasnia [Goscinski91], [Nelson91], [Silberschatz91], [Tanenbaum92]. Program równolegly mozna uruchomic w zaleznosci od ilosci badz tez rozmiaru watków. Koniecznosc synchronizacji watków sprawia, ze jest bardzo pozadane, by wszystkie z nich wymagaly takiego samego czasu obliczen. Duze zróznicowanie dlugosci poszczególnych watków powodowaloby dla wielu procesorów znaczna strate czasu w oczekiwaniu na proces synchronizacji watków. W programach równoleglych synchronizacja wystepuje z reguly wielokrotnie, nierównomierne obciazenie procesorów zadaniami sprawia, ze czas, w którym czesc procesorów czeka na zakonczenie obliczen przez inne bedzie dlugi, a co za tym idzie, wydluzy sie czas wykonywania programu. 4.2.3 Sposób dostepu do zasobów wspóldzielonych W przypadku, gdy zadanie obliczeniowe moze byc podzielone na kilka niezaleznych czesci, równolegle ich wykonanie znacznie przyspiesza dzialanie aplikacji. W tej dziedzinie doskonale zastosowanie znajduja komputery równolegle. Sa to jednak maszyny bardzo drogie i nie zawsze korzysci wynikajace z szybkich obliczen równowaza koszt zakupu. Obecnie producenci sprzetu komputerowego oferuja szereg komputerów opartych na architekturze równoleglej. Na efektywnosc wykonywanych obliczen wplyw beda mialy nie tylko modele i parametry procesora, ale takze rodzaje i pojemnosci pamieci, szybkosc transmisji danych. Odpowiednio dobrana architektura sprzetowa, gwarantujaca szybki dostep do wspólnych zasobów znacznie poprawia efektywnosc wykonywania aplikacji. 4.2.4 Rozmiar pamieci operacyjnej i dyskowej W architekturze równoleglej ze wspólna pamiecia, dzieki temu, ze wszystkie procesory maja dostep do calej pamieci, nie ma problemu z dostepem do danych znajdujacych sie w pamieci wspólnej dla wszystkich procesorów. Moga sie zdarzac jednak sytuacje, gdy procesory beda próbowaly zapisywac do tego samego adresu pamieci lub jeden zmieni wartosc zmiennej, mimo ze inny bedzie potrzebowal starej wartosci [Wyrzykowski]. 40 Glównym problemem tego typu architektury jest to, ze program sklada sie z czesci wykonywanych równolegle przez kilka procesorów (petle obliczeniowe) i czesci wykonywanych przez jeden procesor (struktura logiczna programu). Po dojsciu do miejsca obliczen równoleglych tworzone sa nowe watki i kazdy z nich rozpoczyna przypadajace mu obliczenia. Po zakonczeniu obliczen równoleglych nastepuje zakonczenie utworzonych watków, ale dopiero wtedy, gdy wszystkie watki zakoncza obliczenia. Zaleta architektury o pamieci wspólnej jest fakt, ze kompilatory moga w sposób automatyczny dokonywac podzialu na równolegle watki. Glówna wada jest ograniczona skalowalnosc [Comer99]. Systemy o pamieci rozproszonej skladaja sie z komputerów polaczonych siecia o duzej przepustowosci. W zwiazku z tym, ze kazdy z wezlów obliczeniowych dysponuje wlasna pamiecia operacyjna, wymiana danych w fazie synchronizacji odbywa sie przez siec, która wezly sa polaczone. Czesc obliczeniowa jest podzielona na zadania, ale kazdy z wezlów ma w pamieci wlasne dane. W przeciwienstwie do komputerów o pamieci wspólnej, zadne dane nie sa wspóldzielone pomiedzy wezlami [BenAri96]. 4.2.5 Indywidualne cechy aplikacji Oprócz badania wplywu cech sprzetowych charakteryzujacych srodowisko równolegle, nalezy okreslic wplyw indywidualnych parametrów wykonywanych aplikacji. Cechy te zaleza w glównej mierze od przeznaczenia programu. Moga nimi byc na przyklad rzad macierzy wykorzystywanych do obliczen, dokladnosc obliczen, ilosc kolorów uzytych do generacji obrazu, rozdzielczosc wyswietlania grafiki. Parametry wewnetrzne (mozliwe do zmiany dla uzytkowników aplikacji) wraz z cechami sprzetowymi srodowisk równoleglych, uzyte do generacji modeli, daja pelny obraz ukladu zmiennej objasnianej. Do budowy modelu nalezy uzyc tylko tych zmiennych, które osoba tworzaca model uzna za najbardziej istotne w danym zastosowaniu. Pominiecie niektórych z cech nie powinno wplywac na obraz zmiennej wyjsciowej podczas modelowania. W kolejnych etapach modelowania, przy estymacji wspólczynników równania, zmienne, które nie oddzialuja w sposób istotny na badane zjawisko zostana usuniete z modelu. Jednak zbyt duza liczba parametrów wykorzystywanych do estymacji zmniejsza przejrzystosc modelu, a czasami uniemozliwia poprawne jego utworzenie. 41 4.3 Wybór klasy modelu Po zakonczeniu etapu obserwacji, czyli zbierania danych otrzymujemy material statystyczny do dalszej analizy. Zebrany material powinien byc usystematyzowany i odpowiednio zestawiony. Celem tego opracowania jest przejscie od indywidualnych danych do danych zbiorowych [Stanisz98]. W zaleznosci od rozkladu zmiennych w modelu nalezy okreslic rodzaj regresji. W celu ulatwienia wyboru mozna wykreslic linie trendu. Wskaze ona ogólny uklad danych i wstepna postac funkcji aproksymujacej. Modele regresji wielorakiej powinny uwzgledniac wszystkie lub wybrane kombinacje zmiennych niezaleznych. Linia regresji powinna cechowac sie najwieksza wartoscia statystyki R- kwadrat i najmniejsza wartoscia statystyki Mallowsa Cp [Czachórski83]. Funkcje regresji moga przyjmowac jedna z nizej wymienionych postaci: - liniowa, - wykladnicza, - potegowa, - logarytmiczna, - zdefiniowana przez uzytkownika w celu wlasciwego odwzorowania rzeczywistosci. Przy budowie modeli, majacych na celu opis zmiennej wyjsciowej, która cechuje sie niejednorodnym rozkladem, uzywa sie regresji segmentowej. Opisuje ona badane zjawisko za pomoca sumy funkcji liniowych, badz wielomianów wyzszego rzedu. Podczas estymacji okreslany jest punkt przelamania, czyli zmiany ukladu wartosci. Punkt ten traktowany jest jako wartosc graniczna i w zaleznosci od jego wartosci do prognozowania uzywa sie odpowiedniego czlonu modelu. Odpowiedni wybór funkcji aproksymujacej znacznie przyspiesza analize. W przypadku jej blednego okreslenia, istnieje koniecznosc badania innych rozkladów oferowanych przez srodowiska matematyczne i ponowne okreslanie charakterystyk poprawnosci. Po zgromadzeniu danych, wstepnym wyborze funkcji aproksymujacej mozna posluzyc sie narzedziami komputerowymi w celu sprawdzenia poprawnosci poczynionych zalozen. Za pomoca pakietu STATISTICA wybiera sie algo rytm poszukiwan iteracyjnych (Marquardta, Gaussa-Newtona lub metode krokowa). Kazdy ze wspólczynników wymaga okreslenia wartosci poczatkowych oszacowanych parametrów. Niebezpieczenstwem tego typu optymalizacji jest znalezienie przez program minimum ekstremum lokalnego zamiast 42 globalnego. Aby zapobiec tego typu sytuacjom proponuje sie kilkakrotne przeprowadzanie analizy wspólczynników zastosowaniem róznych metod [Stanisz98]. 4.4 Estymacja wspólczynników i sprawdzenie poprawnosci modelu Poprzez estymacje okresla sposoby oszacowan parametrów zmiennych. Im wiecej wskazników zostanie do tego celu uzytych tym jest wieksza pewnosc, ze dokonano slusznej analizy, a wartosci uzyskane z modelu beda wiernie odzwierciedlaly dane rzeczywiste. Statystyczna analiza wyników obserwacji to najwazniejszy etap w badaniu metodami statystycznymi. Analiza wyników badania statystycznego oraz sformulowanie ocen i wniosków otwieraja etap ich wdrazania do praktyki [Stanisz98]. Kazde badanie naukowe rozpoczyna sie od sformulowania problemu badawczego oraz najbardziej prawdopodobnego ogólnego rozwiazania, czyli hipotezy badawczej. Poprawne sformulowanie hipotezy w duzej mierze przesadza o sukcesie badawczym. Hipoteza powinna byc tak sformulowana, by latwo mozna ja bylo przyjac lub odrzucic [Oktaba86]. Przy budowie modeli, w badaniu istotnosci wspólczynników oraz weryfikacji uzyskanych funkcji pomocnym okazuje sie analiza komputerowa. Programem spelniajacym i rozstrzygajacym powyzsze zagadnienia jest miedzy innymi STATISTICA. Pozwala ona na szybkie uzyskanie wartosci statystyk dla badanych parametrów, pokazuje zestawienia i tabele wartosci pomagajace w podjeciu decyzji. Przy podjeciu decyzji odnosnie poprawnosci utworzonego modelu nalezy wykorzystac testy i statystyki opisane w rozdziale 2.3 oraz 2.4. Parametrami, na podstawie których okreslic mozna poprawnosc wyestymowanych wspólczynników modelu oraz zweryfikowac slusznosc modelowania, generowanymi przez program STATISTICA sa miedzy innymi: • Blad st. BETA jest to wartosc bledu szacunku dla (parametru) wspólczynnika regresji, gdyby zostala ona wprowadzona do równania regresji jako zmienna niezalezna. • Poziom p nazywany jest poziomem istotnosci statystycznej dla wspólczynników regresji. • Wspólczynnik korelacji wielorakiej wyjasnia, w jakim zwiazku pozostaje zmienna objasniana z pozostalymi zmiennymi (objasniajacymi) w modelu. • Wspólczynniki determinacji, wskazuje jak model wyjasnia ksztaltowanie sie zmiennej objasnianej. 43 O dobrym dopasowaniu modelu do danych empirycznych moga swiadczyc ponadto wykresy rozkladu wartosci przewidywanych oraz obserwowanych. Punkty wyznaczone z modelu oraz wyznaczone droga doswiadczalna powinny ukladac sie wzdluz linii prostej. STATISTICA generuje szereg wskazników zestawionych tabelarycznie. Znalezc mozna wsród nich miedzy innymi: • Odleglosc Mahalanobisa jest to uogólnienie odleglosci euklidesowej uwzgledniajace skorelowanie zmiennych. Miara ta pozwala ustalic, czy dana obserwacje mozna zaliczyc do odstajacych. • Usuniete wartosci resztowe jest to reszta dla danej obserwacji, obliczana tak, jakby ten przypadek nie byl wlaczony do analizy regresji. • Odleglosc Cooka jest to miara stopnia zmiany wspólczynników regresji, gdyby dany przypadek pominac w obliczeniach wspólczynników. 4.5 Korzystanie z modelu Koncowym etapem analizy jest wykorzystanie zbudowanego i zweryfikowanego modelu do prognozy zmiennej zaleznej [Stanisz98]. Wnioskowanie jest uogólnieniem wyników uzyskanych z próby losowej na cala populacje, podejmowaniem decyzji o parametrach i rozkladach w zbiorowosci generalnej przy wykorzystaniu regul wypracowanych przez rachunek prawdopodobienstwa [Zelias97]. Zasadniczym problemem jest mozliwosc okreslenia wielkosci popelnionych przy tym bledów. Po utworzeniu modelu, jego weryfikacji, eliminacji bledów, mozna przystapic do prognozowania zachowania sie aplikacji. Utworzony model moze pomóc w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji. Moze wskazac najbardziej korzystny wariant uruchomienia ze wzgledu na czas, przyspieszenie, efektywnosc lub inny badany czynnik. Pomimo ujecia w modelach tylko wybranych czynników charakteryzujacych srodowisko wykonania aplikacji, wartosci dopasowania modelu do danych empirycznych wskazuja, ze zmienna wyjsciowa zostala prawidlowo odwzorowana. Daje to podstawe do prognozowania na podstawie modeli wartosci charakterystyk wydajnosciowych rzeczywistych aplikacji równoleglych. Model moze wykazac, poczawszy od jakiej wielkosci parametru zrównoleglenie jest celowym. Za pomoca modelu mozna bez koniecznosci uruchamiania programu wybrac zmienna najbardziej lub najmniej znaczaco wplywajaca na obiekt. 44 Korzystanie z modelu moze spowodowac oszczednosc czasu, kosztów, a takze obciazenia komputerów równoleglych. Model moze pomóc przy wyborze najbardziej korzystnego dla danej aplikacji srodowiska pracy. Wykorzystujac modele i zmieniajac w nich wartosci parametrów wejsciowych, mozna przewidywac zmiany wydajnosci aplikacji równoleglych, bez ich uruchamiania w rzeczywistych srodowiskach. Oprogramowanie równolegle nie jest ogólnie dostepne. Majac do dyspozycji modele statystyczne mozna wiec okreslac charakterystyki aplikacji i zdecydowac o ewentualnym zbudowaniu lub wykorzystaniu takich systemów. 4.6 Podsumowanie Efektem pracy wlasnej jest opracowanie metodyki postepowania przy tworzeniu modeli statystycznych dla potrzeb aplikacji równoleglych, która zaprezentowano w rozdziale 4. Pierwszym krokiem w zaprezentowanej metodyce jest okreslenie celu badan modelowych (rozdzial 4.1). Osoba tworzaca model powinna zastanowic sie, czemu maja sluzyc tworzone modele. Z definicji model jest prototypem rzeczywistosci. Opisuje zachowanie systemu równoleglego pod wzgledem czasu wykonania, przyspieszenia, efektywnosci. Stworzenie modeli pozwoli na badanie i przewidywanie wplywu pewnych czynników na wydajnosc aplikacji, bez koniecznosci jej uruchamiania. Oprogramowanie równolegle nie jest ogólnodostepne i jego cena jest wysoka. Uzywajac modeli matematycznych osoba zainteresowana zakupem komputerów równoleglych moze zorientowac sie w jakim stopniu, podczas korzystania z aplikacji wspólbieznie wykonujacych obliczenia, zmienia sie wartosci charakterystyk wydajnosciowych w zaleznosci od posiadanej bazy sprzetowej. Drugi etap zaproponowanej metodyki dotyczy wyboru zmiennych wykorzystywanych do budowy modelu (rozdzial 4.2). Dokladne rozpoznanie i wyszczególnienie wszystkich zmiennych charakterystycznych dla danej aplikacji i srodowiska jej uruchomienia ma wplyw na jakosc modelowania. Model statystyczny budowany jest w oparciu o dane doswiadczalne uzyskane podczas testowania aplikacji, badz zaczerpniete z benchmarków komputerowych. Material statystyczny powinien byc usystematyzowany i odpowiednio zestawiony. Po okresleniu zmiennej wyjsciowej (czas wykonania programu, efektywnosc, przyspieszenie) nalezy wyznaczyc zbiór zmiennych niezaleznych. Zmienne te powinny istotnie wplywac na zmienna objasniana, a przy tym powinny byc mozliwe do zmierzenia i 45 jednoznacznego okreslenia. Do zmiennych takich dla srodowisk równoleglych naleza miedzy innymi, ilosc procesorów zaangazowanych do wykonania aplikacji, ilosc watków, czyli czesci programu wykonywanych na oddzielnych procesorach, ich rozmiaru, sposobu dostepu do wspólnych zasobów, rozmiaru pamieci operacyjnej i dyskowej, indywidualne cechy aplikacji. Do zmiennych, które ze wzgledu na niemozliwosc jednoznacznego wykonania badz brak wplywu z poziomu wykonania aplikacji, pomija sie w modelach zaliczyc mozna algorytmy zrównoleglenia, architekture komputerów, srodowisko operacyjne. Model statystyczny powinien byc budowany w oparciu o kilka zmiennych niezaleznych. Po ich odpowiednim doborze nalezy przystapic do kolejnego etapu, jakim jest wybór klasy modelu (rozdzial 4.3). W zaleznosci od rozkladu wartosci otrzymanych droga doswiadczalna nalezy okreslic rodzaj regresji. W celu ulatwienia wyboru nalezy, poslugujac sie dostepnymi srodowiskami matematycznymi, wykreslic linie trendu, która wskaze ogólny uklad danych i wstepna postac linii aproksymujacej. Zastosowanie przy budowie modelu moga miec liniowe, wykladnicze, potegowe, logarytmiczne oraz segmentowe postaci funkcji regresji. Po zgromadzeniu danych, wstepnym wyborze funkcji aproksymujacej nalezy posluzyc sie narzedziami komputerowymi w celu sprawdzenia poprawnosci poczynionych zalozen. Metody estymacji wspólczynników oraz sprawdzania poprawnosci modelu opisane zostaly w rozdziale 4.4. W pracy zaproponowano korzystanie z pakietu STATISTICA, który zawiera moduly sluzace do estymacji wspólczynników oraz generujace wskazniki oszacowan poprawnosci modelu. Program ten pozwala na szybkie uzyskanie wartosci statystyk dla badanych parametrów, pokazuje zestawienia i tabele wartosci, pomagajace w podjeciu decyzji o zgodnosci modelu z danymi doswiadczalnymi. Analiza wyników badania statystycznego oraz sformulowanie ocen i wniosków jest przepustka do wdrazania modeli do praktyki. W rozdziale 4.5 opisano koncowy etap analizy, jakim jest wykorzystanie zbudowanego i zweryfikowanego modelu do prognozy zmiennej zaleznej. Podczas opracowania metodyki postepowania przeanalizowano cechy srodowiska równoleglego, w wyniku czego wybrane zostaly czynniki, które moga posluzyc do prognozowania wartosci wydajnosci aplikacji. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. 46 Utworzony model moze pomóc w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji. Moze wskazac najbardziej korzystny wariant uruchomienia ze wzgledu na czas, przyspieszenie, efektywnosc lub inny badany czynnik. Model moze wykazac poczawszy od jakiej wielkosci parametru zastosowanie przetwarzania równoleglego jest oplacalne. Za pomoca modelu mozna bez koniecznosci uruchamiania programu wybrac zmienna najbardziej lub najmniej znaczaco wplywajaca na obiekt. Korzystanie z modelu moze spowodowac oszczednosc czasu, kosztów, a takze obciazenia komputerów równoleglych. Model moze pomóc przy wyborze najbardziej korzystnego dla danej aplikacji srodowiska pracy. 47 5 Zastosowanie opracowanej metodyki do budowy modeli charakteryzujacych efektywnosc aplikacji równoleglych Na podstawie metodyki przedstawionej w rozdziale 4 opracowane zostaly modele okreslajace czas wykonania programów, ich przyspieszenie oraz efektywnosc dla przykladowych zadan. Doswiadczenia zostaly dobrane, aby wykazac zasadnosc tworzenia matematycznego opisu badan w postaci modelu. Pokazano przyklady wskazujace zasadnosc stosowania maszyn równoleglych, a takze przypadki, kiedy zaangazowanie ich nie jest celowym. Pierwszy z modeli dotyczy obliczania ukladów równan metoda eliminacji Gaussa, drugi opisuje zmienne wplywajace na efektywnosc generacji fraktala, kolejny opisuje wykorzystanie metody simpleks do rozwiazywania zadan programowania liniowego. Utworzono takze modele dla aplikacji liczacej podwójna calke oraz wspólczynniki dwuwymiarowej korelacji fazowej i statycznej. Do testowania wykorzystano programy napisane przez studentów PS kierunku Informatyka jako prace zaliczeniowe w ramach przedmiotu: Przetwarzanie równolegle i rozproszone. 5.1 Badanie efektywnosci rozwiazywania ukladów równan liniowych metoda eliminacji Gaussa 5.1.1 Zalozenia wstepne Badanie polega na obserwacji aplikacji odpowiedzialnej za rozwiazywanie ukladów równan liniowych metoda eliminacji Gaussa [Gewert99], [Bertsekas89]. Na wejsciu programu podawana jest ilosc równan oraz z pliku pobierane sa wspólczynniki równania. Zadaniem programu jest okreslenie, czy uklad jest oznaczony, nieoznaczony, czy tez sprzeczny. W przypadku ukladu oznaczanego sa obliczane i wyswietlane wartosci niewiadomych. Zgodnie z podana metodyka nalezy sformulowac cel badan modelowych, czyli okreslic, czemu maja sluzyc tworzone modele. Zadaniem modelu jest oszacowanie wartosci podstawowych charakterystyk bez koniecznosci uruchamiania aplikacji, z uwzglednieniem czynników charakterystycznych dla srodowiska uruchomienia aplikacji. Podczas analizy 48 modelu statystycznego mozna wybrac najbardziej korzystny uklad parametrów wejsciowych, gwarantujacy zadawalajacy poziom charakterystyki wyjsciowej. Zadaniem modelu bedzie oszacowanie czasu wykonania aplikacji równoleglej, przyspieszenia oraz efektywnosci pracy procesorów. Z listy czynników podanych w rozdziale 4.2 jako istotne dla danej aplikacji wyrózniono nastepujace czynniki: • ilosc watków – program byl uruchamiany z podzialem na 2, 4, 8, 16 oraz 32 watki. Juz ze wstepnej analizy danych widac, ze róznice czasowe w analizowanym obszarze sa nieznaczne. Powstaje wiec pytanie, czy przy wykonywaniu aplikacji koniecznym jest ustawianie innej ilosci watków niz ilosci watków równej liczbie procesorów. • ilosc ukladów równan – odpowiada ilosci zmiennych do obliczenia. Okresla ona wielkosc zadania obliczeniowego. Mala ilosc równan nie da satysfakcjonujacych wartosci okreslajacych efektywnosc zrównoleglenia. Dopiero przekroczenie pewnej granicy bedzie przeslanka do uruchamiania aplikacji na maszynie wieloprocesorowej. Testowany program uruchamiano w od 100 do 2000 równan z krokiem co 100. Kazdy z ukladów byl ukladem posiadajacym rozwiazania. Uzyskany czas dla danych rozmiarów problemu przedstawia Rys. 5.1 230 2 180 4 130 8 16 80 30 1000 32 1200 1400 1600 1800 2000 Rys. 5.1 Czas wykonania programu o danym rozmiarze problemu w zaleznosci od ilosci watków Wartosci czasu dla ukladów ponizej 1000 równan sa nieznaczne, dlatego pominieto je w dalszej czesci rozwazan. Skupiono uwage dla tworzenia modeli obliczajacych uklady równan z ponad 1000 niewiadomych. Badania zostaly przeprowadzone na komputerze czteroprocesorowym http://jota.wi.ps.pl, wyposazonym w procesory P3 XEON 700 MHz, a wyniki testów zamieszczone zostaly na plycie dolaczonej do pracy w folderze WYNIKI\ROWNOLEGLY\GAUSS 49 5.1.2 Czas wykonania aplikacji Po zgromadzeniu danych, nalezy przystapic do kolejnego etapu, jakim jest wybór postaci funkcji aproksymujacej. Analiza danych, ich rozklad, wskazuja iz zmienna wyjsciowa jaka jest czas wykonania zadania opisac mozna przy uzyciu funkcji liniowej. Po wstepnym wyborze funkcji aproksymujacej, nalezy posluzyc sie narzedziami komputerowymi w celu sprawdzenia poprawnosci poczynionych zalozen. Przy tworzeniu modeli wykorzystano pakiet STATISTICA, który zawiera moduly sluzace do estymacji wspólczynników oraz generujace wskazniki oszacowan poprawnosci modelu. Program ten pozwala na szybkie uzyskanie wartosci statystyk dla badanych parametrów, pokazuje zestawienia i tabele wartosci pomagajace w podjeciu decyzji o zgodnosci modelu z danymi doswiadczalnymi. Za pomoca programu wygenerowano wspólczynniki modelu, podsumowanie regresji i analize wariancji, gdzie zmienna zalezna byl czas wykonania programu. Wspólczynniki wyestymowanego równania przyjmuja wartosci jak na Rys. 5.2. Rys. 5.2 Podsumowanie regresji okreslajacej czas wykonania aplikacji Dla badanej grupy wyników stworzono model regresji, który okresla zaleznosc funkcyjna wartosci oczekiwanej zmiennej losowej Y = CZAS (czas wykonania programu równoleglego) od nielosowych zmiennych X1 = ROZMIAR (rozmiar macierzy) oraz X2 = WATEK (ilosc watków). Po analizie w programie STATISTICA model postaci (5.1) zostal uproszczony. E(Y/x) = b 0 + b 1X1 + b 2 X 2 ( 5.1) Juz pobiezna analiza wyników pozwala stwierdzic istotnosc zmiennej ROZMIAR i nieistotnosc zmiennej WATEK. W wyniku przeprowadzonych obliczen do modelu regresji zostala wybrana tylko jedna funkcja. Z tabeli wynika, ze tylko wspólczynnik przy zmiennej ROZMIAR wyestymowanego równania postaci: Y = -215,241 + 0,22 * ROZMIAR ( 5.2) jest istotny. Swiadczy o tym wartosc poziomu p, który jest mniejszy od przyjetego poziomu istotnosci α (α=0,05), wartosci rozkladu t-Studenta oraz statystyki F-Snedecora znacznie 50 przekraczaja wartosci krytyczne (t0,005/2,45=2,014, F0,05,3,45=2,85). Kwadrat wspólczynnika determinacji R2 =0,9868 swiadczy o bardzo dobrym dopasowaniu linii regresji do danych doswiadczalnych. 5.1.3 Analiza modelu efektywnosci aplikacji Otrzymane wyniki efektywnosci zrównoleglenia w zaleznosci od ilosci watków oraz rozmiaru problemu, czyli ilosci wspólczynników do wyliczenia (Rys. 5.3) pokazuja, iz mozna posluzyc sie modelem funkcji regresji wielokrotnej postaci: E(Y/x) = b 0 + b 1X1 + b 2 X 2 + b 3 X1 + b 4X 2 2 2 ( 5.3) 0,8 2 4 8 0,75 0,7 16 32 0,65 0,6 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 Rys. 5.3 Efektywnosc aplikacji w zaleznosci od ilosci watków Do utworzenia i weryfikacji modelu posluzono sie pakietem STATISTICA. Po wykonaniu analizy w programie model, przy uwzglednieniu oznaczen: zmienna losowej Y = E (efektywnosc wykonania aplikacji równoleglej) , X1 = ROZMIAR (rozmiar macierzy) oraz X2 = WATEK (ilosc watków), zostal uproszony do postaci (5.4). W wyniku przeprowadzonych obliczen do modelu regresji zostaly wybrane tylko dwa wspólczynniki. Z tabeli wygenerowanej przez program wynika, ze wszystkie wspólczynniki wyestymowanego równania postaci: Y = 2,029031 − 0,001715 * ROZMIAR + 0,000001* ROZMIAR 2 ( 5.4) sa istotne. Wartosci statystki t-Studenta prowadza na poziomie istotnosci 0,05 do odrzucenia hipotezy oraz o tym, ze zmienna ROZMIAR nie wplywa na zmienna zalezna Y, czyli efektywnosc zrównoleglenia. Swiadcza o tym wartosci poziomu p, które sa mniejsze od przyjetego poziomu istotnosci α (α=0,05), wartosci rozkladu t-Studenta oraz statystyki FSnedecora znacznie przekraczaja wartosci krytyczne, a kwadrat wspólczynnika korelacji wielokrotnej R2 =0,9576 swiadczy o dobrym dopasowaniu linii regresji do danych doswiadczalnych. Wynika z tego, ze w ustabilizowanym przedziale wykonywania zadan podzial na okreslona liczbe watków nie wplywa istotnie na wartosc efektywnosci. 51 Model opisujacy przyspieszenie przyjmuje postac (5.5). Y = 8,1161125 − 0,006862 * ROZMIAR + 0,000002 * ROZMIAR 2 ( 5.5) Koncowym etapem analizy jest wykorzystanie zbudowanego i zweryfikowanego modelu do prognozy zmiennej zaleznej. Utworzony model moze pomóc w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji. Za jego pomoca mozna okreslic wplyw poszczególnych wielkosci wejsciowych na wydajnosc aplikacji. Korzystanie z modelu moze spowodowac oszczednosc czasu, kosztów, a takze obciazenia komputerów równoleglych. Choc w modelu nie zostaly uwzglednione wszystkie czynniki charakteryzujace aplikacje równolegle, opisane w rozdziale 4.2, to wspólczynniki dopasowania modelu do danych rzeczywistych przyjmuja wartosci bardzo wysokie, wiec odpowiednio opisuja rzeczywistosc. Mozliwosc rezygnacji z pewnych wartosci wejsciowych, jest mocna strona zaprezentowanej metodyki, gdyz czyni mozliwym prognozowanie wartosci na podstawie modelu. W rzeczywistych warunkach uzytkownik nie ma mozliwosci przebadania wszystkich parametrów, wiec wybór tylko dostepnych czynników i sposobnosc prognozowania na ich podstawie jest bardzo cenna. 5.2 Czas i efektywnosc generacji fraktala Mandelbrota 5.2.1 Zakres badan Aplikacja generuje zbiór Mandelbrota zwany popularnie fraktalem Mandelbrota. Fraktal jest to figura, dla której dwie wielkosci matematyczne, wymiar topologiczny oraz wymiar Hausdorfa sa rózne [Martyn96]. W wyniku uruchomienia programu powstaje obraz zlozony z figur samopodobnych, dajacy ciekawy efekt wizualny. Okreslenie charakterystyki wydajnosci, czyli czasu wykonania programu, jego przyspieszenia w stosunku do programu sekwencyjnego oraz efektywnosci ma sluzyc prognozowaniu zachowania sie aplikacji bez koniecznosci jej uruchamiania. Dzieki prognozie wartosci wydajnosci oprogramowania, na podstawie modelu statystycznego, mozna zorientowac sie w jakim stopniu przy zainwestowaniu i zaangazowaniu systemów równoleglych zmienia wartosci charakterystyk wydajnosciowych, w zaleznosci od posiadanej bazy sprzetowej. Utworzone modele maja wskazac wplyw zmiennych i parametrów na czas generacji i efektywnosc otrzymywanych obrazów. 52 Droga doswiadczalna uzyskano czasy i wartosci efektywnosci. Wyniki doswiadczen zamieszczone zostaly na plycie dolaczonej do pracy w katalogu \WYNIKI\ROWNOLEGLY\FRAKTAL. Zgodnie z zaprezentowana metodyka, z listy czynników, które moga miec istotny wplyw na wydajnosc aplikacji, nalezy wybrac zmienne charakteryzujace srodowisko równolegle na dostepnym komputerze. Zmienne te powinny istotnie wplywac na zmienna objasniana, a przy tym powinny byc mozliwe do zmierzenia i jednoznacznego okreslenia. Do wielkosci takich dla srodowisk równoleglych naleza miedzy innymi: ilosc procesorów zaangazowanych do wykonania aplikacji, ilosc watków, czyli czesci programu wykonywanych na oddzielnych procesorach, ich rozmiaru, sposobu dostepu do wspólnych zasobów, rozmiaru pamieci operacyjnej i dyskowej. Jako zmienne majace wplyw na czas oraz efektywnosc generacji fraktala rozwazano: - liczbe procesorów w komputerze. Do przeprowadzenia testów wykorzystano dwa komputery: epsilon – posiadajacy cztery procesory Pentium III Xeon 700 MHz oraz koka – posiadajacy dwa procesory Pentium II 333 MHz. Otrzymane zakresy wartosci przedstawia Rys. 5.4. 1,2 1 0,8 0,6 0,4 0,2 0 1 2 4 8 16 4 procesory 32 64 128 256 2 procesory Rys. 5.4 Efektywnosc generacji fraktala uwzgledniajaca parametr chunk-size i liczbe procesorów - ilosc watków równolegle wykonujacych petle. Program podzielono na 2, 4, 8 i 16 watków; - wielkosc porcji do wykonania (parametr chunksize) – przetestowano wielkosc z nastepujacego zbioru {1,2,4,8,16,32,64,128,256}; - rozmiar okna zespolonego. Sprawdzono zachowanie aplikacji dla wymiarów okna 640x480, 800x600,1024x768; - ilosc kolorów – wykorzystano 256 oraz 65536 kolorów. 53 5.2.2 Weryfikacja modelu opisujacego zachowanie sie aplikacji Tak przygotowane dane posluzyly do wykreslenia linii trendu w ukladzie wartosci. W wyniku analizy okazalo sie, ze dopasowanie linii regresji do danych doswiadczalnych moze byc dokonane za pomoca regresji wielokrotnej. Jednak bardziej celowym, ze wzgledu na lepsze odwzorowanie wydaje sie zastosowanie regresji segmentowej. Dla ponizszego przykladu przedstawione zostana obydwa rozwiazania. Po zgromadzeniu danych, wstepnym wyborze funkcji aproksymujacej nalezy przejsc do kolejnego etapu modelowania jakim jest tworzenie modelu, czyli estymacja i weryfikacja jego poprawnosci, z wykorzystaniem srodowiska matematycznego. W programie STATISTICA dokonano analizy przy pomocy regresji wielokrotnej. Wynika z niej, iz wspólczynnik dopasowania równy jest 0,8573, a model przyjmuje postac: CZAS = −47 ,0495 + 0,5904 * KOLOR − 0,0004 * P * KOLOR + 0,0001 * XY ( 5.6) Jednak w celu znalezienia lepszego dopasowania (o wyzszym wspólczynniku) dokonano analizy przy pomocy regresji segmentowej. Bardzo czesto zdarza sie, ze zaleznosc miedzy zmiennymi niezaleznymi a zmienna zalezna zmienia sie wraz z wartosciami zmiennej niezaleznej [Stanisz98]. W wyniku zastosowania regresji segmentowej funkcja opisujaca model zostala podzielona na dwie czesci. Zgodnie z Rys. 5.5 linia regresji przyjmuje nastepujaca postac ogólna: E(Y/x) = b 0 + b 1X1 + b 2 X 2 + b 3 X 3 + b 4 + b 5 X1 + b 6 X 2 + b 7 X3 , ( 5.7) gdzie zmienna X1 = KOLOR okresla ilosc kolorów, X2 = P liczbe procesorów, a zmienna X3 = XY jest iloczynem szerokosci i wysokosci okna zespolonego. Rys. 5.5 Podsumowanie regresji – czas wykonania - fraktal Korzystajac z Rys. 5.5 wplyw czynników na czas generacji fraktala za pomoca liniowej funkcji regresji zapisac mozna nastepujaco: CZAS = 0,266678 + 0,000369 * KOLOR − 0,119833 * P + 0,000001 * XY + 12209 ,06 − 0,185269 * KOLOR − 26,8961 * P + 0 ,000148 * XY ( 5.8) 54 Podczas estymacji okreslony zostal punkt przelamania. Dla wartosci wyjsciowej mniejszej i równych punktowi przelamania nalezy przy szacowaniu wartosci wybrac czlon pierwszy modelu. Dla wartosci wiekszych niz punkt przelamania modeluje sie na podstawie drugiego czlonu równania. Kwadrat wspólczynnika korelacji R2 =0,99370 jest bardzo wysoki i swiadczy o bardzo dobrym dopasowaniu wartosci do danych doswiadczalnych. Podsumowanie regresji dla efektywnosci wykonania aplikacji ze wzgledu na ilosc procesorów i liczbe watków przedstawia Rys. 5.6. W wyniku badania efektywnosci zrównoleglenia pod wplywem liczby procesorów i podzialu na okreslona ilosc watków model (por. Rys. 5.6) mozna zapisac nastepujaco: Rys. 5.6 Podsumowanie regresji – efektywnosc zrównoleglenia - fraktal Y = 0,104825+ 0,114623* P − 0,022062*WATEK+ 0,235825+ 0,370871* P − 0,000809*WATEK ( 5.9) gdzie P okresla liczbe procesorów, a WATEK ilosc watków równolegle wykonujacych petle. Takze w tym przypadku wspólczynnik R =0,98333 potwierdza poprawnosc modelu. Mimo pominiecia w modelach wielu z czynników charakteryzujacych badane zjawisko, czyli nie uwzgledniono w nich wszystkich zmiennych mogacych oddzialywac na wydajnosc aplikacji, wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co swiadczy o fakcie, iz zaprezentowane równania oddaja ogólny trend dla czasu wykonania programu, efektywnosci, przyspieszenia. Wartosci charakterystyk wskazuja na odpowiedni wybór zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. Opis zjawiska za pomoca modelu pomaga w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji rozproszonej, wskazuje zmienne najbardziej lub najmniej istotnie wplywajace na wykonywany program. Na podstawie modelu bez koniecznosci uruchamiania aplikacji mozna przewidywac wartosci podstawowych charakterystyk wydajnosciowych. 55 5.3 Analiza efektywnosci zrównoleglenia metoda liniowego przeksztalcenia petli 5.3.1 Warunki eksperymentu W celu sprawdzenia wplywu czynników na czas, przyspieszenie oraz efektywnosc wykonania programu przeprowadzono doswiadczenia na komputerze czteroprocesorowym EPSILON, na nieobciazonym systemie komputerowym bez wplywu innych programów zaklócajacych. Komputer ten sklada sie z czterech procesów Pentium III Xeon 700 MHz. Przy tworzeniu modeli wykorzystano metodyke zaproponowana w rozdziale 4. Zgodnie z zaprezentowanym sposobem postepowania pierwszym krokiem jest okreslenie celu badan modelowych. Oszacowanie czasu wykonania programu, jego przyspieszenia w stosunku do programu sekwencyjnego oraz efektywnosci ma sluzyc prognozowaniu zachowania sie aplikacji bez koniecznosci jej uruchamiania. Okreslenie wydajnosci oprogramowania równoleglego, z zasady drogiego i rzadko dostepnego, pozwala zorientowac sie w jakim stopniu przy zainwestowaniu i zaangazowaniu systemów równoleglych zmienia sie wartosci charakterystyk wydajnosciowych, w zaleznosci od posiadanej bazy sprzetowej. Material statystyczny uzyskany zostal w wyniku testowania aplikacji. Wyniki doswiadczen zamieszczone zostaly na plycie dolaczonej do pracy w katalogu WYNIKI\ROWNOLEGLY\MNOZENIE_MACIERZY. Zgodnie z etapem drugim zaprezentowanej metodyki (rozdzial 4.2) z listy czynników, które moga miec istotny wplyw na wydajnosc aplikacji, wybrano zmienne charakteryzujace srodowisko równolegle na dostepnym komputerze. Zmiennymi objasnianymi dla rozpatrywanego przypadku sa wymienione wczesniej wartosci charakterystyk wydajnosciowych. W rozdziale 5.3.2 zaprezentowano weryfikacje modeli do prognozowania czasu wykonania programu w srodowisku równoleglym, w rozdziale 5.3.3 przyspieszenie, a w 5.3.4 efektywnosc zrównoleglenia. Zmienne te powinny istotnie wplywac na zmienna objasniana, a przy tym powinny byc mozliwe do zmierzenia i jednoznacznego okreslenia. Do zmiennych takich dla srodowisk równoleglych naleza miedzy innymi: ilosc procesorów zaangazowanych do wykonania aplikacji, ilosc watków, czyli czesci programu wykonywanych na oddzielnych procesorach, 56 ich rozmiaru, sposobu dostepu do wspólnych zasobów, rozmiaru pamieci operacyjnej i dyskowej. Aplikacje przetestowano pod katem wplywu nastepujacych czynników: - ilosc watków, przy uwzglednieniu podzialu na 2, 4, 8,16,32 oraz 64 watki. - rozmiar macierzy z zakresu od 100 do 3000. Utworzone modele charakteryzuja aplikacje, ze wzgledu na podzial przestrzeni iteracji. Rozwazono podzial przestrzeni iteracji miedzy hiperplaszczyzny oraz podzial dziedziny wartosci zmiennej indeksowej najbardziej zewnetrznej petli. Opis problemu znajduje sie w publikacjach [Berlinska02], [Poliwoda02], [Babitchev83], [Lewis92]. W doswiadczeniu przyjeto nastepujaca symbolike: • MACIERZ_O – srednia efektywnosc zrównoleglenia petli zewnetrznej, gdzie watek wykonuje wskazane iteracje; • MACIERZ_O_A – srednia efektywnosc zrównoleglenia petli zewnetrznej, gdzie watek wykonuje ciagly zbiór iteracji; • MACIERZ_H – srednia efektywnosc zrównoleglenia petli, której przestrzen iteracji zostala podzielona miedzy hiperplaszczyzny, gdzie watek wykonuje wskazane iteracje; • MACIERZ_H_A – srednia efektywnosc zrównoleglenia petli, której przestrzen iteracji zostala podzielona miedzy hiperplaszczyzny, gdzie watek wykonuje ciagly zbiór iteracji. 5.3.2 Czas wykonania programu W wyniku przeprowadzonych badan otrzymano czas wykonania programów (dla podzialu przestrzeni iteracji miedzy hiperplaszczyzny [Babitchev83] (Rys. 5.7.) oraz podzialu dziedziny wartosci zmiennej indeksowej najbardziej zewnetrznej petli [Bik94]) przy uwzglednieniu podzialu na 2, 4, 8,16,32 oraz 64 watki. 57 1000 2 800 4 600 8 400 16 200 32 0 64 0 1000 2000 3000 4000 Rys. 5.7 Czas wykonania programu przy zrównolegleniu metoda hiperplaszczyzn Czas wykonania programu dla dwóch watków jest istotnie rózny niz dla wiekszej ilosci watków. Ma to zwiazek z faktem, ze doswiadczenie bylo wykonane na komputerze czteroprocesorowym, wiec nie wszystkie procesory byly wykorzystywane. Dla pozostalej liczby watków mozna zaobserwowac taki sam trend w rozkladzie wyników. Zrównoleglenie ma sens dla duzej ilosci obliczen dlatego do dalszych rozwazan przyjeto rozmiar macierzy powyzej 1000. Obraz danych sluzacy do dalszej analizy przedstawia Rys. 5.8. 500 4 8 16 32 64 400 300 200 100 0 1000 1500 2000 2500 3000 Rys. 5.8 Czas wykonania programu zrównoleglonego metoda hiperplaszczyzn – zakres danych do analizy Powyzsze dane sluzyc beda do utworzenia modeli statystycznych. Zgodnie z trzecim krokiem podanym w metodyce postepowania (rozdzial 4.3) nalezy okreslic ogólny trend rozkladu wartosci. W tym celu do zestawienia wartosci na Rys. 5.8 dodano linie trendu. Po jej analizie wybrano funkcje wielomianowa drugiego rzedu, jako podstawe do budowania modelu. Rozklad danych daje mozliwosc zastosowania takze regresji liniowej. Ponizej przedstawione zostana obydwa rozwiazania. 58 Zgodnie z kolejnym krokiem metodyki (rozdzial 4.4) przystapiono do estymacji wspólczynników modelu oraz jego weryfikacji. Funkcja postaci: E(Y/x) = b 0 + b 1X1 + b 2 X 2 + b 3 X1 + b 4X 2 2 2 ( 5.10) gdzie X1 okresla liczbe watków, a X2 oznacza rzad macierzy zostala poddana analizie w programie STATISTICA. Juz pobiezna analiza wyników pozwala stwierdzic istotnosc zmiennej ROZMIAR i nieistotnosc zmiennej WATEK. Na wskutek nieistotnosci wspólczynnika zwiazanego z liczba watków model koncowy przyjal postac: Y = 122,3993 − 0,218476 * X 2 + 0 ,00012024 * X 22 ( 5.11) Rys. 5.9 Podsumowanie regresji – czas wykonania przy zrównolegleniu metoda hiperplaszczyn W wyniku analizy, przy pomocy programu STATISTICA [STATISTICA97], do modelu wprowadzone zostaly tylko zmienne okreslajace rozmiar macierzy, a pominiete zostaly zmienne zwiazane z liczba watków. Z tabeli Rys. 5.9 wynika, ze poziom p dla kombinacji zmiennej WATEK jest wiekszy od zadanego poziomu α=0,05, co swiadczy o nieistotnosci czynników. Wartosc bezwzgledna statystyki |t| dla wyrazu wolnego oraz zmiennych zwiazanych w rozmiarem macierzy sa duzo wieksze od wartosci krytycznej, co potwierdza hipoteze o ich istotnosci. Podobnie statystka F=13748 jest duzo wieksza od granicznej. Kwadrat wspólczynnika korelacji R2 =0,99829346 jest bardzo wyskoki i swiadczy o bardzo dobrym dopasowaniu wartosci do danych doswiadczalnych. Wspólczynnik determinacji informuje, ze przyjety model w ponad 99% wyjasnia Y, czyli czas wykonania programu równoleglego. Juz model regresji liniowej postaci: Y = −322,7243778 − 0,2624979 * X 2 ( 5.12) 59 wykazuje ze zmienna zwiazana z liczba watków mozna pominac. Jednak w tym przypadku wspólczynnik dopasowania jest nizszy i wynosi 0,9498, dlatego do celów dalszej analizy pozostawiono zaleznosc (5.11). Dla potwierdzenia slusznosci modelu na Rys. 5.10 przedstawiono rozklad wartosci obserwowanych (wedlug doswiadczenia) od przewidywanych (obliczonych z modelu). Punkty ukladaja sie wzdluz linii prostej, co swiadczy o dopasowaniu modelu do danych rzeczywistych. Rys. 5.10 Wykres rozrzutu wartosci oczekiwanych i przewidywanych Model (5.11) dotyczyl MACIERZY H, modele dla pozostalych doswiadczen oraz wspólczynniki mówiace o ich dopasowaniu zawiera Tabela 5.1. Tabela 5.1 Modele statystyczne dla aplikacji odpowiedzialnej za mnozenie macierzy SPOSÓB PODZIALU PRZESTRZE NI OPERACJI MACIERZ H_A POSTAC MODELU WSPÓLCZYNNIK DETERMINACJI Y = 156,1777 − 0,2570649 * X 2 + 0,0001319 * X 2 2 R2 = 0,98752405 ( 5.13) MACIERZ O Y = 216,0153 − 0,31963012 * X 2 + 0,01024532 * X 2 2 R2 = 0,98355009 ( 5.14) MACIERZ O_A Y = 187,7862 − 0, 29153408 * X 2 + 0,00014387 * X 2 2 R2 = 0,98739496 ( 5.15) Na Rys. 5.11 zawarte jest porównanie czasu prognozowanego na podstawie utworzonego modelu z czasem, jaki otrzymano w wyniku doswiadczenia dla metody 60 hiperplaszczyzn. Róznice sa bardzo nieznaczne, co oznacza, ze z powodzeniem mozna uzywac przedstawionego równania matematycznego do opisu rzeczywistej zaleznosci. 600 500 400 300 200 100 0 1000 1500 2000 wartosci obserwowane 2500 3000 wartosci przewidywane Rys. 5.11 Obserwowany i prognozowany czas wykonania programu równoleglego dla metody hiperplaszczyzn Na Rys. 5.12 przedstawiony zostal blad standardowy, czyli odchylenie standardowe sredniej, obliczany ze wzoru (5.7): δ = s2 n ( 5.16) Na wykresie przedstawiono bledy dla calego badanego obszaru sortujac je wedlug rozmiaru macierzy oraz ilosci watków. Najmniejsze odchylenia mozna zaobserwowac dla MACIERZY_H. To dla niej wspólczynnik dopasowania byl najwyzszy. Dla wszystkich czterech metod wystepuje taka sama tendencja, co do ekstremum. Maksima dotycza maksymalnych z badanych rozmiarów macierzy i dla nich wystepuja najwieksze bledy, co zwiazane jest najwiekszymi wartosciami czasu. 8 7 6 5 4 3 2 1 0 MACIERZ_H MACIERZ_O MACIERZ_H_A MACIERZ_O_A 4 8 16 32 64 Rys. 5.12 Blad standardowy wartosci przewidywanej dla poszczególnej ilosci watków 61 Weryfikacja utworzonych modeli wskazuje na poprawnosc doboru wspólczynników i mozliwosc prognozowania czasu wykonania aplikacji równoleglej. Okreslenie czasu wykonania bez koniecznosci uruchamiania aplikacji moze wskazac oplacalnosc korzystania ze srodowiska równoleglego. Wybrane cechy aplikacji i srodowiska jej uruchomienia zastosowane jako wspólczynniki w modelu statystycznym poprawnie opisuja zachowanie uruchamianej aplikacji. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. 5.3.3 Efektywnosc zrównoleglenia Kolejnym etapem w badaniu aplikacji jest stworzenie modeli, na podstawie których prognozowac mozna efektywnosc programu. Wartosci okreslajace efektywnosc zrównoleglenia procesów otrzymano na podstawie zaleznosci (5.17), efektywnosc = t s /( t r ⋅ p) ( 5.17) gdzie ts – czas wykonania programu sekwencyjnie, tr – czas wykonania programu równolegle, p – ilosc procesorów. Otrzymane wyniki podzielono na 3 grupy. Pierwsza z nich zgodnie z Rys. 5.13 to faza wzrostu efektywnosci która obejmuje zakres rozmiaru macierz <0;800>. Dla drugiej fazy <800;1700> nie udalo sie stworzyc modelu, który w jednoznaczny sposób opisalby przedstawione zaleznosci. W trzeciej fazie dotyczacej rozmiaru macierzy z zakresu <1800;2900> obserwuje sie ustabilizowana prace systemu. Dla tej wlasnie grupy skoncentrowano sie na analizie wplywu czynników na efektywnosc zrównoleglenia procesów. 62 140 120 2 100 4 8 16 32 64 80 60 - 40 20 0 0 500 1000 1500 2000 2500 3000 Rys. 5.13 Efektywnosc zrównoleglenia programu metoda hiperplaszczyzn Dla parametrów charakteryzujacych aplikacje, czyli dla podzialu na okreslona ilosc watków oraz ze wzgledu na rzad macierzy, podobnie jak w przypadku badania czasu wykonania aplikacji, podjeto sie budowy modelu statystycznego. W wyniku analizy rozkladu zmiennych okazalo sie, iz postac wielomianu trzeciego stopnia prawidlowo oddaje uklad danych uzyskanych w wyniku przeprowadzenia doswiadczen. E(Y/x) = b 0 + b 1X1 + b 2 X 2 + b 3 X1 + b 4 X 2 + b 5 X1X 2 + b6 X 2 2 2 3 ( 5.18) W oparciu o postac ogólna (5.18) funkcji regresji przeprowadzono analize statystyczna i stworzono model, który okresla zaleznosc funkcyjna wartosci oczekiwanej zmiennej losowej Y (efektywnosc) od nielosowych zmiennych X1 (rozmiar macierzy) oraz X2 (ilosc watków). Po analizie w programie STATISTICA, na wskutek nieistotnosci dla linii regresji wspólczynników okreslajacych rozmiar macierzy model, zostal uproszony. Rys. 5.14 Podsumowanie regresji – efektywnosc dla metody hiperplaszczyzn W wyniku przeprowadzonych obliczen do modelu regresji zostaly wybrane tylko trzy funkcje. Z tabeli Rys. 5.14 wynika, ze wszystkie wspólczynniki wyestymowanego równania postaci: Y = -37,1524 + 57 ,1452 * X 2 − 7,3449 * X 2 + 0,2664 * X 2 2 3 ( 5.19) 63 sa istotne. Swiadcza o tym wartosci poziomu p, które sa mniejsze od przyjetego poziomu istotnosci α (α=0,05) oraz wartosci rozkladu t-Studenta oraz statystyki F-Snedecora, które znacznie przekraczaja wartosci krytyczne (t0,005/2,45=2,014, F0,05,3,45=2,85). Kwadrat wspólczynnika korelacji wielokrotnej R2 =0,9959 informuje o bardzo dobrym dopasowaniu linii regresji do danych doswiadczalnych. Wartosc bledu standardowego estymacji (1,07), czyli ocena wielkosci losowych odchylen modelu, interpretowany jest jako przecietne odchylenie wagi obserwowanej w próbie od wagi teoretycznej, czyli wyznaczonej z modelu. Dla pozostalych metod zrównoleglenia wnioski odnosnie istotnosci wspólczynników byly analogiczne. Wynika z tego, ze w ustabilizowanym przedziale wykonywania zadan rozmiar macierzy nie wplywa istotnie na wartosc efektywnosci. Dlatego do dalszej analizy uzyto wartosci sredniej efektywnosci zrównoleglenia dla okreslonej liczby watków. Za pomoca stworzonego modelu mozna wyciagac wnioski na temat dzialania systemu, a takze wyjasniac i przewidywac jego zachowanie. Moze sie on okazac skutecznym narzedziem do oceny efektywnosci wykonania aplikacji bez potrzeby jej uruchamiania. 100 90 80 MACIERZ_O MACIERZ_H MACIERZ_H_A MACIERZ_O_A 70 60 50 40 2 4 8 16 32 64 Rys. 5.15 Srednia efektywnosc zrównoleglenia dla okreslonej liczby watków Dla kazdej ilosci watków efektywnosc zrównoleglenia dla podzialu przestrzeni iteracji miedzy hiperplaszczyzny jest wyzsza od efektywnosci zrównoleglenia petli zewnetrznej. Efektywnosc dla dwóch watków jest duzo nizsza niz w pozostalych przypadkach. Wynika to z faktu, iz doswiadczenia byly przeprowadzane na komputerze czteroprocesorowym i nie wszystkie procesory byly obciazone. Sposób podzialu iteracji miedzy niezaleznie pracujace watki nie ma znacznego wplywu na efektywnosc zrównoleglenia dla wybranej metody podzialu przestrzeni iteracji. Wskazniki dopasowania wartosci uzyskanych na podstawie modelu do wartosci doswiadczalnych sa odpowiednie, co potwierdza poprawnosc modelu i daje mozliwosc prognozowania na ich podstawie wartosci efektywnosci rzeczywistych aplikacji. Utworzony 64 model moze pomóc w podjeciu decyzji odnosnie warunków i parametrów uruchamiania programu, uwzgledniajac parametry uruchomienia dostepne z poziomu uzytkownika systemu. Model moze wykazac poczawszy od jakiej wielkosci parametru zrównoleglenie jest celowym. Wskaze, które z parametrów istotnie oddzialuja na charakterystyke wykonywanego zadania. Oprogramowanie równolegle jest drogie i nie zawsze dostepne. Korzystanie z modelu pozwoli na zorientowanie sie jak wygladac bedzie efektywnosc zrównoleglenia danej aplikacji, w przypadku zastosowania sprzetu o architekturze równoleglej. 5.3.4 Przyspieszenie wykonania programu równoleglego W ponizszym punkcie zaprezentowano modele statystyczne, które sluza do okreslania przyspieszenia wykonania programu równoleglego, definiowanego jako: przyspiesz enie = t s / t r , ( 5.20) gdzie: ts – czas wykonania programu sekwencyjnie, tr – czas wykonania programu równolegle. Analizujac obszar ustabilizowanej pracy systemu, czyli zakres rozmiaru macierzy powyzej 1800 przyspieszenie wykonania programu ksztaltuje sie jak na Rys. 5.16. Po dodaniu linii trendu okazalo sie iz do prognozowania przyspieszenia uzyc mozna regresji wielokrotnej stopnia drugiego. Zgodnie z zaproponowana metodyka po wyborze funkcji aproksymujacej nalezy posluzyc sie narzedziami komputerowymi w celu sprawdzenia poprawnosci poczynionych zalozen. Do tego celu uzyto programu STATISTICA, w którym wykorzystano model regresji wielokrotnej. Dla ponizej przedstawionych danych zbudowano model regresji wielokrotnej, z której wynika, iz podobnie jak w przypadku efektywnosci znaczacym czynnikiem jest ilosc watków. 65 3,75 3,7 3,65 3,6 3,55 3,5 3,45 3,4 3,35 1800 4 8 16 64 32 2300 2800 Rys. 5.16 Przyspieszenie wykonania programu dla ustabilizowanej pracy systemu W wyniku analizy model opisujacy przyspieszenie przyjmuje nastepujaca postac: Y = 3,935908 − 1,05509 * X 2 + 0,004716 * X 2 2 ( 5.21) Po analizie okazalo sie, ze wszystkie zmienne zwiazane z rozmiarem macierzy zostaly wyeliminowane, a za istotne dla modelu wskazane zostaly wspólczynniki zwiazane z iloscia watków. Decyduja o tym wartosci poziomu p równe zeru lub bardzo bliskie zeru, które sa mniejsze od przyjetego poziomu istotnosci α (α=0.05). Z przedstawionego rysunku wynika, iz nieznaczny wplyw moze miec wartosc wspólczynnika przy rozmiarze macierzy podniesionym do kwadratu. Jednak jest to tak mala wartosc, ze dla celów analizy zostala pominieta. Wartosci rozkladu t-Studenta oraz statystyki F-Snedocora znacznie przekraczaja wartosci krytyczne, co swiadczy o poprawnym doborze wspólczynników modelu. Kwadrat wspólczynnika korelacji wielorakiej R2 =0,9233 potwierdza poprawnosc dopasowania linii regresji do danych doswiadczalnych. Wspólczynnik determinacji informuje, ze przyjety model w ponad 92% wyjasnia zmienna wyjsciowa, która jest przyspieszenie wykonania kodu równoleglego w stosunku do wykonania sekwencyjnego. Dla pozostalych metod zrównoleglenia wnioski odnosnie istotnosci wspólczynników sa analogiczne. Na Rys 5.11 przedstawiono podsumowanie regresji dla zrównoleglenia najbardziej zewnetrznej petli (MACIERZ_O). Wynika z niego, ze w ustabilizowanym przedziale wykonania zadan rozmiar macierzy równiez nie wplywa istotnie na przyspieszenie wykonania programu. 66 Rys. 5.17 Podsumowanie regresji dla zrównoleglenia najbardziej zewnetrznej petli Model statystyczny moze byc w takim przypadku opisany równaniem (5.13). Y = 3,935908 − 1,05509 * X 2 + 0,004716 * X 2 2 ( 5.22) O istotnosci tylko ponizej wskazanych wspólczynników swiadcza poziomy p równe zero, wartosci rozkladu t-Studenta oraz statystyki F-Snedecora, które przekraczaja wartosci krytyczne. Kwadrat wspólczynnika korelacji wielokrotnej R2 =0,9573 mówi o odpowiednim dopasowaniu linii regresji do danych doswiadczalnych. Utworzone modele opisujace przyspieszenie wykonania kodu równoleglego jednoznacznie wykazuja, iz problem ten nie zalezy istotnie od rozmiaru macierzy, czyli od wielkosci zadania. Waznym jest natomiast podzial na odpowiednia liczbe niezaleznie pracujacych watków. Z analizy wynika, ze program osiagnal najwyzsze wartosci przyspieszenia dla 4 watków, czyli dla liczby równej ilosci procesorów. 5.4 Modele efektywnosci zastosowania metody Simpleks do rozwiazywania zadan programowania liniowego 5.4.1 Przedstawienie obszaru badan Zadaniem programu jest rozwiazywanie zadan programowania liniowego metoda simpleks. Jest to iteracyjna procedura, która polega na analizie tylko niektórych dopuszczalnych rozwiazan bazowych [Nelder65]. Algorytm metody simpleksowej dotyczy wyboru dopuszczalnego rozwiazania bazowego, a nastepnie kolejno na przechodzeniu do kolejnego dopuszczalnego rozwiazania bazowego o lepszej wartosci funkcji celu, az do uzyskania wielkosci optymalnej [Freeman92]. W rozdziale utworzone zostano modele statystyczne, na podstawie których bez koniecznosci uruchamiania aplikacji, prognozowac bedzie mozna charakterystyki wydajnosci. 67 Na podstawie modeli bedzie mozna szacowac wartosci czasu wykonania zadania, przyspieszenia, efektywnosci. Stworzenie modeli pozwoli na badanie wplywu pewnych czynników na okreslona zmienna wyjsciowa. Aby utworzyc model nalezy dysponowac informacjami statystycznymi, uzyskanymi w wyniku testowania programu. Osoba tworzaca model bedzie traktowala aplikacje jako „czarna skrzynke”, bedzie miala wplyw na zmiane czynników dostepnych tylko z poziomu uzytkownika systemu. Pewne czynniki nie znajda swojego odzwierciedlenia w modelu matematycznym opisujacym wydajnosc aplikacji. Glównym powodem nie rozpatrywania w modelu jest niemozliwosc dokladnego okreslenia oraz przedstawienia ich w sposób liczbowy. Rozwazana aplikacja testowana byla na komputerze czteroprocesorowym, dostepnym sie na Wydziale Informatyki o architekturze 4 x P3 XEON 700 MHZ. Jako glówna zmienna niezalezna w programie wybrano ilosc watków miedzy które zostaly podzielone zadania do niezaleznego wykonania. Przy testowaniu aplikacji uwzgledniono podziala na 2, 4, 6 oraz 10 watków. Rozwazono takze wplyw zmiennych, mozliwych do zmiany przez uzytkownika aplikacji, dotyczacych: - liczby zmiennych opisujacych funkcje celu, - liczby ograniczen. Wyniki testów, które posluzyly do budowy modelu zawarte sa na plycie dolaczonej do pracy w folderze \WYNIKI\ROWNOLEGLY\SIMPLEX. 5.4.2 Wplyw czynników na czas generacji rozwiazania Na rysunku przedstawiono uzyskane wartosci czasu dla poszczególnej ilosci watków. Na osi rzednych zaznaczone sa ilosc zmiennych w funkcji celu oraz ilosc ograniczen. 3 2,5 2 1,5 1 0,5 0 10-15 17-20 20-20 25-25 2 watki 4 watki 6 watków 25-30 30-30 10 watków Rys. 5.18 Czas wykonania zadan programowania liniowego metoda Simpleks 68 Po dokonaniu pomiarów czasu wykonania nalezy ustalic klase modelu. Badania tego dokonac mozna na podstawie analizy rozkladu zmiennych poprzez okreslanie linii trendu. Ze wstepnej analizy wartosci uzyskanych z doswiadczen wynika, iz celowym okaze sie zastosowanie regresji segmentowej, gdzie ogólna linia regresji opisana bedzie za pomoca sumy dwóch funkcji obrazujacych zachowanie sie modelu. Nastepnie za pomoca narzedzi komputerowych nalezy przystapic do estymacji wspólczynników. Estymacja to szacowanie wartosci parametrów lub postaci funkcji rozkladu prawdopodobienstwa w populacji generalnej na podstawie wyników próby. Na Rys. 5.19 przedstawiono podsumowanie regresji, gdzie zmienna zalezna jest czas, a badanymi czynnikami majacymi na nia wplyw jest ilosc zmiennych, ilosc ograniczen oraz podzial na odpowiednia ilosc watków. Rys. 5.19 Podsumowanie regresji - czas wykonania - metoda Simpleks Stworzony model regresji segmentowej dla zmiennej zaleznej Y = CZAS uwzglednia wplyw nastepujacych zmiennych niezaleznych: ilosc ograniczen X1 = OGRANICZ, ilosc zmiennych wykorzystywanych w funkcji celu X2 = ZMIENNE oraz ilosc watków X3 = WATEK. Ogólna postac równania okreslona zostala nastepujaco: E(Y/x) = b 0 + b 1X1 + b 2 X 2 + b 3 X 3 + b 4 + b 5 X1 + b 6 X 2 + b 7 X3 ( 5.23) Z 5.19 wynika, ze model koncowy przyjal postac: Y = 0,004747 * ZMIENNA + 0,006598 * OGRANICZ + 0,274794 * WATEK − − 0,10319 + 0,14514 * ZMIENNA + 0,015739 * OGRANICZ + 0,192664 * WATEK ( 5.24) Kwadrat wspólczynnika korelacji R2 =0,99758 jest bardzo wysoki, co wskazuje na bardzo dobre dopasowanie wartosci do danych doswiadczalnych. Rys. 5.20 przedstawia zestawienie wartosci obserwowanych podczas doswiadczenia i przewidywanych za pomoca utworzonego modelu. Jak widac wartosci te nie wiele róznia sie od siebie, co potwierdza poprawne dopasowanie modelu matematycznego do badanego zjawiska. 69 WARTOSCI PRZEWIDYWANE 30-30 25-30 25-25 20-20 17-20 10-15 30-30 25-30 25-25 20-20 17-20 10-15 30-30 25-30 25-25 20-20 17-20 10-15 30-30 25-30 25-25 20-20 17-20 10-15 3 2,5 2 1,5 1 0,5 0 WARTOSCI OBSERWOWANE Rys. 5.20 Porównanie wartosci obserwowanych i przewidywanych dla zmiennej CZAS. Stworzone modele daja podstawe do prognozowania wartosci czasów wykonania aplikacji w rzeczywistych srodowiskach równoleglych. Za ich pomoca mozna wskazac odpowiednie wielkosci parametrów wejsciowych, dzieki którym zmienna wyjsciowa przyjmie oczekiwane wartosci. Do budowy modeli wykorzystano tylko kilka (nieliczne) parametrów, które maja wplyw na charakterystyke wydajnosci. Mimo tego faktu odwzorowanie danych otrzymanych w wyniku przeprowadzenia testów, do danych otrzymanych na podstawie modeli jest zadawalajace. Daje to podstawe do prognozowania z dokladnoscia akceptowalna do zastosowania w praktyce. 5.4.3 Efektywnosc aplikacji równoleglej Na Rys. 5.21 przedstawiono efektywnosc zrównoleglenia dla ilosci watków wiekszej lub równej liczbie procesorów. Mozna zauwazyc, iz wartosci efektywnosci sa bliskie zeru, wiec przyklad (dla testowanego rozmiaru problemu) nie jest dobrym kandydatem do zrównoleglenia. Po utworzeniu modelu bedzie mozna bez koniecznosci uruchamiania programu okreslic wartosc efektywnosci przy odpowiednich zmiennych wejsciowych. 0,05 0,04 0,03 0,02 0,01 0 10-15 17-20 4 watki 20-20 25-25 6 watków 25-30 30-30 10 watków Rys. 5.21 Efektywnosc zrównoleglenia dla metody simpleks 70 Analiza rozkladu zmiennych wykazala, iz nie mozna opisac jednym równaniem rozkladu wartosci na Rys. 5.21. Dlatego zdecydowano sie na zastosowania regresji segmentowej, za pomoca której linia regresji bedzie suma dwóch funkcji liniowych. Po okresleniu rodzaju regresji uzytej do tworzenia modelu nalezy przystapic do estymacji wspólczynników, wykorzystujac do tego celu narzedzia komputerowe w postaci systemów zawierajacych moduly z funkcjami statystycznymi. Rys. 5.22 przedstawia podsumowanie regresji dla efektywnosci zrównoleglenia wygenerowane w programie STATISTICA. Rys. 5.22 Podsumowanie regresji - efektywnosc - metoda Simpleks Dla zmiennej zaleznej Y = EFEKTYWNOSC postac równania okreslona zostala nastepujaco (Rys. 5.22): Y = 0,000256 + 0,000402 * ZMIENNA + 0,000776 * OGRANICZ − 0,000758 * WATEK + +0,112193 − 0,008758 * ZMIENNA − 0,000317 * OGRANICZ + 0,12342 * WATEK ( 5.25) Przy weryfikacji modelu okreslony zostal wspólczynnik korelacji R=0,99745. Jest on wysoki i swiadczy o bardzo dobrym dopasowaniu wartosci do obserwowanych podczas doswiadczenia. Takze analiza pozostalych wskazników i statystyk generowanych przez program STATISTICA daje podstawe do przyjecia hipotezy o istotnosci wygenerowanego modelu. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko, wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. Jak wczesniej wspomniano zrównoleglony program nie daje zadawalajacej efektywnosci dla badanej próbki. Za pomoca modelu mozna natomiast okreslic, ze na przyklad przy 100 zmiennych uzytych w funkcji celu, 100 ograniczeniach i przy podziale na 8 71 watków efektywnosc wyniesie 0,304045, a dla 200 zmiennych w funkcji celu, 200 ograniczen i przy podziale na 16 watków efektywnosc zrównoleglenia wzrosnie do 0,495641. Utworzony model moze wskazac najbardziej korzystny wariant uruchomienia ze wzgledu na czas oraz efektywnosc aplikacji. Opis zjawiska za pomoca modelu pomaga w podjeciu decyzji odnosnie warunków i parametrów uruchamiania programu, wskazuje zmienne najbardziej lub najmniej istotnie wplywajace na aplikacje. 5.5 Charakterystyka wydajnosci aplikacji obliczajacej calki 5.5.1 Cel badan Aplikacja odpowiedzialna jest za obliczenie calki podwójnej dla dwóch zmiennych. Calka oznaczona f(x) w granicach od a do b nazywa sie wyrazenie: a? b f (x)dx = F(b) - F(a), gdzie F(x) jest funkcja pierwotna funkcji f(x). Interpretacja geometryczna calki oznaczonej jest pole powierzchni ograniczonej prostymi x=a i x=b, krzywa wykresu y=f(x) oraz prosta y=0 [Gewert99], [Marciniak97]. Model statystyczny jest prototypem rzeczywistosci, moze byc stosowany do opisu efektywnosci systemu. Stworzenie modeli pozwoli na badanie i przewidywanie wplywu pewnych czynników na wydajnosc aplikacji, bez koniecznosci jej uruchamiania. Korzystajac z modeli matematycznych osoba zainteresowana uzywaniem takich systemów moze zorientowac sie, w jakim stopniu podczas korzystania z programów równoleglych zmienia wartosci charakterystyk wydajnosciowych w zaleznosci od posiadanej bazy sprzetowej. W celu utworzenia modeli przetestowano aplikacje na stanowisku czteroprocesorowym dostepnym na WI PS, o nastepujacej architekturze sprzetowej: 4 x P4 XEON 2,6 GHz. Wyniki testów zawarte zostaly w folderze \WYNIKI\ROWNOLEGLY\CALKA na plycie dolaczonej do pracy. Z listy parametrów, okreslonych w metodyce zaprezentowanej w rozdziale 4.2 do budowy modelu wybrano podzial przestrzeni iteracji na okreslona liczbe watków (2, 3, 4, 5 watków) oraz dokladnosc obliczen, czyli ilosc obszarów, na jakie zostaly podzielone przedzialy do calkowania. Pozostale parametry nie zostaly wybrane do budowy modelu ze wzgledu na niemozliwosc jednoznacznego okreslenia ich w warunkach testowania programu. 5.5.2 Model efektywnosci programu Na Rys. 5.23 przedstawiono efektywnosc wykonania programu równoleglego realizujacego opisane zadanie z uwzglednieniem podzialu na okreslona liczbe niezaleznie 72 pracujacych watków. W wyniku analizy mozna stwierdzic, iz podzial przestrzeni iteracji na 5 watków, czyli liczbe wieksza od ilosci procesorów nie przynosi wymiernych korzysci. Zauwazyc mozna takze, ze wraz ze wzrostem rozmiaru problemu, czyli zwiekszeniem dokladnosci obliczen wyraznie wzrasta efektywnosc aplikacji obslugiwanej przez 4 watki. 120 100 2 watki 80 3 watki 60 4 watki 40 5 watków 20 0 0 200 400 Rys. 5.23 Efektywnosc aplikacji liczacej calki Po dodaniu linii trendu okazalo sie, iz uklad zmiennych odwzorowany moze zostac za pomoca funkcji wielomianowej drugiego stopnia. Stad tez do budowy funkcji aproksymujacej posluzono sie regresja wielokrotna, gdzie oprócz wartosci wspólczynników uzyto takze ich kwadraty. W wyniku analizy komputerowej otrzymano podsumowanie regresji jak na Rys. 5.24. Wynika z niego, ze ogólna postac linii regresji (5.26) zostala uproszczona i przyjela postac (5.27). Rys. 5.24 Podsumowanie regresji – zmienna efektywnosc E(Y/x) = b 0 + b 1X1 + b 2 X 2 + b 3 X1 + b 4X 2 2 2 Y = 95,5808246 + 0,03111973 * WATEK * ROZMIAR + -4,462656327 * WATEK 2 ( 5.26) ( 5.27) Z powyzszego modelu mozna wywnioskowac, ze przy opisie efektywnosci wykonania aplikacji najwieksza role odgrywa zmienna zwiazana z liczba watków. Niemniej jednak istotna jest dokladnosc obliczen zawarta w modelu jako iloczyn wraz z iloscia watków. 73 O poprawnym dopasowaniu zmiennym i odwzorowaniu modelu w stosunku do danych rzeczywistych swiadcza wartosci odpowiednich wspólczynników i statystyk. Wartosc bezwzgledna statystyki |t| dla wyrazu wolnego oraz zmiennych zwiazanych w iloscia watków, a takze wspominanego iloczynu dokladnosci obliczen i ilosci watków sa duzo wieksze od wartosci krytycznej, co potwierdza hipoteze o ich istotnosci. Podobnie statystka F=30 jest duzo wieksza od granicznej. Wspólczynnik determinacji R2 =0,86437678 swiadczy o akceptowalnosci dopasowania uzyskanych wartosci do danych doswiadczalnych. Wspólczynnik determinacji informuje, ze przyjety model w ponad 86% wyjasnia zmienna zalezna Y. Wartosc bledu standardowego estymacji równy 10,14, bedacy ocena wielkosci losowych odchylen modelu, interpretowany jest jako przecietne odchylenie wagi obserwowanej w próbie od wagi teoretycznej, czyli wyznaczonej z modelu. Analiza wyników badania statystycznego oraz sformulowanie ocen i wniosków jest przepustka do wdrazania modeli do praktyki. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz celowosci stosowania zaprezentowanej metodyki. Model moze pomóc przy wyborze najbardziej korzystnego dla danej aplikacji srodowiska pracy, bez koniecznosci uruchamiania programu i angazowania komputera równoleglego. 5.6 Modelowanie aplikacji okreslajacej stopien korelacji dwóch obrazów 5.6.1 Przedmiot badan Zadaniem aplikacji jest obliczenie wspólczynników dwuwymiarowej korelacji fazowej i statycznej. Badany program sluzy do okreslania stopnia korelacji dwóch obrazów czarnobialych o rozdzielczosci n x n. Obliczone zostaja dwa wspólczynniki – wspólczynnik korelacji fazowej i wspólczynnik korelacji statycznej. Korelacja okresla stopien zwiazku pomiedzy losowymi zmiennymi. Dla otrzymanego wspólczynnika korelacji statycznej mozna okreslic stopien podobienstwa obrazów (slaby, sredni, silny, bardzo silny). Wspólczynnik korelacji fazowej opiera sie na szybkiej transformacie Fouriera FFT [Gewert99], [Freeman92]. 74 W rozdziale zostana zaprezentowane modele statystyczne, na podstawie których mozliwe bedzie prognozowanie czasu wykonania, przyspieszenia oraz efektywnosci dla aplikacji okreslajacej stopien korelacji dwóch obrazów. Poniewaz dostep do komputerów oraz aplikacji opartych na przetwarzaniu równoleglym jest utrudniony, sa to systemy drogie i rzadko wykorzystywane, korzystanie z modeli regresyjnych moze wskazac zasadnosc, lub nie, wykorzystania takich srodowisk. Na podstawie modelu, bez koniecznosci uruchamiania aplikacji mozna prognozowac wartosci charakterystyki wydajnosciowej w zaleznosci od dostepnych, sprzetowych lub programowych, czynników. Modele z zalozenia maja byc tworzone przez uzytkowników aplikacji, wiec ich parametrami moga byc tylko czynniki mozliwe do zmiany i jednoznacznego okreslenia z poziomu wykonywania programów. W celu zebrania materialu statystycznego potrzebnego do utworzenia modeli przeprowadzono doswiadczenia na komputerze czteroprocesorowym na hoscie jota.wi.ps.pl. Komputer ten charakteryzuje sie nastepujaca architektura 4 x P3 XEON 700 MHz. Wyniki przeprowadzonych testów dostepne sa na plycie dolaczonej do pracy w katalogu \WYNIKI\ROWNOLEGLY\KORELACJA. Przed przystapieniem do testowania aplikacji równoleglej dokonano wyboru zmiennych. Jako zmienne wyjsciowe wybrano czas wykonania programu na komputerze równoleglym, efektywnosc wykorzystania dostepnych procesorów oraz przyspieszenie wykonania programu w stosunku do programu wykonanego sekwencyjnie. Przeanalizowano takze liste zmiennych, które moga istotnie wplywac na modelowanie zachowania sie aplikacji równoleglych podana w metodyce postepowania (rozdzial 4.2) W przypadku omawianej aplikacji wybrano nastepujace czynniki: • ilosc procesorów zaangazowanych do wykonania zadania. Aplikacje testowano przy wykorzystaniu 2, 3 oraz 4 procesorów, a takze przy sekwencyjnym wykonaniu kodu; • wielkosc problemu, czyli ilosc punktów (rozdzielczosci n x n) 5.6.2 Model efektywnosci Efektywnosc wykonania aplikacji przedstawia Rys. 5.25. Wartosci efektywnosci nie sa wysokie, gdyz w badanym przedziale dochodza do 25%. Jednakze wraz ze wzrostem rozmiaru problemu obserwowac mozna zwiekszenie efektywnosci. Do wykresu efektywnosci, dla róznej ilosci procesorów dodano linie trendu i na jej podstawie wybrano postac funkcji aproksymujacej. Z wykorzystaniem pakietu STATISTICA utworzono model regresji wielorakiej stopnia drugiego. Estymacja wspólczynników modelu wykazala, ze efektywnosc zrównoleglenia aplikacji zalezna jest zarówno od ilosci procesorów 75 (zmienna P), które obsluguja program jak i od rozmiaru analizowanego obszaru (zmienna ZM) , czyli model statystyczny opisany zostanie z uzyciem obydwu zmiennych. 25 20 15 10 5 0 2500 2 procesory 3 procesory 4 procesory 7500 12500 17500 22500 27500 32500 37500 Rys. 5.25 Efektywnosc aplikacji okreslajacej stopien korelacji dwóch obrazów Z analizy wykonanej przy uzyciu programu STATISTICA wynika, ze wszystkie wspólczynniki wyestymowanego równania postaci: Y = 154,7201618 - 38,65364412 * P + 0,000504541 * ZM + 3,745178342 * P 2 + -8,12004E - 09 * ZM 2 ( 5.28) sa istotne. Swiadcza o tym wartosci poziomu p, które sa mniejsze od przyjetego poziomu istotnosci α (α=0,05), wartosc statystyki F-Snedecora znacznie przekracza wartosc krytyczna (F0,05,4,10 =2,85). Kwadrat wspólczynnika korelacji wielokrotnej R2 =0,9903 swiadczy o bardzo dobrym dopasowaniu linii regresji do danych doswiadczalnych. O wiarygodnosci i akceptowalnosci zaprezentowanego modelu swiadczy takze rozrzut odchylen (rozklad prawdopodobienstwa reszt) ukladajacy sie wzdluz linii prostej przedstawiony na Rys. 5.26. Rys. 5.26 Zestawienie wartosci oczekiwanych obserwowanych Odpowiednie wartosci wspólczynników i statystyk wygenerowanych dla utworzonego modelu daja podstawe do prognozowania na jego podstawie efektywnosci w rzeczywistym srodowisku wykonywania aplikacji. Wykorzystujac model mozna wskazac, jakie parametry uruchamiania aplikacji sa najbardziej korzystne dla dostepnych warunków sprzetowych. Mimo wykorzystania w modelu tylko dwóch parametrów, dopasowanie wartosci 76 otrzymanych na jego podstawie do wartosci rzeczywistych jest odpowiednie, co swiadczy o poprawnosci modelowania, opracowanego w oparciu o metodyke zaprezentowana w pracy. 5.6.3 Analiza czasu i przyspieszenia Czas wykonania programu dla poszczególnej liczby procesorów z uwzglednieniem wielkosci zadan do wykonania przedstawia Rys. 5.27. 110 2 procesory 90 3 procesory 70 4 proceory 50 2500 12500 22500 32500 Rys. 5.27 Czas wykonania programu dla róznej liczby procesorów Po analizie rozkladu wartosci okazalo sie, ze zarówno czas wykonania programu, jak i przyspieszenie w stosunku do programu sekwencyjnego, opisac mozna korzystajac z modelu regresji liniowej o nastepujacej postaci: Y = b0 + b1 * x 1 + b2 * x 2 ( 5.29) Po okresleniu rodzaju funkcji aproksymujacej nalezy przystapic do kolejnego punktu opisanego w metodyce zaproponowanej w rozdziale 4, a mianowicie do estymacji i weryfikacji wspólczynników modelu z wykorzystaniem srodowisk matematycznych. W przypadku omawianej aplikacji posluzono sie pakietem STATISTICA, która generuje statystyki i wskazniki, na podstawie których mozna zweryfikowac poprawnosc otrzymanych równan matematycznych. Na Rys. 5.28 przedstawiono podsumowanie regresji, gdzie zmienna zalezna jest czas, a badanymi czynnikami majacymi na nia wplyw jest rozmiar obrazu oraz wykorzystanie odpowiedniej liczby procesorów w komputerze. Na podstawie wygenerowanego ekranu opisano model czasu wykonania programu nastepujacej postaci: Y = 1,859075138 + 0,000533702 * ZM - 1,3657 * P ( 5.30) Do modelu wprowadzone zostaly obydwie zmienne: okreslajace stopien dopasowania oraz liczbe procesorów. Poziomy p dla zmiennych sa mniejsze od zadanego poziomu α=0,05, co swiadczy o istotnosci czynników. 77 Wartosc bezwzgledna statystyki |t| dla wyrazu wolnego oraz zmiennych zwiazanych w rozmiarem macierzy sa duzo wieksze od wartosci krytycznej, co potwierdza hipoteze o ich istotnosci. Podobnie statystka F=153,19 jest duzo wieksza od wartosci granicznej. Kwadrat wspólczynnika korelacji R2 =0,96230 jest bliski jednosci i swiadczy o dobrym dopasowaniu wartosci do danych doswiadczalnych. Rys. 5.28 Podsumowanie regresji – zmienna czas Przecietne odchylenie wartosci obserwowanej w próbie od wartosci teoretycznej, czyli wyznaczonej z modelu (na Rys. 5.28 blad std. estymacji) równe jest 1,6, czyli o te wartosc moze róznic sie czas prognozowany od otrzymanego w drodze doswiadczenia. Dla potwierdzenia slusznosci modelu na Rys. 5.29 przedstawiono rozklad wartosci obserwowanych (wedlug doswiadczenia) od przewidywanych (obliczonych z modelu). Punkty ukladaja sie wzdluz linii prostej, co swiadczy o dopasowaniu modelu do danych. Rys. 5.29 Zestawienie wartosci oczekiwanych obserwowanych W wyniku badania przyspieszenia wykonania programu pod katem rozmiaru problemu i wykorzystania okreslonej ilosci procesorów stworzono model, który mozna zapisac nastepujaco: Y = 1,85908 + 0,00053 * ZM − 1,508432 * P ( 5.31) gdzie P okresla liczbe procesorów, a ZM to zmienna zwiazana z dokladnoscia wykonania obliczen. Takze w tym przypadku wspólczynnik R2 =0,9393 potwierdza poprawnosc modelu. 78 Utworzone modele ze wspólczynnikiem dopasowania przekraczajacym wartosc 0,9 opisuja zachowanie sie aplikacji w srodowisku równoleglym Daje to podstawe do zastosowania modelowania i okreslania na podstawie modeli wartosci charakterystyk rzeczywistych systemów równoleglych. Mimo wykorzystania do budowy modelu niewielu wielkosci wejsciowych, zmienna wyjsciowa odwzorowana zostala prawidlowo, co potwierdza zasadnosc postepowania opisanego w metodyce zaprezentowanej w pracy. 5.7 Wykorzystanie modeli do prognozowania wydajnosci aplikacji równoleglej Modele zaprezentowane w pracy sluza prognozowaniu wydajnosci programów równoleglych. Na ich podstawie mozna oszacowac czas wykonania aplikacji, efektywnosc oraz przyspieszenie w zaleznosci od dostepnych czynników sprzetowych i programowych. W rozdziale na podstawie wczesniej omówionych modeli dokonano prognozy parametrów aplikacji dla przykladowych wartosci zmiennych wejsciowych. W punkcie 5.3.2 zaprezentowano modele statystyczne sluzace do opisu czasu wykonania aplikacji odpowiedzialnej za mnozenie macierzy. Jako zmienne istotne dla modelu wybrano rozmiar macierzy oraz podzial na odpowiednia ilosc watków. Podczas tworzenia modelu z równania wyeliminowano parametr wejsciowy zwiazany z iloscia watków, w wyniku czego równanie przyjelo postac (5.11). Tabela 5.2 Prognozy czasu wykonania aplikacji na podstawie modelu 5.11 Y = 122,3993 − 0,218476 * X 2 + 0 ,00012024 * X 22 Rozmiar macierzy Czas wykonania aplikacji równoleglej 2000 166,41 2500 327,71 3000 549,13 W Tabela 5.2 przedstawiono prognozowany czas wykonania programu równoleglego dla przykladowego rozmiaru macierzy. Z powyzszej tabeli widac, jak ksztaltuja sie jego wartosci przy zwiekszajacym sie rozmiarze problemu. W rozdziale 5.1 przedstawiono modele statystyczne na podstawie których mozna szacowac parametry wykonania programu odpowiedzialnego za rozwiazywanie ukladów równan metode eliminacji Gaussa. Model (5.2) sluzy okreslaniu czasu wykonania aplikacji. 79 Na jego podstawie okreslono czas wykonania programu, przedstawiony w Tabela 5.3 dla 1000, 1200, 1400, 1600 1800 oraz 2000 równan. Tabela 5.3 Oszacowany czas wykonania aplikacji odpowiedzialnej za rozwiazywanie ukladów równan Ilosc równan Czas szacowany na podstawie modelu Rzeczywiste wartosci uzyskane w wyniku testowania aplikacji 1000 1200 1400 1600 1800 2000 26,759 48,759 92,759 136,759 180,759 224,759 nie testowano 49,999 86,321 131,66 187,693 nie testowano Na podstawie modelu (5.5) dokonac mozna oceny przyspieszenia wykonania programu w srodowisku równoleglym. Aplikacja uruchamia byla na komputerze czteroprocesorowym. Korzystajac z modelu stwierdzic mozna, ze dla 1000 równan przyspieszenie wynosi 2,98, dla 1600 równan - 2,25, a dla 2000 równan przyspieszenie wynosi 2,39. Analizujac powyzsze wartosci okazuje sie, iz badana aplikacja moze byc wykonana ponad dwa razy szybciej, przy zastosowaniu komputera równoleglego. Nalezy postawic pytanie, czy przyspieszenie takie bedzie satysfakcjonujace w stosunku do nakladów poniesionych na stworzenie srodowiska. Tak wiec, korzystajac z modelu, mozna okreslic celowosc zaangazowania komputera równoleglego w warunkach charakterystycznych dla uzytkownika. Modele zaprezentowane w rozdziale 5.2 sluza do okreslania charakterystyki wydajnosciowej aplikacji generujacej fraktal. Na postawie modeli (5.6) oraz (5.8) mozna okreslic czas wykonania programu w zaleznosci od rozdzielczosci obrazu, ilosci kolorów oraz ilosci zaangazowanych procesorów., Model (5.6) utworzony zostal przy pomocy regresji wielorakiej. Przy wartosciach parametrów wejsciowych: rozdzielczosc 800x600 oraz ilosci kolorów 65536, zadanie przy uzyciu komputera dwuprocesorowego zostanie wykonane w 83,436 jednostek. Ta sama aplikacja na komputerze czteroprocesorowym wykonana zostanie w 41,38039 jednostek. Równanie (5.8) jest modelem regresji segmentowej, a wartosc czasu z tymi samymi wartosciami parametrów wejsciowych wynosi odpowiednio 85,37949 oraz 38,52639. Poniewaz równanie (5.8) cechuje sie wyzszym wskaznikiem dopasowania, wartosci sa bardziej zblizone do danych doswiadczalnych. Podstawiajac do modelu parametry wejsciowe: rozdzielczosc 1024x768 oraz 256 kolorów, z wykorzystaniem komputera dwuprocesorowego, czas wykonania zadania wynosi 0,663, a na komputerze czteroprocesorowym wynosi 0,297. 80 Efektywnosc wykonania aplikacji w zaleznosci od ilosci procesorów oraz podzialu na okreslona ilosc watków prognozowac mozna w oparciu o model (5.9). Utworzony on zostal z wykorzystaniem regresji segmentowej, która opisuje rozklad wartosci za pomoca sumy funkcji liniowych. Podczas estymacji szacowany jest punkt przelamania, dzieki któremu nalezy wybrac odpowiedni czlon modelu. Dla przedstawionego modelu punkt przelamania wynosi 0,684. Wartosci efektywnosci mniejsze od punktu przelamania opisane sa przy pomocy pierwszego czlonu równania, a wartosci wieksze niz 0,684 opisuje drugi czlon modelu. Prognozowanie na podstawie modelu (5.9) przedstawia Tabela 5.4. Wartosci odpowiednie dla modelowania wyróznione zostaly szarym tlem. Tabela 5.4 Korzystanie z modelu efektywnosci dla aplikacji generujacej fraktal 0,289947 0,245823 0,157575 -0,01892 0,519193 0,475069 0,386821 0,210325 ilosc ilosc procesorów watków 0,975949 2 0,974331 2 0,971095 2 0,964623 2 1,717691 4 1,716073 4 1,712837 4 1,706365 4 2 4 8 16 2 4 8 16 W rozdziale 5.4 przedstawiono modele charakteryzujace program oparty na metodzie simplex. Jak wczesniej wspomniano zrównoleglony program nie daje zadawalajacej efektywnosci dla badanej próbki. Za pomoca modelu (2.25) mozna natomiast okreslic, ze przy 100 zmiennych uzytych w funkcji celu, 100 ograniczeniach i przy podziale na 8 watków efektywnosc wyniesie 0,304045, a dla 200 zmiennych w funkcji celu, 200 ograniczen i przy podziale na 16 watków, efektywnosc zrównoleglenia wzrosnie do 0,495641. Efektywnosc aplikacji sluzacej do liczenia calki opisuje model (5.27). Jako zmienne wejsciowe w modelu uwzgledniono ilosc przedzialów calkowania oraz podzial a okreslona ilosc watków niezaleznie wykonujacych kod. Podstawiajac do modelu odpowiednie pary parametrów uzyskuje sie wartosc wyjsciowa. Zestawienie wartosci prognozowanych przedstawia Tabela 5.5. Tabela 5.5 Prognozowanie wartosci efektywnosci dla aplikacji liczacej calke Ilosc watków Przedzialy efektywnosc 81 calkowania 2 4 2 3 4 2 3 4 5 2 3 4 5 50 50 100 100 100 200 200 200 200 400 400 400 400 80,84217 30,40227 83,95415 64,75284 36,6262 90,17809 74,08876 49,07411 15,13415 102,626 92,76059 73,96989 46,25388 Na podstawie Tabela 5.5 mozna wyciagnac wnioski odnosnie parametrów uruchomienia aplikacji w celu efektywnego wykorzystania komputera równoleglego. Zwiekszenie ilosci watków zaangazowanych do wykonania zadania pogarsza efektywnosc wykonania aplikacji. Ma to zwiazek z synchronizacja obliczen. Dysponujac modelem mozna wybrac wariant zastosowania parametrów wejsciowych dajacy najbardziej korzystna wielkosc szacowanej wartosci. W rozdziale 5.6 przedstawiono modele charakteryzujace aplikacje odpowiedzialna za okreslanie stopnia korelacji dwóch obrazów. Jako parametry wejsciowe wybrano ilosc procesorów oraz wielkosc zadania, czyli rozdzielczosc obrazu. Na podstawie modelu (5.28) wyliczyc mozna, iz efektywnosc aplikacji 50x50 uruchamianej na dwóch procesorach siega 93%, natomiast przy wykorzystaniu czterech procesorów wynosi 61%. Dla rozmiaru problemu 200x200 efektywnosc przy dwóch procesorach wynosi 99%, przy trzech 79%, a przy czterech procesorach spada do 67%. Przyszly uzytkownik aplikacji moze wiec odpowiedziec na pytanie, czy wskazniki wykorzystania aplikacji sa akceptowalne. Za pomoca modelu (5.30) prognozowac mozna czas wykonania aplikacji w zaleznosci od wyzej wymienionych czynników. Przy rozmiarze 200x200 na maszynie dwuprocesorowej czas wynosi 20,47 s, na maszynie trzyprocesorowej 19,11, a dla czterech procesorów 17,74. Wykorzystujac modele statystyczne mozna szacowac wartosci wydajnosci aplikacji równoleglych. Mozna wybierac najbardziej korzystny wariant uruchomienia, a takze zorientowac sie, czy przy posiadanej bazie sprzetowej zastosowanie aplikacji równoleglych jest oplacalne pod wzgledem wykorzystania zasobów. 82 Nalezy zwrócic uwage, iz program STATISTICA wyswietla wartosci parametrów modelu z szescioma miejscami po przecinku. Rzeczywista wartosc ma czesto wieksza dokladnosc. Dlatego celowym jest przekopiowanie wartosci otrzymanych w programie STATISTICA do srodowisk matematycznych, lub do programu EXCEL, a nastepnie podstawianie konkretnych wartosci zmiennych wejsciowych. 5.8 Podsumowanie W rozdziale 5, na podstawie metodyki przedstawionej w punkcie 4, opracowane zostaly modele okreslajace czas wykonania programów, ich przyspieszenie oraz efektywnosc dla przykladowych zadan, czyli charakteryzujace aplikacje równolegle. Doswiadczenia zostaly tak dobrane, aby wykazac zasadnosc tworzenia matematycznego opisu badan w postaci modelu. Pokazano przyklady wskazujace zasadnosc stosowania maszyn równoleglych, a takze przypadki, kiedy zaangazowanie ich nie jest celowym. Rozdzial 5.1 zawiera model opisujacy aplikacje obliczajaca uklady równan metoda eliminacji Gaussa. Badaniu poddano wplyw ilosci ukladów równan ilosci i rozmiaru watków, a takze ilosci wykorzystywanych procesorów na czas wykonania programu, przyspieszenie oraz efektywnosc zrównoleglenia. W rozdziale 5.2 opisano zmienne istotnie wplywajace na efektywnosc i czas generacji fraktala oraz utworzono odpowiednie modele dla aplikacji. Czynnikami uwzglednionymi w modelach byly: liczba procesorów w komputerze, rozmiar okna zespolonego, ilosc kolorów, ilosc watków równolegle wykonujacych petle oraz wielkosc porcji do wykonania (parametr chunksize). Model utworzony i przeanalizowany w rozdziale 5.3 charakteryzuje zrównoleglony program mnozenia macierzy. Rozwaza wplyw rozmiaru macierzy oraz podzialu na okreslona ilosc niezaleznie pracujacych watków na parametry wykonania programu. Model wykorzystania metody simpleks do rozwiazywania zadan programowania liniowego z uwzglednieniem wplywu liczby zmiennych opisujacych funkcje celu, liczby ograniczen, oraz ilosci watków zawiera rozdzial 5.4. Utworzono takze modele dla aplikacji liczacej podwójna calke (rozdzial 5.5) z uwzglednieniem podzialu przestrzeni iteracji na okreslona liczbe watków oraz dokladnosc obliczen. Rozdzial 5.6 opisuje model dla aplikacji generujacej wspólczynniki dwuwymiarowej korelacji fazowej i statycznej sluzace do okreslenia stopnia korelacji dwóch obrazów, przy 83 uwzglednieniu ilosci procesorów zaangazowanych do wykonania zadania oraz wielkosci problemu, czyli ilosci punktów. W rozdziale 5.7 przedstawiono prognozowanie wartosci na podstawie zaprezentowanych modeli. Przy uwzglednieniu róznych kombinacji czynników wejsciowych modelu szacowano parametry charakterystyki wydajnosciowej aplikacji. Modele dla róznego rodzaju zadan, ich analiza, weryfikacja dokonane zostaly w oparciu o metodyke postepowania zaprezentowana w rozdziale 4. Zaprezentowane w rozdziale 5 modele wskazuja, które z parametrów uruchamiania w najbardziej znaczacy sposób wplywaja na wydajnosc aplikacji. Za pomoca modelu mozna wybrac najbardziej korzystny wariant uruchomienia ze wzgledu na czas, przyspieszenie, efektywnosc lub inny badany czynnik. Majac gotowy model mozliwym jest, bez koniecznosci uruchamiania aplikacji, okreslenie, poczawszy od jakiej wielkosci parametru zrównoleglenie jest celowym. Dzieki modelowi statystycznemu traktowanemu jako opis zachowania sie programu, mozna spowodowac oszczednosc czasu, kosztów, a takze obciazenia komputerów równoleglych. Przy uzyciu modelu mozna okreslic najbardziej korzystne dla danej aplikacji srodowisko pracy. Pomimo wykorzystania do budowy modeli tylko kilku z czynników charakteryzujacych aplikacje, wspólczynniki dopasowania modeli do danych empirycznych sa bardzo wysokie, co potwierdza slusznosc modelowania na podstawie zaprezentowanej metodyki. Rezygnacja z ujecia w modelu wszystkich czynników, powoduje, iz modele moga byc tworzone przez uzytkowników aplikacji, którzy nie maja mozliwosci wplywu na wszystkie parametry sprzetowe i programowe aplikacji. Dzieki modelom zaprezentowanym w rozdziale 5 oraz ich weryfikacji, potwierdzona zostala slusznosc i poprawnosc, zaprezentowanej w pracy metodyki postepowania przy okreslaniu modeli statystycznych charakteryzujacych aplikacje równolegle. Tym samym udowodniono teze postawiona w pracy, iz mozliwe jest opracowanie metod tworzenia modeli statystycznych, które opisywac beda czas wykonania programu, przyspieszenie oraz efektywnosc aplikacji równoleglych, w zaleznosci od parametrów sprzetowych i programowych z dokladnoscia prognozowania odpowiednia do zastosowania w praktyce. 84 6 Metodyka postepowania przy budowie modeli statystycznych dla potrzeb srodowiska rozproszonego W tworzonych ostatnio systemach komputerowych zauwazalna jest tendencja do rozdzielania obliczen miedzy wiele procesorów. W porównaniu ze scisle powiazanymi systemami, procesory te nie dziela pamieci ani zegara. Kazdy procesor ma wlasna pamiec lokalna. Procesory komunikuja sie za pomoca róznych linii komunikacyjnych, na przyklad szybkich szyn danych lub linii telefonicznych. Systemy takie nazywaja sie luzno powiazanymi (ang. loosely coupled) lub rozproszonymi (ang. distributed systems) [Cormen94]. W rozdziale 4 przedstawiono metodyke postepowania przy budowie modeli statystycznych opisujacych efektywnosc równoleglego wykonywania programu. Celem biezacego rozdzialu jest opisanie sposobu budowy modeli statystycznych dla potrzeb srodowiska rozproszonego. 6.1 Zalozenia podstawowe Ogólny schemat budowy modelu jest analogiczny jak w przypadku systemów równoleglych i sklada sie z nastepujacych kroków: - okreslenie celu badan modelowych, - specyfikacja elementów systemu i jego otoczenia, - wybór klasy modelu, - estymacja wspólczynników i sprawdzenie poprawnosci modelu, - korzystanie z modelu. Przed przystapieniem do budowy modelu nalezy okreslic cel badan modelowych. Model statyczny powinien sluzyc prognozowaniu wartosci charakteryzujacych wydajnosc aplikacji w zaleznosci od parametrów, które moga ulegac zmianie z poziomu uzytkownika aplikacji. Aby utworzyc model musimy dysponowac informacjami statystycznymi, uzyskanymi w wyniku testowania programu. Dostarczeniem odpowiedniej ilosci pomiarów powinien zajac sie producent oprogramowania. Im wiecej testów zostanie przeprowadzonych tym utworzone modele beda mogly lepiej opisac srodowisko pracy programów. 85 Pomocnym przy tworzeniu modeli statystycznych charakteryzujacych zachowanie sie aplikacji moga okazac sie zestawy benchmarków. Benchmarki to zestawy pomiarów, sporzadzone dzieki specjalnemu oprogramowaniu, które zawieraja wyniki testów charakteryzujacych srodowisko uruchamiania programów [Patterson96]. Nalezy zastanowic sie nad lista zmiennych zaleznych oraz niezaleznych, czyli parametrów za pomoca których zostanie opisana charakterystyka wydajnosciowa systemu rozproszonego. Nalezy wyszczególnic wszystkie zmienne, które moga miec wplyw na jakosc modelowania. W przypadku aplikacji równoleglej jako zmienne istotne przy budowie modelu rozwazano miedzy innymi ilosc procesorów, podzial na okreslona ilosc i wielkosc watków, sposób dostepu do zasobów wspóldzielonych oraz cechy zadan wykonywanych przez aplikacje. Dla aplikacji rozproszonych nalezy rozstrzygnac wplyw takich czynników jak ilosc komputerów w systemie, moc obliczeniowa jednostek, wplyw homogenicznosci lub heterogenicznosci wspólpracujacych komputerów, liczbe i rozmiar zadan, lokalnosc programu, skalowalnosc programu, ilosc przesylanych danych, przepustowosc sieci komputerowej. Osoba tworzaca model podobnie jak w przypadku systemów równoleglych bedzie traktowala aplikacje jako „czarna skrzynke”, wiec nie bedzie rozstrzygac problemu budowy algorytmów, gdyz ich wybór powinien byc dokonany w fazie projektowania systemów. W modelu pominiete beda takze pewne czynniki, których nie mozna jednoznacznie przedstawic w równaniu i wyrazic ich w sposób liczbowy. Model ma byc przyblizonym odtworzeniem najwazniejszych cech badanego obiektu. Powinien pozwolic na okreslenie charakterystyki pracy systemu bez koniecznosci uruchamiania aplikacji. Przedstawiony sposób postepowania udzieli odpowiedzi na pytanie, jakie czynniki powinny byc uwzglednione w modelach okreslajacych czas wykonania, przyspieszenie wzgledem programu uruchamianego na pojedynczym komputerze oraz efektywnosci pracy aplikacji w zaleznosci od dostepnych czynników programowych i sprzetowych. 6.2 Glównie czynniki majace wplyw na aplikacje rozproszone Przy dostosowaniu metodyki przytoczonej w rozdziale 4 do potrzeb systemów rozproszonych nalezy uzupelnic etap specyfikacji elementów systemu i jego otoczenia o czynniki charakterystyczne dla tych srodowisk, które moga miec istotny wplyw na jakosc modelowania i poprawne odzwierciedlenie badanych wlasnosci. 86 Do najistotniejszych czynników mogacych charakteryzowac zachowanie sie aplikacji rozproszonej zaliczyc mozna: - ilosc komputerów w sieci zaangazowanych do wykonania zadania; - moc obliczeniowa jednostek, ze szczególnym uwzglednieniem ilosci zainstalowanej pamieci RAM; - liczbe i rozmiar zadan wykonywanych poszczególnych stanowiskach; - lokalnosc programu; - ilosc przesylanych danych; - wplyw homogenicznosci lub heterogenicznosci wspólpracujacych komputerów; - przepustowosc sieci komputerowej; - cechy zadan wykonywanych przez aplikacje, czyli przeznaczenie programu, zakres danych wejsciowych oraz inne elementy charakterystyczne dla danego zadania. Pewne czynniki nie znajda swojego odzwierciedlenia w modelu matematycznym opisujacym wydajnosc aplikacji rozproszonej. Glównym powodem nie rozpatrywania ich jest niemozliwosc dokladnego okreslenia oraz przedstawienia ich w sposób liczbowy. Utworzone modele beda sluszne w srodowiskach utworzonych przez te czynniki Do czynników tych mozna zaliczyc miedzy innymi: - system operacyjny, - topologie polaczen sieciowych, - protokól transmisji danych. 6.2.1 Ilosc komputerów polaczonych w siec W przypadku komputerów równoleglych istotnym czynnikiem opisujacym charakterystyke wydajnosciowa aplikacji byla ilosc procesorów. W przypadku systemów rozproszonych znaczaco na badany obiekt wplywa ilosc komputerów w sieci. Wiadomym jest, iz przy odpowiednim przydziale zadan do poszczególnych komputerów mozna uzyskac znaczne przyspieszenie wykonania programu. Jednak ilosc zaangazowanych komputerów powinna byc adekwatna do czasochlonnosci i ilosci zadan do wykonania w programie. Idea sieci komputerowej to zapewnienie dostepu do jak najwiekszej ilosci danych przez jak najwieksza liczbe uzytkowników. Polaczenie komputerów powoduje zwiekszenie zasobów i mozliwosc korzystania z nich przez wielu uzytkowników jednoczesnie [Comer99]. 87 6.2.2 Moc obliczeniowa komputerów Na efektownosc wykonywanych obliczen wplyw beda mialy nie tylko modele i parametry procesora, ale takze rodzaje i pojemnosci pamieci. Odpowiednio dobrana architektura sprzetowa, gwarantujaca szybki dostep do wspólnych zasobów znacznie poprawia efektywnosc wykonania aplikacji. Model statystyczny mozna utworzyc w oparciu o konkretna architekture sprzetowa, wiec jako zmienne niezalezne nie beda wystepowaly parametry zwiazane z wydajnoscia sprzetu. Modele tworzone moga byc takze w oparciu o takie parametry jak: ilosc pamieci RAM, moc procesora, taktowanie zegara które beda zmiennymi i wystapia w modelu. Procesory moga sie róznic miedzy soba szybkoscia taktowania. Jeden megaherc (MHz) to milion cykli pracy procesora, czyli elementarnych operacji na sekunde. Przy porównywaniu dwóch procesorów o jednakowej konstrukcji mozna przyjac, ze szybkosc procesora jest proporcjonalna do szybkosci taktowania. Zwykle uwaza sie, ze szybszy procesor jest lepszy. Jest to prawda jesli dysponuje sie nieograniczonym budzetem, jednak w przypadku prawdziwych systemów powinno sie minimalizowac koszty. Dla problemów ograniczonych przez wejscie/wyjscie istnieje zasada zwana prawem Eadline'a-Dedkova, wedlug której z dwóch komputerów równoleglych o tej samym zsumowanym wskazniku wydajnosci CPU lepsza wydajnosc dla aplikacji z dominujacymi operacjami wejscia/wyjscia bedzie mial ten, który posiada wolniejsze procesory [Smith88]. Jako parametr modelu statystycznego mozna ujac ilosc dostepnej pamieci operacyjnej. 6.2.3 Liczba i rozmiar danych Program podlega podzieleniu na obliczen na fragmenty, z których kazdy jest wykonywany na oddzielnym komputerze. Po wykonaniu ciagu operacji, wchodzacych w sklad kazdej z czesci, nastepuje faza synchronizacji, w której wyniki pracy poszczególnych fragmentów laczone sa w rezultat koncowy. Waznym elementem, który moze wplywac na wydajnosc aplikacji jest ilosc przesylanych danych, czyli wielkosc paczki. 6.2.4 Homogenicznosc a heterogenicznosc srodowiska W badaniach nalezy rozstrzygnac z jakich komputerów sklada sie srodowisko rozproszone. Czy komputery sa porównywalnej klasy, czy tez siec sklada sie z komputerach o róznej mocy obliczeniowej. W przypadku heterogenicznego srodowiska rozproszonego moze zdarzyc sie iz czasy synchronizacji zadan wykonywanych na róznych wezlach sa bardzo duze, 88 co zwiazane jest z róznym czasem potrzebnym na wykonanie podobnej porcji zadan na komputerach róznej klasy. 6.2.5 Przepustowosc sieci Sposób dostepu do wspólnych zasobów odgrywa istotna role dla czasu wykonania, czy przyspieszenia aplikacji. Srodowiska rozproszone cechuja sie dostepnoscia i minimalizacja kosztów. Pomiedzy poszczególnymi komputerami w sieci istnieje mozliwosc wymiany informacji oraz dzielenie jej zasobów. Transmisja danych pomiedzy wszystkimi urzadzeniami odbywa sie przy wykorzystaniu przewodów lub systemów zapewniajacych transmisje bezprzewodowa (podczerwien, fale radiowe, mikrofale, transmisja satelitarna). Przepustowosc, czyli wydajnosc okresla ile danych mozemy w sieci przekazac w jednostce czasu. Jednostka jest liczba bitów na sekunde lub liczba bajtów na sekunde. 6.2.6 Lokalnosc programu Do wykonania aplikacji w srodowisku rozproszonym wskazane jest uzycie wiekszej ilosci komputerów. W takich przypadkach ogromna role odgrywa lokalnosc programu. Odpowiedni przydzial zadan do poszczególnych komputerów wyeliminowac moze zbyt duze czasy przesylu danych miedzy stanowiskami, wiec znaczaco wplywac moze na efektywnosc wykonania kodu. Lokalnosc czasowa [Bielecki02] jest cecha programów komputerowych, która polega na tym, ze jezeli nastapilo odwolanie do pewnego elementu programu, to istnieje duze prawdopodobienstwo, ze wkrótce nastapi nastepne odwolanie do tego samego elementu. Lokalnosc przestrzenna [Bielecki02] definiowana jako cecha programów komputerowych polegajaca na tym, ze jesli nastapilo odwolanie do pewnego elementu programu, to istnieje duze prawdopodobienstwo, ze niedlugo nastapi odwolanie do elementu sasiedniego (sekwencje instrukcji, liniowe struktury danych). 6.2.7 Cechy indywidualne aplikacji rozproszonych Po zbadaniu wplywu cech sprzetowych charakteryzujacych srodowiska rozproszone, nalezy przeanalizowac wplyw indywidualnych parametrów wykonywanych aplikacji. Cechy te zaleza w glównej mierze od przeznaczenia programu. Moga nimi byc na przyklad: rzad macierzy wykorzystywanych do obliczen, dokladnosc obliczen, ilosc kolorów uzytych do generacji obrazu, rozdzielczosc wyswietlania grafiki. 89 Parametry wewnetrzne (mozliwe do zmiany dla uzytkowników aplikacji) wraz z cechami sprzetowymi srodowisk rozproszonych, uzyte do generacji modeli, daja pelny obraz ukladu zmiennej objasnianej. Do budowy modelu nalezy uzyc tylko tych zmiennych, które osoba tworzaca model uzna za najbardziej istotne w danym zastosowaniu. Pominiecie niektórych z cech nie powinno wplywac na obraz zmiennej wyjsciowej podczas modelowania. W kolejnych etapach modelowania, przy estymacji wspólczynników równania, zmienne, które nie oddzialuja w sposób istotny na badane zjawisko zostana usuniete z modelu. Jednak zbyt duza liczba parametrów wykorzystywanych do estymacji zmniejsza przejrzystosc modelu, a czasami uniemozliwia poprawne jego utworzenie. Pewne czynniki nie beda zawarte w modelach, jednak modelowanie bedzie odbywalo sie w ich otoczeniu. Mowa tu o rozproszonych srodowiskach sieciowych, topologii polaczen sieciowych, protokolach transmisji danych, czy skalowalnosci systemu okreslanej jako jego zdolnosc elastycznego dopasowania sie do zwiekszonej liczby procesorów. Nalezy tak dobierac parametry uruchamiania programu, aby nie stracic na skalowalnosci aplikacji. 6.3 Analiza i weryfikacja modeli Analiza i weryfikacja modeli tozsama jest ze sposobem postepowania opisanym w rozdziale 4. Po zbadaniu rozkladu zmiennych nalezy dokonac wyboru klasy modelu (rozdzial 4.3). Badania tego dokonac mozna na podstawie analizy rozkladu zmiennych poprzez okreslanie linii trendu, badz przy pomocy narzedzi komputerowych. Do najczesciej wystepujacych postaci linii regresji zaliczyc mozna: liniowa, potegowa, wykladnicza, logarytmiczna lub zdefiniowana przez uzytkownika w celu wlasciwego odwzorowania rzeczywistosci. Mozna takze skorzystac z regresji segmentowej, która badana zmienna wyjsciowa opisuje z wykorzystaniem sumy funkcji liniowych. Nastepnie za pomoca narzedzi komputerowych przystapic do estymacji wspólczynników modelu (rozdzial 2.3 oraz 4.4). Estymacja to szacowanie wartosci parametrów lub postaci funkcji rozkladu prawdopodobienstwa w populacji generalnej na podstawie wyników próby. Im wiecej wskazników zostanie do tego celu uzytych tym jest wieksza pewnosc, ze dokonano slusznej analizy, a wartosci uzyskane z modelu beda wiernie odzwierciedlaly dane rzeczywiste. Estymacja parametrów modelu statystycznego powinna odbywac sie z wykorzystaniem narzedzi komputerowych. Istnieje wiele srodowisk matematycznych oferujacych moduly statystyki matematycznej. Do tworzenia modeli proponuje sie korzystanie z pakietu 90 STATISTICA, który generuje wartosci parametrów modelu, a takze szereg wskazników i statystyk pozwalajacych zweryfikowac utworzone równania. Po uzyskaniu postaci modelu statystycznego opisujacego zachowanie sie aplikacji nalezy przystapic do weryfikacji hipotez statystycznych, czyli sprawdzenia ich poprawnosci. Weryfikacja hipotez statystycznych to sprawdzanie pewnych zalozen wysunietych w odniesieniu do parametrów lub rozkladów populacji generalnej na podstawie wyników próby [Oktaba86]. Rozstrzygniecie miedzy przynajmniej dwiema konkurencyjnymi hipotezami dotyczacymi zjawisk dokonywane jest w oparciu o hipotezy statystyczne. W problemie dwudecyzyjnym weryfikacja hipotezy zerowej H0 polega na wyborze odpowiedniej zmiennej losowej, tzw. testu, obliczeniu jego wartosci obserwowanej oraz sprawdzeniu, do jakiego obszaru wartosc ta nalezy. Obszar wartosci, jakie test moze przyjmowac dzieli sie na dwa rozlaczne podzbiory: obszar krytyczny i obszar akceptacji, wyznaczane przy ustalonym z góry poziomie istotnosci α. Gdy wartosc obserwowana nalezy do obszaru krytycznego hipoteza H0 jest odrzucana, jednoczesnie akceptowana jest hipoteza alternatywna H1 [Stanisz98]. Parametrami, na podstawie których okreslic mozna poprawnosc wyestymowanych wspólczynników modelu oraz zweryfikowac slusznosc modelowania, generowanymi przez program STATISTICA sa miedzy innymi: • Blad st. BETA jest to wartosc bledu szacunku dla (parametru) wspólczynnika regresji, gdyby zostala ona wprowadzona do równania regresji jako zmienna niezalezna. • Poziom p nazywany jest poziomem istotnosci statystycznej dla wspólczynników regresji. • Wspólczynnik korelacji wielorakiej wyjasnia, w jakim zwiazku pozostaje zmienna objasniana z pozostalymi zmiennymi (objasniajacymi) w modelu. • Wspólczynniki determinacji, wskazuje jak model wyjasnia ksztaltowanie sie zmiennej objasnianej. O dobrym dopasowaniu modelu do danych empirycznych moga swiadczyc ponadto wykresy rozkladu wartosci przewidywanych oraz obserwowanych. Punkty wyznaczone z modelu oraz wyznaczone droga doswiadczalna powinny ukladac sie wzdluz linii prostej. Pozostale miary oceny poprawnosci wygenerowanych modeli zawiera rozdzial 2.4. 91 Po utworzeniu modelu, jego weryfikacji, eliminacji bledów mozna przystapic do prognozowania zachowania sie aplikacji. Utworzony model moze wskazac najbardziej korzystny wariant uruchomienia ze wzgledu na czas, przyspieszenie, efektywnosc lub inny badany czynnik. Opis zjawiska za pomoca modelu pomaga w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji rozproszonej, wskazuje zmienne najbardziej lub najmniej istotnie wplywajace na aplikacje. Róznica miedzy metodyka postepowania dla sytemu równoleglego oraz rozproszonego dotyczy glównie specyfikacji elementów systemu i jego otoczenia. W przypadku systemów rozproszonych wieksza jest liczba czynników, które maja wplyw na postac modelu. Wyróznic mozna takze wiecej cech, których nie da sie przedstawic w sposób liczbowy i umiescic jako parametry modelu, tylko modele tworzone sa dla konkretnych ukladów tych czynników. Mowa tu o takich czynnikach jak: rozproszone srodowisko operacyjne, protokoly transmisji danych, ustalenie priorytetów wykonania programu itp. 6.4 Podsumowanie W rozdziale 6 przedstawiono metodyke postepowania przy budowie modeli statystycznych opisujacych efektywnosc wykonywania programu w srodowisku rozproszonym, która jest wynikiem pracy wlasnej. Pierwszym krokiem (podobnie jak dla systemów równoleglych) jest okreslenie celu badan modelowych. Osoba tworzaca model powinna zastanowic sie, czemu maja sluzyc tworzone modele. Model powinien prognozowac wartosci wydajnosci rozproszonego, czyli czas wykonania, przyspieszenie, efektywnosc. systemu Stworzenie modeli pozwoli na badanie i przewidywanie wplywu pewnych czynników na wydajnosc aplikacji, bez koniecznosci jej uruchamiania. Korzystajac z modeli, osoba zainteresowana rozproszeniem wykonywania obliczen na kilka komputerów, moze zorientowac sie, w jakim stopniu zmianie ulegna wartosci charakterystyk wydajnosciowych, w przypadku zastosowania róznych architektur srodowisk rozproszonych. Aby utworzyc model nalezy dysponowac informacjami statystycznymi. Dostarczeniem odpowiedniej ilosci pomiarów powinien zajac sie producent oprogramowania, badz pozyskane powinny byc one z benchmarków dla systemów rozproszonych. 92 Drugi etap zaproponowanej metodyki dotyczy wyboru zmiennych wykorzystywanych do budowy modelu (rozdzial 6.2). Osoba tworzaca model (zgodnie z zalozeniami dla systemów równoleglych) bedzie traktowala aplikacje jako „czarna skrzynke”, wiec nie bedzie rozstrzygac problemu budowy algorytmów, gdyz ich wybór powinien byc dokonany w fazie projektowania systemów. W modelu pominiete beda takze pewne czynniki, których nie mozna jednoznacznie przedstawic w modelu i wyrazic ich w sposób liczbowy. Do najistotniejszych czynników mogacych charakteryzowac zachowanie sie aplikacji rozproszonych zaliczyc mozna: ilosc komputerów w sieci zaangazowanych do wykonania zadania, moc obliczeniowa jednostek, ze szczególnym uwzglednieniem ilosci zainstalowanej pamieci RAM, liczbe i rozmiar zadan wykonywanych poszczególnych stanowiskach, lokalnosc programu, ilosc przesylanych danych, wplyw homogenicznosci lub heterogenicznosci wspólpracujacych komputerów, przepustowosc sieci komputerowej oraz cechy zadan wykonywanych przez aplikacje, czyli przeznaczenie programu, zakres danych wejsciowych oraz inne elementy charakterystyczne dla danego programu. Pewne czynniki nie znajda swojego odzwierciedlenia w modelu matematycznym opisujacym wydajnosc aplikacji rozproszonej. Glównym powodem nie rozpatrywania ich w modelu jest niemozliwosc dokladnego okreslenia oraz przedstawienia ich w sposób liczbowy. Utworzone modele beda sluszne w srodowiskach utworzonych przez czynniki takie jak system operacyjny, topologie polaczen sieciowych, protokoly transmisji danych. Analiza i weryfikacja modeli tozsama jest ze sposobem postepowania dla systemów równoleglych. Po zbadaniu rozkladu zmiennych nalezy dokonac wyboru klasy modelu. Badania tego dokonac mozna na podstawie analizy rozkladu zmiennych poprzez okreslanie linii trendu. Nastepnie za pomoca narzedzi komputerowych nalezy przystapic do estymacji wspólczynników. Estymacja to szacowanie wartosci parametrów lub postaci funkcji rozkladu prawdopodobienstwa w populacji generowanej na podstawie wyników próby. Po uzyskaniu postaci modelu statystycznego opisujacego zachowanie sie aplikacji nalezy przystapic do weryfikacji hipotez statystycznych, czyli sprawdzenia ich poprawnosci i okreslenia, czy model moze byc zastosowany do prognozowania wydajnosci aplikacji rozproszonych, z dokladnoscia akceptowalna do zastosowania w praktyce. Róznica miedzy metodyka postepowania dla sytemu równoleglego oraz rozproszonego dotyczy glównie specyfikacji elementów systemu i jego otoczenia. W przypadku systemów rozproszonych wieksza jest liczba czynników, które maja wplyw na postac modelu. Wyróznic mozna takze wiecej cech, których nie da sie przedstawic w sposób 93 liczbowy i umiescic jako parametry modelu, tylko modele tworzone sa dla konkretnych ukladów tych czynników. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko, wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. Utworzony model moze wskazac najbardziej korzystny wariant uruchomienia ze wzgledu na czas, przyspieszenie, efektywnosc lub inny badany czynnik. Opis zjawiska za pomoca modelu pomaga w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji rozproszonej, wskazuje zmienne najbardziej lub najmniej istotnie wplywajace na aplikacje. 94 7 Zastosowanie opracowanej metodyki do prognozowania wydajnosci aplikacji wykonywanych w srodowiskach rozproszonych 7.1 Badanie wydajnosci aplikacji rozwiazujacej uklady równan rekurencyjnych Jako przyklad aplikacji dzialajacej w srodowisku rozproszonym wybrano program rozwiazujacy uklady n równan rekurencyjnych rzedu m. Funkcja lub typ danych sa rekurencyjne, jezeli w ich definicji nastepuje odwolanie do nich samych. Dla takiego problemu stworzono modele statystyczne opisujace efektywnosc, przyspieszenie oraz czas wykonania programu w srodowisku rozproszonym. Przedstawione modele statystyczne sa wykonane przy wykorzystaniu metodyki zaproponowanej w rozdziale 6. Pierwszym krokiem jest okreslenie celu badan modelowych, czyli okreslenie zakresu stosowalnosci modelu. Model powinien prognozowac wartosci wydajnosci systemu rozproszonego, czyli czas wykonania, przyspieszenie, efektywnosc. Stworzenie modeli pozwoli na badanie i przewidywanie wplywu pewnych czynników na wydajnosc aplikacji, bez koniecznosci jej uruchamiania. Korzystajac z modeli matematycznych osoba zainteresowana rozproszeniem wykonywania obliczen na kilka komputerów moze zorientowac sie w jakim stopniu zmianie ulegna wartosci charakterystyk wydajnosciowych w zaleznosci od posiadanej bazy sprzetowej. Aby utworzyc model nalezy dysponowac informacjami statystycznymi, uzyskanymi w wyniku testowania programu. W przypadku omawianej aplikacji dane zostaly udostepnione przez pracowników Wydzialu Informatyki UMCS w ramach pracy [Stpiczynski92]. Otrzymane czasy zawarte sa na plycie dolaczonej do pracy w katalogu \WYNIKI\ROZPROSZONY\ROWNANIA. 7.1.1 Zakres danych do analizy W rozdziale zostana utworzone modele czasu wykonania aplikacji w srodowisku rozproszonym, efektywnosci pracy srodowiska oraz przyspieszenia wykonania kodu w stosunku do programu wykonywanego na jednym komputerze. 95 Podczas wyboru zmiennych wejsciowych, czyli takich, które moga miec istotny wplyw na parametry wydajnosci przeanalizowano cechy podane w punkcie drugim metodyki (rozdzial 6.2). Wybierajac zmienne nalezy miec, z poziomu uzytkownika, mozliwosc wplywu na nie. Powinny byc one takze mozliwe do jednoznacznego okreslenia. Dla danego przypadku wybrano nastepujacy zestaw zmiennych: - liczbe komputerów zaangazowanych do wykonania programu – P. Program testowano na 4, 8 oraz 15 komputerach PIII 666 MHz posiadajacych 256 RAM, dzialajacych pod Linux-em i polaczonych Ethernetem o przepustowosci 100Mb; - ilosc równan rekurencyjnych – N; - rzad macierzy, czyli wartosc informujaca ile poprzednio obliczonych wartosci nalezy uzyc do obliczenia kolejnego wspólczynnika – M; - parametr S okreslajacy liczbe wierszy w macierzach, które sa wykorzystywane do rozwiazania równania (jest to parametr metody, od jego wlasciwego wyboru zalezy szybkosc dzialania algorytmu); Przykladowe czasy wykonania programu dla 1000000 równan z uwzglednieniem rzedu macierzy przedstawia Rys. 7.1. Rys. 7.1 Czas wykonania programu – N= 1000000 Tak przygotowane dane poddano analizie w celu wyboru postaci funkcji aproksymujacej. Ze wzgledu na niejednorodnosc rozkladu podjeto decyzje o zastosowaniu regresji segmentowej, która w przypadku nierównomiernych rozkladów zmiennych cale zadanie opisuje za pomoca sumy kilku funkcji matematycznych. Nastepnie za pomoca narzedzi komputerowych przystapiono do estymacji wspólczynników. Estymacja dokonana powinna byc z wykorzystaniem oprogramowania matematycznego zawierajacego moduly analizy statystycznej. Warunki te spelnia pakiet STATISTICA. W module estymacja nieliniowa stworzono model z wykorzystaniem regresji segmentowej i dokonano jego analizy. 96 7.1.2 Modele statystyczne czasu wykonania aplikacji Po okresleniu celu badan modelowych, specyfikacji zmiennych uwzglednianych w modelu oraz wyborze postaci funkcji aproksymujacej zgodnie z zaproponowana metodyka nalezy dokonac estymacji wspólczynników modelu orazprzeporowadzic jego weryfikacje. Dla danego przykladu zbadano wplyw zmiennych niezaleznych (rzad macierzy - M, parametr S, ilosc równan- N oraz ilosc procesorów P) na zmienna zalezna jaka jest CZAS wykonania programu w srodowisku rozproszonym (Rys. 7.2). Rys. 7.2 Podsumowanie regresji dla zmiennej CZAS Wartosci bezwzgledne statystyki |t| oraz testu F-Snedecora sa duzo wieksze od wartosci krytycznej, co potwierdza hipoteze o ich istotnosci. Kwadrat wspólczynnika korelacji R2 =0,99568 jest bardzo wyskoki i swiadczy o bardzo dobrym dopasowaniu wartosci do danych doswiadczalnych. Model na podstawie którego prognozowac mozna wartosci czasu przyjmuje nastepujaca postac: Czas = 0,162826 − 0,001770 * M + 0,00009 * S + 0,0000001 * N − 0,035155 * P + + 0,179383 − 0,162822 * M + 0,07187 * S + 0,000004 * N − 0,092303 * P Jako potwierdzenie poprawnego prognozowania na Rys. 7.3 ( 7.1) przedstawiono czasy doswiadczalne oraz czasy obliczone z modelu matematycznego dla analizowanego zadania, przy wykorzystaniu 8 komputerów oraz dla rzedu macierzy (M) zmieniajacego sie w zakresie <1;25>. Wartosci prognozowane na podstawie modelu sa zblizone do rzeczywistych, co pozwala na opis wydajnosci aplikacji za pomoca przedstawionej funkcji matematycznej. 0,8 0,6 0,4 0,2 0 0 5 10 15 wartosci przewidywane 20 25 30 wartosci obserwowane Rys. 7.3 Wartosci obserwowane oraz prognozowane dla aplikacji uruchamianej na 8 komputerach Zestawienie wartosci oczekiwanych, obserwowanych oraz ich róznice przedstawia Tabela 7.1. 97 Tabela 7.1 Zestawienie wartosci przewidywanych i obserwowanych Wartosci Wartosci Rzad macierzy przewidywane obserwowane 1 0,132903 0,155539 2 0,214827 0,169917 3 0,246861 0,178396 4 0,303659 0,187893 5 0,327919 0,204643 6 0,373872 0,214442 7 0,394155 0,229331 8 0,413535 0,236233 9 0,451353 0,252252 10 0,468383 0,272117 11 0,502404 0,281724 12 0,517626 0,294967 13 0,548756 0,315565 14 0,562713 0,330496 15 0,576308 0,35366 16 0,604364 0,35074 17 0,617056 0,498356 18 0,643304 0,572763 19 0,655273 0,591759 20 0,679895 0,615394 21 0,69114 0,673544 22 0,714677 0,649363 23 0,725199 0,673332 24 0,735541 0,690628 Róznica -0,02264 0,04491 0,068465 0,115766 0,123276 0,15943 0,164824 0,177302 0,199101 0,196266 0,22068 0,222659 0,233191 0,232217 0,222648 0,253624 0,1187 0,070541 0,063514 0,064501 0,017596 0,065314 0,051867 0,044913 Na Rys. 7.4 przedstawiono wartosci czasu wyznaczonego na podstawie modelu oraz otrzymanego droga doswiadczalna dla rzedu macierzy m=8 na 4, 8 oraz 15 komputerach rozproszonych. 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 wartosci wyznaczone z modelu wartosci wyznaczoe doswiadczalnie 15 4 8 Rys. 7.4 Róznice miedzy wartosciami doswiadczalnymi i prognozowanymi Przy rozwazeniu wplywu tylko dwóch czynników (N,P) model ze wspólczynnikiem dopasowania 0,98428 i punktem przelamania 3,6047 przyjal postac: Czas = 0,334358+ 0,0000001* N − 0,035621* P + ( 7.2) 0,121527+ 0,000004* N + 0,082174* P Rozpatrujac wplyw trzech czynników (N,P,M) model przyjal postac (ze wspólczynnikiem dopasowania 0,9946 i punktem przelamania 0,101): 98 Czas = 0,085413 + 0,008442 * M + 0,0000001* N − 0,03732 * P + ( 7.3) − 0,135035 + 0,893766 * M + 0,000001* N − 0, 457852 * P Przedstawione modele prognozuja czas wykonania aplikacji, w zaleznosci od czynników mozliwych do zmiany dla uzytkownika programu. Na ich podstawie mozna okreslac charakterystyke bez uruchamiania aplikacji. Wartosci otrzymanych wskazników dopasowania modelu do danych empirycznych, statystyki, testy oraz porównania i zestawienia pokazuja, iz otrzymywane róznice w wartosciach rzeczywistych i prognozowanych sa niewielkie, wiec wartosci obliczone z modelu z powodzeniem moga byc zastosowane w praktyce. 7.1.3 Efektywnosc oraz przyspieszenie wykonania kodu Modele statystyczne opisujace efektywnosc aplikacji mozna utworzyc z wykorzystaniem regresji segmentowej. Daje ona mozliwosc opisu badanego zjawiska za pomoca sumy funkcji liniowych. Przy uzyciu pakietu STATISTICA utworzono model efektywnosci wykonania aplikacji. Zgodnie z podsumowaniem regresji wygenerowanym przez program (Rys. 7.5) efektywnosc wykonania kodu w srodowisku rozproszonym zostala opisana przy pomocy nastepujacego równania: E = 0,731237 − 0,000099 * M + 0,000006 * S − 0,0000001 * N − 0,009665 * P + + 0,978506 + 0,001894 * M + 0,000001* S + 0,000001 * N − 0,009041* P ( 7.4) Rys. 7.5 Podsumowanie regresji dla zmiennej EFEKTYWNOSC Po estymacji wspólczynników modelu nalezy zweryfikowac poprawnosc modelowania. Analiza wyników badania statystycznego oraz sformulowanie ocen i wniosków jest przepustka do wdrazania modeli do praktyki. Wspólczynnik dopasowania wartosci otrzymanych z modelu, do wartosci empirycznych wynosi 0,84526, co stanowi wartosc akceptowalna do zastosowania w praktyce. Podobnie wartosci testów i statystyk generowane przez program STATISTICA wskazuja na poprawnosc zaprezentowanego modelu. 99 Model, na podstawie którego prognozowac mozna przyspieszenie wykonania programu wzgledem wykonania synchronicznego zdefiniowac mozna nastepujaco, (ze wspólczynnikiem 0,92789 i punktem przelamania 7,53) SPEEDUP = 2,871873 + 0,020577 * M − 0,000015 * S − 0 ,0000001 * N + 0 ,185276 * P + ( 7.5) + 0,01886 + 0,015691 * M + 0,000129 * S + 0,000001 * N + 0,599011 * P Opracowane modele moga pomóc w podjeciu decyzji, które z parametrów uruchomienia programu nalezy wybrac, aby otrzymac satysfakcjonujace wyniki zwiazane z wydajnoscia aplikacji. Na podstawie modelu mozna prognozowac, czy wykorzystanie wielu procesorów do zadania obliczeniowego jest wskazane, badz mozna okreslic ramy czasowe wykonania programu. 7.2 Analiza wplywu wartosci wspólczynnika na czas generacji rozwiazania Badana aplikacja odpowiedzialna jest za rozwiazywanie równan rekurencyjnych. Analizie poddano wplyw parametru S na czas wykonania programu oraz efektywne wykorzystanie dostepnych procesorów. Rozwazany parametr okresla liczbe wierszy w macierzach, które sa wykorzystywane do rozwiazania równania. Wiadomym jest, iz od odpowiedniego doboru wartosci wspólczynnika zalezy szybkosc dzialania algorytmu. 7.2.1 Zalozenia wstepne Stworzenie modeli statystycznych ma na celu opisanie zachowania systemu rozproszonego pod wzgledem czasu wykonania, przyspieszenia, efektywnosci. Za ich pomoca mozna badac i przewidywac wplyw pewnych czynników na wydajnosc aplikacji, bez koniecznosci jej uruchamiania. Stosujac modele matematyczne mozna zorientowac sie w jakim stopniu podczas zastosowania srodowiska rozproszonego zmienia sie wartosci charakterystyk wydajnosciowych w zaleznosci od posiadanej bazy sprzetowej. Drugim etapem w zaproponowanej metodyce jest wybór zmiennych wykorzystywanych do budowy modelu. Dokladne rozpoznanie i wyszczególnienie wszystkich zmiennych charakterystycznych dla danej aplikacji i srodowiska jej uruchomienia ma wplyw na jakosc modelowania. Model statystyczny budowany jest w oparciu o dane doswiadczalne uzyskane podczas testowania aplikacji. Czasy wykonania programów w srodowisku rozproszonym udostepnione zostaly przez pracowników Wydzialu Informatyki UMCS w ramach pracy [Stpiczynski92] i zamieszczone na plycie dolaczonej do pracy w katalogu \WYNIKI\ROZPROSZONY\PARAMETR. 100 Zaprezentowane wyniki dotycza obliczen na klastrze dwóch komputerów dwuprocesorowych. Zadanie dotyczylo obliczenia 1.000.000 równan rekurencyjnych (N = 1.000.000). Jako zmienne majace istotny wplyw na parametry wyjsciowe (czas wykonania programu w srodowisku rozproszonym, przyspieszenie w stosunku do programu wykonywanego sekwencyjnie, efektywnosc wykorzystania dostepnych procesorów) rozwazono: - Ilosc komputerów P. Program testowano z wykorzystaniem 4, 8 oraz 15 komputerów PIII 666 MHz posiadajacych 256 RAM, dzialajacych pod Linux-em i polaczonych Ethernetem o przepustowosci 100Mb; - Wartosci parametru S, czyli ilosc wierszy w macierzach, które sa wykorzystywane do rozwiazania; - Rzad macierzy M. Program testowano dla rzedu macierzy wynoszacego odpowiednio 2, 4 oraz 16. Pozostale czynniki wymienione w metodyce postepowania (rozdzial 6.2) nie zostaly uwzglednione w modelach, ze wzgledu na brak mozliwosci przetestowania programu pod ich katem. 7.2.2 Modele czasu wykonania Kolejnym etapem modelowania jest okreslenie linii trendu. Na Rys. 7.6 przedstawiono czas wykonania programu przy uzyciu dwóch oraz czterech procesorów. Rys. 7.6 Czas wykonania programu przy wykorzystaniu 2 oraz 4 procesorów Analizujac dane zawarte na Rys. 7.6 stwierdzic mozna, ze jedynie uzycie algorytmów komputerowych pozwoli na uzyskanie w szybkim czasie poprawnie zbudowanego modelu statystycznego. Dopasowanie linii trendu w sposób analityczny wykonane przy uzyciu programu MS EXCEL, pociagaja za soba duze naklady pracy, a co za tym idzie sa czasochlonne i obarczone duza niedokladnoscia wynikajaca z zaokraglen (dwie rózne 101 wartosci calkowitej wariancji skladnika losowego). Zastosowanie oprogramowania matematycznego z wbudowanymi funkcjami statystycznymi pozwoli na zbudowanie poprawnie skonstruowanego modelu oraz jego weryfikacje. W programie STATISTICA dokonano analizy regresji, na której podstawie utworzono model statystyczny opisujacy czas wykonania aplikacji rozwiazujacej 1000000 równan rekurencyjnych w srodowisku rozproszonym. Model zgodnie z Rys. 7.7 przyjal nastepujaca postac (7.6): CZAS = −0,068353 - 0,002457 * M - 0,000001 * M * S + 0,82197 * M + 0,001471 * S − 0,0000001 * ( S * M ) 2 + 0,001097 * S * M ( 7.6) Rys. 7.7 Podsumowanie regresji dla zmiennej zaleznej CZAS Po wyestymowaniu wspólczynników modelu nalezy przystapic do jego weryfikacji. Wsród kombinacji wyzej wymienionych zmiennych odrzucono, jako nieistotna dla modelu zmienna S, ale wykorzystano iloczyn tej zmiennej oraz rzedu macierzy M. Wspólczynnik korelacji wielorakiej R= 0,99982007 wyjasnia, w jakim zwiazku pozostaje zmienna objasniana z pozostalymi zmiennymi (objasniajacymi) w modelu. Poziom wspólczynnika R wskazuje na to, ze ksztaltowanie sie wartosci zmiennej objasnianej podyktowane jest niemalze calkowicie ksztaltowaniem sie wartosci zmiennych objasniajacych. Wspólczynniki determinacji R2 =0,97202195 wskazuje na to, ze model wyjasnia ksztaltowanie sie zmiennej objasnianej w ponad 97%, co jest bardzo zadawalajacym wynikiem. O poprawnosci wygenerowanego modelu swiadczy takze wartosc statystyki F (Snedecora) df F(7,272)=1485 oraz poziom istotnosci p<0,0000. Wartosci te wskazuja, iz parametry modelu sa "lacznie" istotne statystycznie przy poziomie istotnosci p. Wykazuja tym samym duza istotnosc statystyczna. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko wartosci wspólczynników dopasowania modelu do danych rzeczywistych sa bardzo wysokie, 102 co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. Utworzony model moze pomóc w podjeciu decyzji odnosnie warunków i parametrów uruchamiania aplikacji. Za jego pomoca mozna bez koniecznosci uruchamiania programu wybrac zmienna najbardziej lub najmniej znaczaco wplywajaca na obiekt. Korzystanie z modelu moze spowodowac oszczednosc czasu, kosztów, a takze obciazenia systemów rozproszonych. 7.2.3 Opis matematyczny efektywnosci aplikacji Efektywnosc wykorzystania procesorów dla badanej aplikacji przedstawia Rys. 7.8. Na podstawie jego analizy zdecydowano sie utworzyc modele statystyczne, wykorzystujac rózne metody estymacji wspólczynników. Przy uzyciu programu STATISTICA wygenerowane zostaly modele przy pomocy regresji wielorakiej oraz estymacji nieliniowej dokonanej z wykorzystaniem regresji segmentowej. Postacie modeli wraz ze wspólczynnikami okreslajacymi stopien dopasowania danych wyznaczonych na podstawie modelu do wartosci otrzymanych droga doswiadczalna zawiera Tabela 7.2. 1,4 1,2 1 0,8 0,6 0,4 0,2 0 m=2 m=4 m=16 0 5000 10000 15000 20000 Rys. 7.8 Efektywnosc zrównoleglenia w zaleznosci od rozmiaru macierzy 103 Tabela 7.2 Modele efektywnosci aplikacji rozwiazujacej równania rekurencyjne RODZAJ REGRESJI POSTAC MODELU WSPÓLCZYNNIK KORELACJI / WSPÓLCZYNNIK DETERMINACJI regresja EFEKTYWNOSC = 0,911323 - 0,102619 * M - 0,000021 * S R=0,97765246 wielokrotna, 2 2 zmienne S, - 0,000007 * M * S + 0,004127 * M + 0,0000001 * S M, S*M, − 0,007539 * S + 0,007002 * S * M R2 =0,9548933 S2 , M2 , ( 7.7) S1/2 , S*M1/2 regresja wielokrotna, zmienne M, S, P, M*S, M*P, S*P regresja segmentowa zmienne M, S, P EFEKTYWNOSC = 0,767941 + 0,047611 * M - 0,047611 * S R=0,93447880 - 0,485760 * P - 0,001123 * M 2 + 0,000001 * M * S − 0,002962 * M * P − 0,000003 * S * P R2 =0,87175189 ( 7.8) EFEKTYWNOSC = 0,846243 + 0,011510 * M - 0,000009 * S - 0,072623 * P + 0,888637 + 0,024991 * M - 0,000007 * S - 0,092165 * P R=0,9425625 ( 7.9) Po wygenerowaniu wartosci wspólczynników w modelach nalezy dokonac ich weryfikacji. Pierwsze dwa modele (7.7) oraz (7.8) utworzone zostaly przy uzyciu regresji wielorakiej. Jako zmienne istotne dla modelu (7.7) wskazano S, M oraz kombinacje tych wartosci w postaci kwadratów, pierwiastków oraz iloczynów. Wspólczynnik determinacji wyniósl R2 =0,9548933, co swiadczy o poprawnym odwzorowaniu wartosci empirycznych oraz prognozowanych na podstawie modelu. Model (7.7) opisany jest przy uzyciu zmiennych M, S oraz dodatkowo P okreslajacych liczbe procesorów potrzebnych do wykonania zadania. Do modelu wykorzystano takze kombinacje iloczynów zmiennych. Wartosc wspólczynnika determinacji jest nizsza niz dla poprzedniego modelu, wynosi R2 =0,87175189, ale stanowi wartosc akceptowalna do zastosowania w praktyce. Dla modelu (7.9) (wykonanego przy uzyciu regresji segmentowej), dokonano porównania wartosci przewidywanych oraz obserwowanych dla zadania wykonywanego na maszynie dwuprocesorowej z uwzglednieniem wartosci parametru S z zakresu <10000;20000>. Jako parametry modelu wskazano tu podobnie jak w modelu (7.8) zmienne M, S oraz P. 104 10 00 1 10 60 1 11 20 1 11 80 1 12 40 1 13 00 1 13 60 1 14 20 1 14 80 1 15 40 1 16 00 1 16 60 1 17 20 1 17 80 1 18 40 1 19 00 1 19 60 1 0,55 0,5 0,45 0,4 0,35 0,3 wartosci obserwowane wartosci przewidywane Rys. 7.9 Porównanie wartosci przewidywanych i obserwowanych Wspólczynnik korelacji wielorakiej dla badanego modelu wynosi R=0,9425625 i wyjasnia, w jakim zwiazku pozostaje zmienna objasniana z pozostalymi zmiennymi w modelu. Poziom wspólczynnika R wskazuje na to, ze ksztaltowanie sie wartosci zmiennej objasnianej podyktowane jest w ponad 95% ksztaltowaniem sie wartosci zmiennych objasniajacych. Procenty odchylen dla problemu o rozmiarze 1000000, dla rzedu macierzy wynoszacego 8 przedstawia Rys. 7.10. 15 10 5 0 -5 0 10 20 30 40 50 -10 -15 2 komputery 4 komputery Rys. 7.10 Procentowy udzial odchylen wartosci prognozowanych na postawie modelu do wartosci empirycznych Powyzsze modele moga posluzyc do prognozowania efektywnosci dla omawianej aplikacji. Swiadcza o tym wartosci przytoczonych wspólczynników dopasowania oraz wskazniki i testy generowane przez program STATISTICA. Na podstawie modeli mozliwe jest prognozowanie wydajnosci aplikacji w zaleznosci od posiadanych warunków sprzetowych i programowych. Podstawiajac rózne wartosci parametrów wejsciowych do modelu mozna zorientowac sie w jaki sposób zmiany te wplyna na wartosci zmiennej objasnianej. 105 7.3 Modele statystyczne aplikacji odpowiedzialnej za mnozenie macierzy 7.3.1 Charakterystyka srodowiska rozproszonego Mnozenie macierzy jest jednym z prostszych mechanizmów, które mozna poddac zrównolegleniu. Aplikacja uruchamiana byla w rozproszonym srodowisku heterogenicznym, istniejacym na Wydziale Informatyki Politechniki Szczecinskiej, o architekturze podanej w Tabela 7.3, a wyniki testów zamieszczone zostaly w katalogu \WYNIKI\ROZPROSZONY\MACIERZ, na plycie dolaczonej do pracy. Tabela 7.3 Charakterystyka srodowiska rozproszonego (Wydzial Informatyki, Politechnika Szczecinska) SERWER Opis techniczny JOTA1 4 x P3 XEON 700 MHz JOTA2 4 x P4 XEON 2,6 GHz JOTA3 4 x P4 XEON 2 GHz Zaprezentowane modele statystyczne powinny byc podstawa do prognozowania wartosci wydajnosci systemu rozproszonego, czyli czasu wykonania, przyspieszenia, efektywnosci. Stworzenie modeli pozwoli na badanie i przewidywanie wplywu dostepnych i mierzalnych czynników na wydajnosc aplikacji, bez koniecznosci jej uruchamiania. Korzystajac z modeli matematycznych osoba zainteresowana rozproszeniem wykonywania obliczen na kilka komputerów moze zorientowac sie w jakim stopniu zmianie ulegna wartosci charakterystyk wydajnosciowych w zaleznosci od posiadanej bazy sprzetowej. Kolejnym etapem metodyki przytoczonej w pracy jest wybór zmiennych wykorzystywanych do budowy modelu. Droga doswiadczalna uzyskano czasy wykonania programu dla macierzy o rozmiarach 300x300, 400x400 oraz 500x500. Jako czas wykonania programu w sposób sekwencyjny przyjeto czas wykonania zadania na jednym procesorze P3 XEON 700 MHz serwera JOTA1. Na tej podstawie obliczono przyspieszenie wykonania zadania, a nastepnie dzielac je przez liczbe procesorów uzyskano efektywnosc wykonania calej aplikacji. 7.3.2 Modele efektywnosci dla rozproszonego mnozenia macierzy Na podstawie wartosci efektywnosci programu wykonanego w rozproszonym, heterogenicznym srodowisku, przy pomocy pakietu STATISTICA podjeto próbe utworzenia 106 modeli statystycznych, na podstawie których mozna prognozowac efektywnosc aplikacji w zaleznosci od dostepnych parametrów systemu. Jako parametry modelu wybrano zmienne okreslajace rozmiar macierzy (ROZMIAR) oraz liczbe zaangazowanych procesorów P. Ilosc procesorów dla zadania wykonywanego na serwerze JOTA1 wynosi 3, z wykorzystaniem serwerów JOTA1 oraz JOTA2 wynosi 6, a wykorzystujac wszystkie trzy serwery (JOTA1, JOTA2, JOTA3) prace dzieli sie na 9 procesorów. Wartosci efektywnosci wykonania aplikacji przy zaangazowaniu odpowiednich serwerów przedstawiono na Rys. 7.11. 0,5 0,4 jota1 0,3 jota1,jota2 0,2 jota1,jota2,jota3 0,1 0 300 350 400 450 500 Rys. 7.11 Efektywnosc aplikacji przy wykorzystaniu serwerów JOTA1, JOTA2, JOTA3 W wyniku analizy danych i estymacji wspólczynników regresji wielorakiej przy pomocy programu STATISTICA otrzymano model nastepujacej postaci: EFEKTYWNOSC = 1,308047 − 0,001867 * ROZMIAR − 0,200041 * P + 0,000002 * ROZMIAR 2 + 0,011492 * P 2 + 0,000028 * ROZMIAR * P ( 7.10) Dalsza analiza istotnosci wspólczynników wykazala, iz efektywnosc mozna opisac przy uzyciu tylko jednej zmiennej, która jest ilosc zaangazowanych procesorów P. Za istotny wspólczynnik uznano wartosc ilosci procesorów podniesionej do kwadratu. Pozostale trzy parametry, czyli ROZMIAR, ROZMIAR2 oraz ROZMIAR*P uznane zostaly za nieistotne. W zwiazku z powyzszym model przyjal zredukowana postac: EFEKTYWNOSC = 0,872433 − 0,188952 * P + 0,11492 * P 2 ( 7.11) Model opisany równaniem (7.11) wyjasnia ksztaltowanie sie zmiennej objasnianej w ponad 96%, R2 =0,96641708, co jest zadawalajacym wynikiem. Poziom wspólczynnika R=0,98732609 wskazuje na to, ze ksztaltowanie sie wartosci zmiennej objasnianej podyktowane jest w prawie 99% ksztaltowaniem sie wartosci zmiennych objasniajacych. 107 Wskazniki te daja podstawe do prognozowania, na podstawie modelu, wartosci parametrów w systemie rzeczywistym. Mimo zredukowanej liczby zmiennych w równaniu, zaleznosci w poprawny sposób przedstawiaja wydajnosc aplikacji. Mozliwosc uzycia do budowy modelu tylko wybranych czynników charakteryzujacych srodowisko oraz aplikacje, czyni modelowanie, a zwlaszcza etap zbierania danych prostym i mozliwym do zastosowania przez kazdego uzytkownika systemów rozproszonych. 7.3.3 Przyspieszenie wykonania aplikacji w srodowisku rozproszonym Na Rys. 7.12 przedstawiono ksztaltowanie sie wartosci przyspieszenia dla omawianego srodowiska rozproszonego. Jako czas wykonania programu w sposób sekwencyjny przyjeto czas wykonania zadania na jednym procesorze P3 XEON 700 MHz serwera JOTA1. Przyspieszenie obliczone zostalo jako stosunek czasu rozproszonego do sekwencyjnego. 1,5 1,3 jota1 1,1 jota1,jota2 0,9 jota1,jota2,jota3 0,7 0,5 300 350 400 450 500 Rys. 7.12Przyspieszenie aplikacji przy wykorzystaniu serwerów JOTA1, JOTA2, JOTA3 Tak zestawione dane posluzyly do budowy modeli statystycznych. Przy ich tworzeniu wykorzystano program EXCEL w celu opisania linii trendu na wykresie. Nastepnie, z wykorzystaniem pakietu STATISTICA dokonano weryfikacji zaprezentowanych modeli. W Tabela 7.4 przedstawiono modele regresyjne opisujace przyspieszenie w zaleznosci od srodowiska uruchomienia. Model (7.12) opisuje przyspieszenie aplikacji uruchamianej na serwerze JOTA1. Model (7.13) sluzy do prognozowania przyspieszenia aplikacji uruchamianej w srodowisku rozproszonym skladajacym sie z serwera JOTA1 oraz JOTA2. Równanie (7.14) jest modelem przyspieszenia dla aplikacji uruchamianej w srodowisku zlozonym z JOTA1, JOTA2 oraz JOTA3. 108 Tabela 7.4 Modele przyspieszenia dla rozproszonego mnozenia macierzy SERWER POSTAC MODELU JOTA1 SPEED_UP = 2E - 07x2 - 0,001x + 1,592 ( 7.12) SPPED_UP = 1E - 05x2 - 0,01x + 3,0426 JOTA1, JOTA2 ( 7.13) JOTA1, JOTA2, JOTA3 SPEED_UP = 3E - 05x2 - 0,022x + 5,4165 ( 7.14) Wspólczynniki dopasowania danych uzyskanych na podstawie modelu do danych doswiadczalnych sa bliskie jednosci, co wskazuje na poprawnosc modelowania. Takze wartosci statystyk uzyskanych w programie STATISTICA potwierdzaja slusznosc doboru wspólczynników modelu. Na podstawie zaprezentowanych modeli mozna prognozowac przyspieszenie wykonania programu w poszczególnych srodowiskach rozproszonych dla odpowiednich rozmiarów macierzy. 7.4 Charakterystyka wydajnosciowa programu rozwiazujacego uklady równan metoda Gaussa-Seidla 7.4.1 Zakres badan Testowana aplikacja odpowiedzialna jest za rozwiazywanie ukladów równan liniowych metoda Gaussa-Seidla. Dla niej stworzono modele statystyczne z wykorzystaniem wykorzystaniu metodyki zaproponowanej w rozdziale 6. Przed przystapieniem do modelowania nalezy okreslic zakres stosowalnosci modelu. Model powinien prognozowac wartosci wydajnosci systemu rozproszonego, w zaleznosci od parametrów wejsciowych aplikacji badz systemu. Do utworzenia modelu potrzebny jest usystematyzowany material statystyczny. W celu jego uzyskania przetestowano aplikacje w srodowisku heterogenicznym o architekturze podanej w Tabela 7.3. Czasy wykonania programu zawarte zostaly w katalogu \WYNIKI\ROZPROSZONY\GAUSS na plycie dolaczonej do pracy. Z listy czynników, mogacych miec wplyw na prognozowana wartosc, zaproponowanych w rozdziale 6.2., dla danej aplikacji wybrano ilosc komputerów w 109 srodowisku rozproszonym zaangazowanych do wykonania zadania. Program przetestowano takze pod katem wplywu rozmiaru macierzy. Droga doswiadczalna uzyskano czasy wykonania programu dla 300, 400 oraz 500 równan. Dla podanych rozmiarów zadania wykonano aplikacje na trzech procesorach na serwerze JOTA1 lub JOTA2 lub JOTA3, na 6 procesorach na w srodowisku rozproszonym opartym o serwery JOTA1 oraz JOTA2 oraz na 9 procesorach w srodowisku zlozonym z JOTA1, JOTA2 oraz JOTA3. 7.4.2 Prognozowanie czasu wykonania programu Na podstawie opisanych danych wyznaczono wstepne postaci funkcji aproksymujacych oraz, przy uzyciu programu STATISTICA, dokonano analizy i utworzono modele dla czasu wykonania programu w srodowisku rozproszonym. Tym samym przystapiono do kolejnego etapu w zaprezentowanej metodyce. Tabela 7.5 zawiera modele czasu wykonania, w których jako zmienne niezalezne wybrano tylko zmienna ROZMIAR. Sa one wykonane dla poszczególnych serwerów i ze wspólczynnikiem dopasowania bliskim jednosci moga posluzyc do prognozowania czasu wykonania programu bez koniecznosci jego uruchamiania. Tabela 7.5 Modele czasu wykonania programu w srodowisku rozproszonym SERWERPOSTAC MODELU CZAS = - 0,2058 * ROZMIAR2 + 186,14 * ROZMIAR + 7663 ( 7.15) JOTA1 CZAS = 0,3264 * ROZMIAR2 - 212,05 * ROZMIAR + 110329 ( 7.16) JOTA2 CZAS = - 6,4142 * ROZMIAR2 + 5207,6 * ROZMIAR + 882358 ( 7.17) JOTA3 CZAS = 7,0481 * ROZMIAR2 - 6193,9 * ROZMIAR + 1E + 06 JOTA1, JOTA2 JOTA1, JOTA2, JOTA3 ( 7.18) CZAS = 10,458 * ROZMIAR2 - 7744 * ROZMIAR + 1E + 06 ( 7.19) 110 Kolejne modele opisuja czas wykonania programu w srodowisku rozproszonym w zaleznosci od ilosci równan (zmienna ROZMIAR) oraz liczby zaangazowanych procesorów (zmienna P). Modele te zostaly utworzone przy pomocy regresji segmentowej i charakteryzuja okreslone srodowisko rozproszone. Po uzyskaniu postaci modeli statystycznych charakteryzujacych aplikacje, nalezy przystapic do weryfikacji hipotez statystycznych, czyli sprawdzenia ich poprawnosci i okreslenia, czy model moze byc zastosowany do prognozowania wydajnosci aplikacji rozproszonych, z dokladnoscia akceptowalna do zastosowania w praktyce. Model (7.20) z wariancja wyjasniona równa 97,353% oraz wartoscia wspólczynnika korelacji R=0,98660 charakteryzuje programy wykonane na serwerze JOTA1. Punkt przelamania dla wartosci szacowanej wynosi 132563. CZAS = 40720,5 + 6913,881 * P − 34,6804 * ROZMIAR + 79831,01 + 17436,33 * P + 0,1 * ROZMIAR ( 7.20) Model (7.21) R=0,97561 i punkt przelamania równy 147585 charakteryzuje aplikacje uruchamiane na serwerze JOTA2, a na podstawie równania (7.22) prognozowac mozna czas wykonania aplikacji na serwerze JOTA3 (R=0,95828, punkt przelamania - 116445). CZAS = 99277,99 + 1043,313 * P − 64,9244 * ROZMIAR + 79831,01 + 17436,33 * P + 0,1 * ROZMIAR CZAS = 99277,99 + 1043,313 * P − 64,9244 * ROZMIAR + 79831,01 + 17436,33 * P + 0,1 * ROZMIAR ( 7.21) ( 7.22) Powyzej przedstawione modele moga zostac zastosowane do prognozowania czasu wykonania zadania w rzeczywistych srodowiskach rozproszonych. Wskazuja na ten fakt wartosci wspólczynników korelacji, testów i statystyk generowanych przez program STATISTICA. W rozdziale 6.2 podano liste czynników, od których zalezny jest czas wykonania programu w srodowisku rozproszonym. Dla danego zadania nie wszystkie z nich moga byc wyrazone w sposób liczbowy i umieszczone jako parametry modelu. Mimo pominiecia w modelu wielu z czynników charakteryzujacych badane zjawisko, wartosci wspólczynników dopasowania modeli do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz slusznosci modelowania. 111 Utworzone modele wskazuja najbardziej korzystny wariant uruchomienia z punktu widzenia wydajnosci aplikacji. Za ich pomoca mozna wskazac istotnosc, badz nie, wykonywania zadania w srodowiskach rozproszonych. 7.5 Modele statystyczne wydajnosci aplikacji w srodowisku .NET Remoting Dla celów weryfikacji poprawnosci zaprezentowanej w rozdziale 6 metodyki postepowania przy budowie modeli statystycznych charakteryzujacych wydajnosc aplikacji zbudowano system rozproszony [Palkowski04], na którym przeprowadzono badania. Pierwsza seria doswiadczen polegala na stworzeniu modeli statystycznych, dzieki którym prognozowac mozna czas wykonania zadania. Utworzono takze modele przyspieszenia aplikacji wykonanej w srodowisku rozproszonym w stosunku do programu dzialajacego sekwencyjnie oraz zaprezentowano modele sluzace do okreslania czasu przestoju komputerów. Kolejnym etapem byl opis wplywu przepustowosci sieci oraz mechanizmów dekompozycji na wydajnosc aplikacji. 7.5.1 Architektura aplikacji rozproszonej wykorzystywanej do badan Struktura aplikacji rozproszonej sklada sie z poszczególnych komponentów: • aplikacja kliencka • biblioteki z algorytmami obliczen numerycznych • aplikacja posredniczaca • usluga Web dostarczajaca liste komputerów udostepnionych do obliczen Na Rys. 7.13 przedstawiono schemat przeprowadzenia obliczen rozproszonych oraz wspólprace i zaleznosci pomiedzy powyzszymi modulami: 112 Aplikacja kliencka Pobierz liste komputerów za pomoca uslugi Web Serwer IIS Odczyt konfiguracji maszyn z pliku XML Lista komputerów Podzial obliczen n watków n komputerów … Usluga Web <host nazwa="cosmo"> <adres>192.168.0.4</adres> <port>8881</port> <protokol>tcp</protokol> <moc>500</moc> </host> .NET Remoting Aplikacja macierzysta Biblioteki Integracja wyników Rys. 7.13 Struktura aplikacji rozproszonej oraz zaleznosci pomiedzy jej komponentami Przeprowadzenie obliczen rozproszonych sklada sie z nastepujacych kroków [Palkowski04]: - Ustawienie parametrów i zlecenie obliczen w aplikacji klienckiej; - Aplikacja kliencka pobiera liste komputerów za pomoca uslugi Web; - Aplikacja kliencka tworzy tyle watków, ile jest maszyn; - Kazdemu watkowi przypisany jest odpowiednia czesc obliczen; - Watki wywoluja zdalne obiekty na przyporzadkowanych komputerach za pomoca .NET Remoting; - Za komunikacje z watkami i wykonaniem obliczen na zdalnej maszynie odpowiedzialna jest aplikacja posredniczaca korzystajaca z bibliotek z algorytmami; - Po odebraniu czastkowych wyników aplikacja kliencka generuje koncowy wynik. Do przeprowadzenia badan wykorzystano 3 komputery osobiste (jednoprocesorowe) o róznej mocy obliczeniowej polaczonych siecia lokalna o przepustowosci 100Mbit/s, których parametry sprzetowe zawiera Tabela 7.6. 113 Tabela 7.6 Parametry sprzetowe komputerów uzytych do przeprowadzenia badan Nazwa cosmo primax dell Procesor Pamiec AMD Duron 1200 256 MB SDRAM MHz AMD Duron 750 256 MB DDRMHz SDRAM Intel Pentium III 500 256 MB SDRAM MHz Predkosc magistrali wewnetrznej Predkosc magistrali pamieci 2x100 MHz 1x100 MHz 2x100 MHz 2x133 MHz 1x100 MHz 1x100 MHz 7.5.2 Zasada dzialania testowanych aplikacji Weryfikacja zaprezentowanej w pracy metodyki tworzenia modeli statystycznych charakteryzujacych programy rozproszone dokonana zostanie na przykladzie dwóch aplikacji przeprowadzajacych obliczenia numeryczne w srodowisku rozproszonym, które sa opracowane w postaci bibliotek i dolaczone jako kolejne moduly aplikacji. Pierwsza z aplikacji dotyczy obliczania calki potrójnej za pomoca zlozonej metody Simpsona, druga generowania wykresów Lapunowa w oparciu o dwuparametrowy diagram bifurkacji. Obydwa programy charakteryzuja sie duzym zapotrzebowaniem na moc obliczeniowa. Obliczanie calki n-krotnej funkcji n zmiennych sprowadza sie do obliczania n calek oznaczonych. W przypadku calki potrójnej i obszaru calkowania V postaci: V = {( x, y, z ) : α ≤ x ≤ β , γ ( x) ≤ y ≤ δ ( x), η ( x, y) ≤ z ≤ φ ( x , y )} , ∫∫∫ V β δ (x) κ (x, y) f ( x, y , z ) dV = ∫ ∫ ∫ f ( x, y , z )dzdydx ( 7.23) α γ ( x) η ( x,y) przyblizona wartosc calki oblicza sie przez trzykrotne zastosowanie kwadratury zlozonej Simpsona [Marciniak97]. Okno glówne programu przedstawia Rys. 7.14. 114 Rys. 7.14 Interfejs aplikacji klienckiej obliczania calki potrójnej Wykres Lapunowa jest to rodzaj fraktala, generowany na podstawie wykladnika Lapunowa i dwuparametrowego diagramu bifurkacji. Wykladnik Lapunowa jest jedna z wazniejszych miar charakteryzujacych stopien chaotycznosci ukladu dynamicznego przez jednowymiarowe odwzorowanie. Okresla on stopien wrazliwosci jednowymiarowego ukladu dynamicznego na zmiane warunków poczatkowych [Martyn96]. Okno glówne programu przedstawia Rys. 7.15. Rys. 7.15 Interfejs aplikacji klienckiej rysowania wykresów Lapunowa 115 7.5.3 Badanie zaleznosci czasu i przyspieszenia obliczen rozproszonych od rozmiaru problemu Celem badan jest utworzenie modeli statystycznych, na podstawie których prognozowac mozna czas wykonania programu, przyspieszenie obliczen rozproszonych w zaleznosci od ich rozmiaru oraz maksymalny przestój dla dwóch przykladowych zadan numerycznych. Korzystanie z modeli regresyjnych moze wskazac zasadnosc wykorzystania srodowisk rozproszonych oraz okreslic czynniki, które maja istotny wplyw na charakterystyke wydajnosciowa. Modele z zalozenia maja byc tworzone przez uzytkowników aplikacji, wiec ich parametrami moga byc tylko czynniki mozliwe do zmiany i jednoznacznego okreslenia z poziomu wykonywania programów. W celu zebrania materialu statystycznego potrzebnego do utworzenia modeli przeprowadzono doswiadczenia w srodowisku heterogenicznym o architekturze podanej w Tabela 7.6. Wyniki przeprowadzonych testów dostepne sa na plycie dolaczonej do pracy w katalogu \WYNIKI\ROZPROSZONY\NET. Z listy zmiennych wejsciowych majacych wplyw na czasy wykonania aplikacji w srodowisku rozproszonym wybrano zmienne charakteryzujace aplikacje. Modele sa tworzone w oparciu o zdefiniowane srodowisko rozproszone. Jako strategie podzialu obliczen wybrano podzial seryjny. Wielkosc porcji obliczen zmienia sie stopniowo w zaleznosci od wielkosci calego zadania. Zmiennymi uwzglednianymi w modelach sa: - liczba kroków calkowania, dla uproszczenia kazdy wymiar calki zostal podzielony na ta sama liczbe czesci tj.: 20, 50, 100, 200, 250, 300, 400 oraz 500. - porcja danych do wykonania, czyli ilosc paczek, przetestowano podzial na 6, 10, 15 oraz 30 paczek. Na Rys. 7.16 przedstawiono czasy wykonania programu na poszczególnych komputerach oraz czas wykonania programu w srodowisku rozproszonym, oznaczony na wykresie jako (razem). 116 1200 1000 800 600 400 200 0 0 20000000 40000000 cosmo 60000000 primax 80000000 100000000 dell 120000000 razem Rys. 7.16 Czasy wykonania programu na pojedynczych komputerach oraz w srodowisku rozproszonym Tabela 7.7 Indywidualny i rozproszony czas oraz przyspieszenie Laczna ilosc kroków 8000 125000 1000000 3375000 8000000 15625000 27000000 42875000 64000000 125000000 Indywidualny i rozproszony czas obliczen [s] Como 0,03 0,33 2,37 8,05 19,33 36,91 68,58 103,09 168,10 319,64 primax dell razem 0,04 0,07 0,08 0,51 1,09 0,23 4,01 8,34 1,59 13,42 28,41 4,78 31,79 66,34 11,79 62,45 129,81 21,73 107,29 317,40 33,91 158,43 496,83 56,44 257,47 672,91 82,17 475,52 1065,57 158,10 maksyIndywidualny i srednie przyspieszenie malny obliczen S przestój ilosc paczek cosmo primax dell srednia [s] 0,01 6 0,375 0,5 0,875 0,583333 0,06 10 1,434783 2,217391 4,73913 2,797101 0,42 10 1,490566 2,522013 5,245283 3,085954 0,89 10 1,6841 2,807531 5,943515 3,478382 2,77 15 1,639525 2,696353 5,626802 3,320893 3,10 30 1,698573 2,873907 5,973769 3,515416 1,79 30 2,022412 3,163963 9,360071 4,848815 3,02 30 1,826541 2,807052 8,802799 4,478798 3,84 30 2,045759 3,133382 8,189242 4,456128 8,15 50 2,021758 3,007717 6,739848 3,923108 Korzystajac z danych empirycznych zawartych w Tabela 7.7 przystapiono do kolejnego etapu modelowania, czyli okreslenia postaci funkcji aproksymujacej. danych wskazuje, Uklad iz obraz danych moze byc odwzorowany przy wykorzystaniu regresji liniowej. Zgodnie z nastepnym krokiem metodyki przedstawionej w rozdziale 6, przy uzyciu programu STATISTICA, zostal wyznaczony model ksztaltowania sie wartosci czasu wykonania aplikacji liczacej calke potrójna i dzialajacej w srodowisku rozproszonym. Podsumowanie regresji zmiennej zaleznej (Rys. 7.17) zawiera wspólczynniki regresji standaryzowane BETA tzn. takie, które zakladaja udzial danej zmiennej w analizie, jako niezaleznej (wykluczajac jej scisly zwiazek z innymi zmiennymi niezaleznymi). Natomiast B oznacza wspólczynniki regresji (parametry), zakladajac istnienie wspólzaleznosci zmiennych objasniajacych. Na podstawie Rys. 7.17 utworzono model opisujacy czas wykonania programu rozproszonego w zaleznosci od liczby kroków i ilosci paczek: 117 CZAS = 0,004063 + 0,000001 * KROK ( 7.24) Rys. 7.17 Podsumowanie regresji – zmienna zalezna CZAS, zmienne niezalezne KROK, PACZKA Po stworzeniu modelu statystycznego przystapiono do jego weryfikacji. Blad st. BETA jest to wartosc bledu szacunku dla (parametru) wspólczynnika regresji, gdyby zostala ona wprowadzona do równania regresji jako zmienna niezalezna. Wspólczynnik korelacji wielorakiej R= 0,99986682 wyjasnia, w jakim zwiazku pozostaje zmienna objasniana z pozostalymi zmiennymi (objasniajacymi) w modelu. Poziom wspólczynnika R wskazuje na to, ze ksztaltowanie sie wartosci zmiennej objasnianej podyktowane jest niemalze calkowicie ksztaltowaniem sie wartosci zmiennych objasniajacych. Wspólczynniki determinacji R2 =0,999748597, wskazuje na to, ze model wyjasnia ksztaltowanie sie zmiennej objasnianej w ponad 99%, co jest bardzo zadawalajacym wynikiem. O dobrym dopasowaniu modelu do danych empirycznych moze swiadczyc ponadto wykres linii regresji (Rys. 7.18). Punkty wyznaczone z modelu oraz wyznaczone droga doswiadczalna ukladaja sie wzdluz linii prostej. Rys. 7.18 Wykres wartosci przewidywanych wzgledem obserwowanych 118 Tabela 7.8 zawiera wartosci empiryczne Y oraz szacowane na podstawie modelu Y' wraz z wartosciami statystyk. Odleglosc Mahalanobisa jest to uogólnienie odleglosci euklidesowej uwzgledniajace skorelowanie zmiennych. Miara ta pozwala ustalic, czy dana obserwacje mozna zaliczyc do odstajacych. Usuniete wartosci resztowe jest to reszta dla danej obserwacji, obliczana tak, jakby ten przypadek nie byl wlaczony do analizy regresji. Odleglosc Cooka jest to miara stopnia zmiany wspólczynników regresji, gdyby dany przypadek pominac w obliczeniach wspólczynników. W wartosciach zawartych w Tabela 7.8 nie zauwaza sie istotnie odstajacych wartosci, co potwierdza slusznosc wyestymowanych wspólczynników dla wszystkich obserwacji poddanych analizie. Tabela 7.8 Zestawienie wartosci empirycznych Y oraz szacowanych na podstawie modelu Wartosc obserwowana MIN MAX Srednia Mediana 0,0800 0,2300 1,5900 4,7800 11,7900 21,7300 33,9100 56,4400 82,1700 158,1000 0,0800 158,1000 37,0820 16,7600 Wartosc przewidywana Reszta Standar. Standar. Przewid. Reszta 0,3833 -0,3033 0,7750 -0,5450 1,8640 -0,2740 4,8196 -0,0396 10,8831 0,9069 21,2955 0,4345 35,4516 -1,5416 55,2078 1,2322 81,4977 0,6723 158,6424 -0,5424 0,3833 -1,5416 158,6424 1,2322 37,0820 0,0000 16,0893 -0,1568 -0,7265 -0,7188 -0,6972 -0,6387 -0,5187 -0,3125 -0,0323 0,3588 0,8793 2,4066 -0,7265 2,4066 0,0000 -0,4156 Blad std wartosci Odleglosc przewidywanej Mahaln. -0,3244 -0,5830 -0,2931 -0,0424 0,9701 0,4648 -1,6490 1,3180 0,7192 -0,5802 -1,6490 1,3180 0,0000 -0,1677 0,5163 0,4017 0,4038 0,4123 0,3380 0,6928 0,5246 0,3608 0,4379 0,8183 0,3380 0,8183 0,4906 0,4251 1,8452 0,7618 0,7788 0,8508 0,2761 4,0429 1,9335 0,4403 1,0745 5,9960 0,2761 5,9960 1,8000 0,9626 Usuniete Reszty Odleglosc Cooka -0,4364 -0,6685 -0,3368 -0,0492 1,0432 0,9639 -2,2499 1,4478 0,8613 -2,3202 -2,3202 1,4478 -0,1745 -0,1930 0,0222 0,0315 0,0081 0,0002 0,0542 0,1946 0,6079 0,1191 0,0621 1,5732 0,0002 1,5732 0,2673 0,0582 Wynik statystyki F (Snedecora) df F(2,7)= 13137 przy poziomie istotnosci p p<0,000001 wykazuja iz parametry modelu sa "lacznie" istotne statystycznie, co potwierdza tym samym duza istotnosc statystyczna. Badanie autokorelacji skladnika losowego (reszt) Test Durbina-Watsona sluzy do testowania hipotezy o wystepowaniu lub braku autokorelacji skladnika losowego, tzn., czy istnieje liniowa zaleznosc pomiedzy odchyleniami losowymi z róznych jednostek czasu. Wartosci tego skladnika powinny pochodzic z przedzialu <0,4>. Dla modelu wartosc wynosi 2,816289, co swiadczy o wystepowaniu autokorelacji ujemnej. Okreslenie ksztaltowania sie poziomu reszt jest wazne z powodu tego, ze rozklad reszt odbiegajacy znacznie swym rozkladem od normalnego wskazuje na wystepowanie wartosci ekstremalnych zmiennej objasnianej, co tlumaczyc mozna jako zwiekszone prawdopodobienstwo wystepowania wartosci nietypowych (losowych), nieporównywalnie 119 duzych lub malych w stosunku do pozostalych. Dla zmiennej objasnianej reszty surowe nie wykraczaja poza dwukrotna wartosc odchylenia standardowego. Czyli dopasowanie funkcji regresji liniowej mozna uznac za dobre. Dla zadania odpowiedzialnego za rysowanie wykresu Lapunowa okreslono nastepujace rozdzielczosci bitmapy: 100x100, 250x250, 500x500, 750x750, 1000x1000, 1500x1500, 2000x2000, 3000x3000, które uwzgledniono w modelowaniu jako zmienna niezalezna PIKSELE. Jako zmienne istotne dla badanego problemu wskazano takze wielkosc porcji obliczen, czyli podzial na odpowiednia ilosc paczek - zmienna niezalezna PACZKA. Równiez dla tego przykladu ogólny rozklad wartosci wskazuje na mozliwosc zastosowania regresji liniowej. Taki tez modul uruchomiany zostal w programie STATISTICA. Rys. 7.19 przedstawia podsumowanie regresji wygenerowane przez program dla zmiennej zaleznej CZAS. Analizujac ponizsze zestawienie widac, ze do modelu statystycznego opisujacego czas wykonania programu w srodowisku rozproszonym wykorzystano tylko jedna zmienna, mianowicie PIKSELE. Oznacza to, ze opis matematyczny bedacy funkcja tej zmiennej przyjmuje postac: CZAS = 5,146369 + 0,000057 * PIKSELE ( 7.25) Weryfikacja poprawnosci utworzonego modelu sprowadza sie do analizy wskazników i statystyk generowanych przez program. Wspólczynnik R2 wynosi 0,99756463, co stanowi wartosc bliska jednosci i wskazuje na bardzo dobre odwzorowanie wartosci czasu osiagnietego w wyniku przeprowadzenia doswiadczenia do wartosci uzyskanych przy stosowaniu modelu statystycznego. Rys. 7.19 Podsumowanie regresji – zmienna zalezna CZAS, zmienne niezalezne PIKSELE, PACZKA Wspólczynnik korelacji wielorakiej R= 0,99912985 wskazuje na to, ze ksztaltowanie sie wartosci zmiennej objasnianej podyktowane jest niemalze calkowicie ksztaltowaniem sie wartosci zmiennych objasniajacych. 120 Wspólczynniki determinacji R2 = 0,99756463 informuje, ze model wyjasnia ksztaltowanie sie zmiennej objasnianej w ponad 99%, co jest bardzo zadawalajacym wynikiem. Wynik statystyki F (Snedecora) df F(2,5)= 1434,7 przy poziomie istotnosci p p<0,000001 potwierdza duza istotnosc statystyczna i poprawnosc wygenerowanych wspólczynników modelu. Jako potwierdzenie slusznosci modelu na Rys. 7.20 przedstawiono zestawienie wartosci przewidywanych wzgledem obserwowanych. Wartosci te ukladaja sie wzdluz linii prostej, co wskazuje na slusznosc utworzonego modelu. Rys. 7.20 Wykres wartosci przewidywanych wzgledem obserwowanych W Tabela 7.9 przedstawiono srednie wartosci wspólczynników wygenerowanych przez program STATISTICA. Tabela 7.9 Srednie wartosci parametrów Wartosc obserwowana Wartosc przewidywana Reszta Blad std wartosci przewidywanej Odleglosc Mahaln. Usuniete Reszty Odleglosc Cooka Wartosci srednie 122,8387 122,8387 0,0000 5,0535 1,7500 -5,0183 0,9490 Po utworzeniu modeli prognozujacych czas wykonania przystapiono do utworzenia modeli opisujacych wartosci przyspieszenia. Przyspieszenie wykonania programu dla aplikacji wykonywanych w srodowisku rozproszonym definiowane jest jako stosunek czasów sekwencyjnych (dla kazdego komputera) przez czas obliczen rozproszonych. Nie rosnie ono wraz ze wzrostem zadania, 121 lecz dazy do pewnej stalej wartosci (wartosc ta dazy do liczby procesorów). Tak wiec zwiekszenie przyspieszenia obliczen jest mozliwe przede wszystkim poprzez dolaczenie kolejnej maszyny do systemu rozproszonego. Ponadto wplyw na jego wartosc maja: heterogenicznosc architektury maszyn, czas komunikacji, dobór wielkosci paczki obliczen, zmienne obciazenie komputera wywolane procesami systemowymi. Jak wczesniej wspomniano wartosci przyspieszenia nie wykazuja trendu liniowosci wiec do tworzenia modelu zastosowano regresje nieliniowa. Podczas analizy, przy pomocy programu STATISTICA, dla zadania liczacego calke potrójna za pomoca zlozonej metody Simpsona wybrano nastepujace kombinacje zmiennych: KROK, PACZKA, kwadraty oraz pierwiastki tych wielkosci. Rys. 7.21 zawiera podsumowanie regresji dla zmiennej zaleznej, czyli przyspieszenia wykonania aplikacji rozproszonej w stosunku do programu wykonanego sekwencyjnie oznaczonej przez E. Na tej podstawie stworzono model postaci (7.26). PRZYSPIESZ ENIE = 12,0498468 + 1,18763E - 07 * KROK - 0,673518951 * PACZKA - 1,31597E - 15 * KROK 2 - 15270,54662 *1 KROK ( 7.26) + 0,012792988 * PACZKA - 35,90601427 * 1 PACZKA 2 Rys. 7.21 Podsumowanie regresji – zmienna zalezna PRZYSPIESZENIE, zmienne niezalezne KROK, PACZKA oraz ich kombinacje Analizujac powyzszy model i wskazniki generowane przez program STATISTICA nalezy dokonac weryfikacji utworzonego równania. Wspólczynnik korelacji wielorakiej dla zmiennych przedstawionych na Rys. 7.21 wyniósl 0,98536154 i wskazuje na prawidlowe ksztaltowanie sie wartosci zmiennej objasnianej na podstawie zmiennych empirycznych. Wspólczynniki determinacji R2 = 0,91281211 informuje o odpowiednim odwzorowaniu danych empirycznych w utworzonym modelu. W celu zminimalizowania liczby zmiennych niezaleznych utworzono kolejne modele zawarte w Tabela 7.10 poslugujac sie regresja krokowa wsteczna oraz postepujaca. 122 Tabela 7.10 Modele przyspieszenia dla aplikacji liczacej calke potrójna POSTAC MODELU WSPÓLCZYNNIK KORELACJI / WSPÓLCZYNNIK DETERMINACJI PRZYSPIESZ ENIE = 4,7 − 15,1* 1 PACZKA R=0,93838192 R2 =0,84643509 − 12554,5 * 1 KROK PRZYSPIESZ ENIE = 3,121132315 + 4,65916E - 08 * KROK R=0,97017357 - 3,2516E - 16 * KROK 2 - 20391,56872 * 1 KROK R2 =0,91185512 Model, za pomoca którego charakteryzowac mozna przyspieszenie aplikacji odpowiedzialnej za generowanie wykresów Lapunowa w oparciu o dwuparametrowy diagram bifurkacji oraz opis regresji uzyty do ich budowy przedstawia równanie (7.27). Do zmiennych niezaleznych zaliczono PIKSELE, PACZKA, kwadraty oraz odwrotnosci tych wartosci. PRZYSPIESZ ENIE = 0,42167865 + 0,00000005 * PIKSELE + 0,08925101 * PACZKA - 0,00000001 * PACZKA * PIKSELE - 4072,53436178 * 1 PIKSELE + 18,79979329 * 1 PACZKA ( 7.27) Wspólczynnik determinacji wyniósl 0,8510803. W celu uzyskania lepszego dopasowania, wiec wspólczynnika blizszego jednosci zastosowano inna kombinacje zmiennych mianowicie: PIKSELE, PACZKA, odwrotnosci tych wartosci oraz ich iloczyn. PRZYSPIESZ ENIE = 0,42167865 + 0,00000005 * PIKSELE + 0,08925101 * PACZKA - 0,00000001 * PACZKA * PIKSELE - 4072,53436178 * 1 PIKSELE + 18,79979329 * 1 PACZKA ( 7.28) Jako zmienne istotne dla danego równania wybrano cztery sposród pieciu zmiennych niezaleznych. Z analizy (Rys. 7.22 ) wynika iz zmienna PIKSELE nie wplywa istotnie na postac modelu, który uproscic mozna do zapisu (7.29). O nieistotnosci wartosci wspólczynnika przy zmiennej PIKSELE swiadczy poziom p=0,356814, który jest wiekszy od przyjetego poziomu α=0,05. Wspólczynnik determinacji dla omawianego modelu wynosi 0,92468838, co wskazuje, ze model wyjasnia ksztaltowanie sie zmiennej objasnianej w ponad 92%, co stanowi wartosc akceptowalna do zastosowania w praktyce. PRZYSPIESZ ENIE = 0,42167865 + +0,08925101* PACZKA - 0,00000001 * PACZKA * PIKSELE - 4072,53436178 * 1 PIKSELE + 18,79979329 *1 PACZKA ( 7.29) 123 Rys. 7.22 Podsumowanie regresji zmienna zalezna PRZYSPIESZENIE, zmienne niezalezne PIKSELE, PACZKA, iloczyn oraz odwrotnosci zmiennych Na podstawie wyzej zaprezentowanych modeli szacowac mozna przyspieszenie wykonywania aplikacji. Do budowy modelu uzyto tylko kilku z czynników charakteryzujacych aplikacje . Mimo to wartosci wskazników poprawnosci modelu sa zadawalajace, co potwierdza mozliwosc budowy modeli w oparciu o metodyke zaprezentowana w pracy. Zwiekszenie czasów przestoju uzyskuje sie poprzez przyjecie zbyt malej liczby paczek. Jest to alternatywa dla dodatkowych nakladów obliczen i komunikacji dla wiekszej ilosci uruchamianych zdalnych obiektów. Ponizej przedstawiono modele statystyczne, które posluzyc moga do prognozowania czasu przestoju. Po dokonaniu analizy rozkladu zmiennych podjeto decyzje utworzeniu róznych postaci modeli regresyjnych, celem ich porównania. Wyniki estymacji zmiennej zaleznej, czyli czasu przestoju oraz róznych kombinacji zmiennych niezaleznych KROK i PACZKA dla zadania liczacego calke potrójna przedstawia Tabela 7.11. 124 Tabela 7.11 Modele dla czasu przestoju aplikacji liczacej calke potrójna RODZAJ REGRESJI POSTAC MODELU WSPÓLCZYNNIK KORELACJI / WSPÓLCZYNNIK DETERMINACJI regresja PRZESTOJ = -3,1621415 - 0,0000001 * KROK R=0,97289619 wielokrotna, 2 + 0,5081045 * PACZKA + 0,00000000 * KROK zmienne - 0,0096048 * PACZKA 2 KROK, R2 =0,90374861 PACZKA, ( 7.30) KROK 2 , PACZKA2 regresja R=0,94772595 PRZESTOJ = 0,560640 - 0,0000001 * KROK 2 + wielokrotna, 0,002397 * PACZKA 2 zmienne R2 =0,86909433 KROK 2 , ( 7.31) PACZKA2 regresja R=0,92789 PRZESTOJ = -2,60436 + 0,0000001* KROK segmentowa + 0,5033186 * PACZKA + 2,997208 - 0,0000001 * KROK + 0,50327 * PACZKA ( 7.32) Wszystkie modele charakteryzuja sie zadawalajacymi wskaznikami, informujacymi o poprawnosci wygenerowanych wspólczynników. Zestawienie wielkosci uzyskanych z doswiadczenia oraz prognozowanych na podstawie modeli statystycznych przedstawia Tabela 7.12. W wartosciach przewidywanych podano wyniki regresji segmentowej oraz regresji wielokrotnej. Rozlozenie i trend wyzej opisanych wartosci zawiera Rys. 7.23. Tabela 7.12 Wartosci przewidywane oraz obliczone na podstawie modelu dla aplikacji liczacej calke potrójna Wartosc przewidywana Regresja Regresja Wartosc obserwowana segmentowa wielokrotna 0,583333015 0,597697139 0,57707661 2,797101021 2,773422241 2,89601517 3,085953951 3,094850779 3,10553122 3,478382111 3,467704296 3,38466573 3,320893049 3,674431324 3,29572463 3,515415907 4,355295658 3,69451499 4,848814964 4,244852066 4,40779734 4,478797913 4,090716839 4,83361197 4,45612812 3,885607243 4,37149143 3,923108101 4,299869061 3,92149925 125 6 5 4 3 2 1 Wartosc obserwowana Regresja segmentowa Regresja wielokrotna 0 Rys. 7.23 Wykres wartosci przewidywanych oraz obliczonych z modelu dla aplikacji liczacej calke potrójna Przeprowadzajac analogiczne rozwazania dla aplikacji rysujacej wykres Lapunowa wygenerowano podsumowanie regresji opisujacej wspólczynniki modelu odpowiedzialnego za prognozowanie maksymalnego przestoju z wykorzystaniem regresji wielokrotnej oraz regresji segmentowej, a wyniki zawarto w Tabela 7.13. Tabela 7.13 Modele czasu przestoju aplikacji generujacej wykres Lapunowa RODZAJ REGRESJI POSTAC MODELU PRZESTOJ = 222,105605 + 0,000013 * PIKSELE regresja wielokrotna, - 11,040426 * PACZKA + 0,00000000 * PIKSELE 2 + 0,151041 * PACZKA 2 zmienne 674,969180 * 1 PIKSELE - 1268,103538 * 1 PACZKA PIKSELE, PACZKA, ( 7.33) PIKSELE2 , PACZKA2 , 1/PIKSELE, 1/PACZKA regresja PRZESTOJ = 0,054725 + 0,0000016 * PIKSELE + 0,000675 * PACZKA segmentowa, - 0,000000 * PIKSELE * PACZKA + 0,592129 − 0,000001 * PIKSELE zmienne KROK, + 0,525392 * PACZKA + 0,000000 * PIKSELE * PACZKA PACZKA, KROK*PACZKA ( 7.34) regresja segmentowa zmienne KROK, PACZKA PRZESTOJ = −0,940667 + 0,000001 * PIKSELE + 0,158926 * PACZKA − 0,09844 − 0,000001* PIKSELE + 0,525306 * PACZKA ( 7.35) Wspólczynnik determinacji dla równania (7.33) wyniósl 0,97383682. Analize dokonano takze przy pomocy regresji segmentowej. Wedlug tej metody stworzono modele 126 (7.34), gdzie jako zmienne niezalezne wybrano PIKSELE, PACZKA, oraz iloczyn tych wielkosci oraz (7.35), gdzie jako zmienne niezalezne wybrano PIKSELE oraz PACZKA. Wspólczynniki korelacji dla regresji segmentowej wyniosly odpowiednio: R=0,9999 oraz R=0,96547. Zestawienie wartosci przewidywanych oraz obserwowanych dla (7.34) zawiera Rys. 7.24. Rys. 7.24 Zestawienie wartosci przewidywanych i obserwowanych dla regresji segmentowej Podsumowujac powyzsze rozwiazania mozna stwierdzic, ze modele oszacowane za pomoca programu STATISTICA nalezycie opisuja zmienna objasniana. Czas wykonania programu w srodowisku rozproszonym (dla obydwu badanych aplikacji) opisywany jest za pomoca jednej zmiennej objasniajacej, a mianowicie: liczba kroków calkowania – zmienna KROK - przy obliczaniu calki potrójnej oraz rozdzielczoscia obrazu – zmienna PIKSELE w przypadku programu generujacego wykres Lapunowa. Dysponujac wartosciami parametrów (Rys. 7.17 oraz Rys. 7.19) mozna stwierdzic jak ksztaltuje sie czas wykonania programu wraz ze zmiana wartosci poszczególnych zmiennych objasniajacych. Jesli zaklada sie zmiane wartosci jednej zmiennej i niezmiennosc pozostalych, wówczas nalezy spodziewac sie róznicy wynikajacej z wartosci standaryzowanego BETA wspólczynnika regresji liniowej. O dobrym dopasowaniu modelu do danych empirycznych moga swiadczyc ponadto wykresy linii regresji (Rys. 7.18 oraz Rys. 7.20). Podobne wnioski wysnuc mozna dla modeli opisujacych przyspieszenie. Stworzono, z wykorzystaniem róznych metod estymacji, modele regresyjne, na ich podstawie wygenerowano wartosci zmiennej wyjsciowej. Kazdy z modeli cechuje sie wysokim stopniem dopasowania danych z doswiadczenia do wartosci prognozowanych na podstawie utworzonych równan. Podobnie modele do szacowania maksymalnego czasu przestoju wskazuja na poprawnosc modelowania . Weryfikacja modeli wskazuje mozliwosc do korzystania z modeli i prognozowania na ich podstawie wartosci z dokladnoscia akceptowalna do zastosowania w praktyce. 127 7.5.4 Analiza kosztów komunikacji w zaleznosci od protokolu i metody dekompozycji dziedzinowej W rozdziale zostana przedstawione modele statystyczne do prognozowania kosztu komunikacji wynikajacego z korzystania ze zdalnych obiektów. Uwzglednione zostana protokoly TCP i HTTP, które wykorzystuje .NET Remoting. W technologii Remoting mozna stosowac dwa typy kanalów komunikacyjnych laczacych klienta z obiektem serwerowym: kanal TCP i kanal HTTP. W kanale TCP dane przesylane sa w obu kierunkach za pomoca wlasnego binarnego protokolu komunikacyjnego. Kanal HTTP jest przykladem zastosowania w .NET otwartych oraz dla standardowych technologii. Komunikacja za pomoca kanalu HTTP jest wolniejsza niz za pomoca kanalu TCP, gdyz dane w kanale HTTP przesylane sa w postaci tekstu XML. Wybierajac protokól komunikacyjny w tworzeniu aplikacji rozproszonej nalezy uwzglednic jego wydajnosc oraz skutecznosc. Ponadto wymagane jest takze okreslenie przepustowosci lacza, za pomoca którego komputer zostaje podlaczony do systemu rozproszonego. Zbyt wolne polaczenie moze spowodowac, iz czas poswiecony komunikacji bedzie niedopuszczalnie wydluzal laczny czas obliczen rozproszonych. Program odpowiedzialny za rysowanie wykresu Lapunowa zbadano pod katem kosztów komunikacji wyrazonej w [kB] dla protokolów TCP i HTTP. Porównanie kosztów komunikacji dla obydwu protokolów przedstawia Tabela 7.14. Tabela 7.14 Wartosci kosztów komunikacji dla protokolów TCP oraz HTTP Liczba pikseli 0 10000 62500 250000 562500 1000000 2250000 4000000 9000000 Komunikacja [kB] TCP HTTP 0 0 10 144,58 52,92 881,9 206,14 3488,72 464,6 7822,28 821,9 14031,16 1851,58 31619,8 3294,6 55838,72 7425,4 125726,7 Na podstawie danych, z wykorzystaniem liniowej funkcji aproksymujacej, w programie STATISTICA dokonano estymacji za pomoca regresji wielokrotnej i otrzymano wspólczynniki modelu okreslajacego komunikacje w [kB] dla TCP (7.36) oraz HTTP (7.37). TCP = −0,659220 + 0,000825 * PIKSEL ( 7.36) 128 HTTP = 21,68898 + 0,01397 * PIKSEL ( 7.37) Analiza utworzonych modeli wykazala ich poprawnosc. Dla obydwu przypadków wspólczynniki determinacji, czyli róznica 1- ϕ sa wieksze niz 0,999999, co wskazuje na to, 2 ze model wyjasnia ksztaltowanie sie zmiennej objasnianej w ponad 99%, co jest bardzo zadawalajacym wynikiem. Wyniki statystyki F (Snedecora) F(1,7) sa duzo wyzsze od wartosci granicznych, a poziomy p<0,000001, co swiadczy, ze parametry modelu wykazuja duza istotnosc statystyczna. Tabela 7.15 zawiera wygenerowane modele kosztów komunikacji przychodzacej i wychodzacej dla protokolów TCP oraz HTTP. Tabela 7.15 Modele kosztów komunikacji przychodzacej i wychodzacej dla protokolów TCP oraz HTTP Komunikacja Protokól TCP Protokól HTTP WE = 1,42647 + 0,00081 * PIKSEL WE = 24,58351 + 0,01365 * PIKSEL przychodzaca ( 7.38) Komunikacja ( 7.39) WY = 0,767250 + 0,000017 * PIKSEL WY = −2,89612 + 0,00032 * PIKSEL wychodzaca ( 7.40) ( 7.41) Modele (7.42) oraz (7.43) opisuja wplyw wielkosci paczki na koszty komunikacji dla protokolów TCP oraz HTTP. TCP = −2,01846 + 0,80595 * PACZKA − 0,00314 * PACZKA2 ( 7.42) HTTP = 0,845769 + 2,020771* PACZKA − 0,005116 * PACZKA2 ( 7.43) Przytoczone modele moga posluzyc do szacowania czasu komunikacji, w zaleznosci od uzytego protokolu komunikacji. Okreslenie czasów komunikacji bez koniecznosci uruchamiani aplikacji moze wskazac najbardziej korzystny wariant uruchomienia. Moze to spowodowac oszczednosc czasu. W ten sposób wyeliminowac mozna zbedne obciazenie systemów. Analiza podzialu seryjnego jest to metoda dekompozycji obliczen polegajacej na podziale zadania na wiele paczek, które przekazywane sa poszczególnym komputerom. Metoda ta zwieksza drobnoziarnistosc obliczen. Przeliczenie kazdej paczki wiaze sie z 1 1 1 nakladem komunikacji oraz obliczen. Zadanie numeryczne ∫∫∫ e xyz dzdydx zostaje rozwiazane 0 0 0 129 dla róznej ilosci paczek. Calka potrójna zostaje przeliczona w 250x250x250 krokach. Poza tym zbadano metode podzialu zadania dla protokolów TCP oraz HTTP. Analiza kosztów komunikacji i nakladu obliczen wielokrotnych wywolan zdalnych obiektów zawarta jest w Tabela 7.16. Tabela 7.16 Koszt komunikacji i nakladu obliczen wielokrotnych wywolan zdalnych obiektów TCP Liczba paczek 10 25 50 75 100 125 Koszt komunikacji [kB] Czas [s] 6,85 14,95 29,58 41,4 48,3 49 22,27 20,13 20,06 20,12 20,17 20,13 HTTP Koszt komunikacji [kB] 20,99 47,6 91,2 117 158,9 171 Czas [s] 21,86 20,71 21,74 21,59 22,01 21,34 Na podstawie Tabela 7.16 w programie STATISTICA stworzono modele, za pomoca których mozliwe jest prognozowanie czasu komunikacji uzaleznionego od podzialu na okreslona liczbe paczek dla protokolów TCP oraz HTTP. Model dla protokolu TCP (7.44) utworzony zostal za pomoca regresji wielokrotnej. Jako zmienne niezalezne uzyte do jego budowy wybrano PACZKA, kwadrat tej wartosci oraz jej odwrotnosc. Analiza wykazala istotnosc wszystkich zmiennych, a wspólczynnik korelacji R osiagnal wartosc 0,99864269. Statystyka F- Snedecora F(3,2)=245,08 przekracza wartosc graniczna, a poziom p<0,0407 jest mniejszy od zadanego poziomu istotnosci α=0,05, co potwierdza istotnosc wspólczynników wygenerowanego modelu. Wspólczynnik determinacji R2 =0,99321807 swiadczy o bardzo dobrym odwzorowaniu wartosci empirycznych w utworzonym modelu. CZAS _ TCP = 17,53141 + 0,0409 * PACZKA − 0,00018 * PACZKA2 + 43,39558 *1 PACZKA ( 7.44) Model (7.45) sluzy do prognozowania czasu komunikacji uzaleznionego od podzialu na okreslona liczbe paczek dla protokolu HTTP. Przy tworzeniu modelu posluzono sie regresja segmentowa i zmienna niezalezna PACZKA. Wspólczynnik korelacji wyniósl 0,95631, a determinacji 0,91453, co potwierdza poprawnosc utworzonego modelu i akceptowalnosc go do zastosowan w praktyce. CZAS _ HTTP = 20,55250 + 0,006300 * PACZKA + 21,76211 + 0,000645 * PACZKA Na podstawie zaprezentowanych modeli mozliwe jest okreslanie ( 7.45) kosztów komunikacji. Wskazniki dopasowania wartosci uzyskanych na podstawie modelu do wartosci 130 doswiadczalnych sa odpowiednie, co potwierdza poprawnosc modeli i daje mozliwosc prognozowania na ich podstawie parametrów wydajnosci rzeczywistych aplikacji. Utworzone modele moga pomóc w podjeciu decyzji odnosnie warunków i parametrów uruchamiania programu, uwzgledniajac parametry uruchomienia dostepne z poziomu uzytkownika systemu. Korzystanie z modeli pozwoli na zorientowanie sie jak ksztaltowac sie beda wskazniki przesylu danych w zaleznosci od róznych protokolów komunikacji. 7.6 Wykorzystanie modeli do prognozowania wydajnosci aplikacji rozproszonej Na podstawie modeli zaprezentowanych w pracy mozna szacowac czas wykonania aplikacji rozproszonych, efektywnosc oraz przyspieszenie w zaleznosci od dostepnych czynników sprzetowych i programowych. Ponizej na podstawie wczesniej omówionych modeli dokonano prognozy parametrów aplikacji dla przykladowych wartosci zmiennych wejsciowych. W rozdziale 7.1 zaprezentowano modele statystyczne sluzace do opisu wydajnosci aplikacji odpowiedzialnej za rozwiazywanie ukladów równan rekurencyjnych. Jako zmienne istotne dla modelu wybrano liczbe komputerów, ilosc równan, parametr oraz rzad macierzy. Na podstawie modelu (7.2) prognozowac mozna czas wykonania aplikacji rozwazajac dwie zmienne wejsciowe, mianowicie ilosc równan oraz ilosc procesorów. Korzystajac z tego równania obliczone zostaly czasy wykonania dla rzedu macierzy 20 oraz 60 z wykorzystaniem 15, 8 oraz 4 komputerów (Tabela 7.17). Tabela 7.17 Prognozowany czas wykonania aplikacji liczacej uklady równan rekurencyjnych Rzad Ilosc Czas macierzy komputerów wykonania 20 20 20 60 60 60 15 0,029223 4 0,076281 8 0,059169 15 0,086049 4 0,169082 8 0,160168 Korzystajac z modelu (7.4) okreslic mozna efektywnosc, a z modelu (7.5) wnioskowac o przyspieszeniu w wykonaniu programu. Wartosci uzyskane podczas modelowania dla przykladowych parametrów wejsciowych przedstawia Tabela 7.18. 131 Tabela 7.18 Prognozowana efektywnosc oraz przyspieszenie aplikacji liczacej uklady równan rekurencyjnych Rzad Ilosc macierzy komputerów Efektywnosc Przyspieszenie 10 20 30 50 10 20 30 50 10 20 30 50 15 15 15 15 4 4 4 4 8 8 8 8 0,578276 0,633718 0,594378 0,443406 0,748836 0,887153 0,760921 0,998474 0,704193 0,740357 0,804096 0,971191 9,133111 9,35138 9,188611 5,206814 3,569303 3,677261 3,768402 3,925368 7,797072 4,142726 7,852572 7,142765 Równanie (7.11) sluzy do okreslania efektywnosci aplikacji odpowiedzialnej za mnozenie macierzy . Podczas estymacji wspólczynników modelu wyeliminowano zmienna zwiazana z rozmiarem macierzy (program testowany byl dla rozmiaru macierzy 300x300, 400x400 oraz 500x500) i pozostawiono zmienna okreslajaca ilosc zaangazowanych procesorów. Efektywnosc dla zadania wykonywanego z uzyciem 3 procesorów wyniosla 0,4, dla szesciu procesorów wyniosla 0,15, zas dla dziewieciu procesorów 0,1. tak wiec korzystajac z modelu mozna stwierdzic, ze przy danym rozmiarze macierzy wykorzystanie srodowiska rozproszonego zlozonego z serwerów JOTA1, JOTA2 oraz JOTA3 nie jest celowym, gdyz procesory wykorzystane sa w niewielkim stopniu. Za pomoca modeli (7.20), (7.21) oraz (7.22) prognozowac mozna czas uruchomienia aplikacji z wykorzystaniem serwerów JOTA1, JOTA2 oraz JOTA3 dostepnych na WI PS. Szacunkowe czasy zawarte sa w Tabela 7.19. Tabela 7.19 Prognozowane czasy wykonania aplikacji rozwiazujacej uklady równan Rozmiar Ilosc macierzy procesorów 300 300 300 400 400 400 500 500 500 3 6 9 3 6 9 3 6 9 JOTA1 51057,88 184479 92540,72 47589,77 68331,2 89072,62 44121,67 64863,09 236808 JOTA2 44980 184479 112306 49185 58458 69976 49273 73399 236808 JOTA3 82930,62 184479 89190,5 76438,18 79568,13 82698,06 69945,74 73075,69 236808 132 Rozdzial 7.5 poswiecony zostal modelom statystycznym wydajnosci aplikacji w srodowisku .NET Remoting. Na podstawie modeli (7.24) oraz (7.25) prognozowac mozna czas wykonania przykladowych aplikacji w tym srodowisku. Modele zostaly zredukowane i jako parametry równania wybrano zmienna KROK dla aplikacji liczacej calke oraz zmienna PIKSELE dla aplikacji generujacej wykres Lapunowa. Wykorzystujac model (7.24) wiadomym jest, ze czas wykonania aplikacji, przy uwzglednieniu zmiennej KROK = 1000000, wynosi 1,86, a dla KROK = 100000000 wynosi 124,45. Podobnych prognoz dokazac mozna z wykorzystaniem modelu (7.25). Przy uwzglednieniu zmiennej PIKSELE = 10000, wynosi 4,19, dla KROK = 1000000 wynosi 58,7, a dla zmiennej KROK = 10000000 wynosi 571,48. Okreslajac koszty komunikacji programu generujacego wykres Lapunowa dla protokolów TCP oraz HTTP posluzyc mozna sie modelami (7.36) oraz (7.37). Na ich podstawie okreslic mozna, ze dla liczby pikseli równej 1000000 protokól TCP wykorzystuje 824 kB, a protokól HTTP 1399 kB. Gdyby liczba pikseli wzrosla do 5000000 komunikacja wynioslaby odpowiednio 4123 kB oraz 69866 kB. W rozdziale pokazano prognozowanie na podstawie modeli charakteryzujacych aplikacje rozproszone. Dzieki szacowaniu wartosci na podstawie modeli mozna wybrac zmienna najbardziej lub najmniej znaczaco wplywajaca na badana wielkosc wyjsciowa. Przy zastosowaniu modeli okreslac mozna zestawy parametrów wejsciowych, dla których zmienna objasniana przyjmuje wartosc akceptowalna przez uzytkownika systemu. Mozliwosc zorientowania sie co do charakterystyki wydajnosciowej aplikacji moze byc atutem dla osób zainteresowanych zakupem oprogramowania wykorzystujacego srodowisko rozproszone. Uzytkownik moze okreslic wartosci przyspieszenia , efektywnosci i podjac decyzje, czy w warunkach posiadanej bazy sprzetowej, zastosowanie systemu przyniesie wymierne korzysci. 7.7 Podsumowanie W rozdziale 7 dokonano weryfikacji metodyki zaproponowanej w rozdziale 6 w oparciu o aplikacje dzialajace w srodowisku rozproszonym. Rozdzial 7.1 zawiera analize wydajnosci aplikacji odpowiedzialnej za rozwiazywanie ukladów równan rekurencyjnych. Stworzono w nim modele opisujace czas wykonania programu w srodowisku rozproszonym, przyspieszenie oraz efektywnosc w oparciu o zmienne wejsciowe którymi byly: ilosc komputerów, ilosc niewiadomych, rzad macierzy oraz parametr wplywajacy na jakosc rozwiazania. 133 W punkcie 7.2 analizie poddano wplyw opisanego parametru na czas wykonania programu oraz efektywne wykorzystanie dostepnych procesorów. Parametr ten okresla liczbe wierszy w macierzach, które sa wykorzystywane do rozwiazania równania. W zaprezentowanych modelach jako zmienne niezalezne wykorzystano takze rzad macierzy oraz ilosc procesorów. Rozdzial 7.3 poswiecony zostal analizie modeli, za pomoca których prognozowac mozna czas wykonania mnozenia macierzy w heterogenicznym srodowisku rozproszonym. Zaprezentowano cechy srodowiska w którym przeprowadzono badania oraz utworzono modele efektywnosci oraz przyspieszenia. W rozdziale 7.4 dokonano analizy i utworzono modele dla aplikacji rozwiazujacej uklady równan liniowych metoda Gaussa-Seidla. Zaprezentowano modele czasu wykonania dla okreslonych srodowisk rozproszonych dostepnych na Wydziale Informatyki PS. Punkt 7.5 poswiecono analizie modeli statystycznych dla aplikacji dzialajacych w srodowisku rozproszonym wyposazonym w trzy komputery osobiste o róznej mocy obliczeniowej polaczonych siecia lokalna. Do testowania wydajnosci uzyto dwóch aplikacji przeprowadzajacych obliczenia numeryczne w srodowisku rozproszonym, które charakteryzuja sie duzym zapotrzebowaniem na moc obliczeniowa. W rozdziale 7.5.3 dokonano analizy wplywu rozmiaru problemu na czas wykonania i przyspieszenie obliczen równoleglych. Zweryfikowano modele statystyczne czasu wykonania programu w zaleznosci od liczby kroków i ilosci paczek dla aplikacji liczacej calke potrójna oraz w zaleznosci od rozdzielczosci oraz ilosci paczek dla wykresu Lapunowa. Zaprezentowano równania sluzace okresleniu wartosci przyspieszenia, gdzie porównano modele z róznymi kombinacjami zmiennych i omówiono wspólczynniki determinacji i zakres ich stosowalnosci. Przedstawiono takze modele statystyczne dla maksymalnego czasu przestoju wykonane za pomoca róznych metod regresji (wieloraka, segmentowa). Rozdzial 7.5.4 zawiera analize kosztów komunikacji zaleznosci od protokolu i metod dekompozycji dziedzinowej. Opisane zostaly modele wydajnosci protokolów TCP oraz HTTP w zaleznosci od rozdzielczosci generowanego obrazu. W punkcie 7.6 przedstawiono prognozowanie wartosci charakterystyki wydajnosciowej omawianych aplikacji rozproszonych Zaprezentowane w rozdziale 7 modele charakteryzuja sie wysokimi poziomami wspólczynników determinacji, oraz innych charakterystyk swiadczacych o prawidlowym odwzorowaniu danych empirycznych za pomoca modeli. Daje to podstawe do prognozowania wartosci za pomoca stworzonego opisu matematycznego bez koniecznosci uruchamiania 134 aplikacji. Za pomoca zaprezentowanych modeli mozna zorientowac sie, które z czynników najbardziej istotnie wplywaja na badana zmienna wyjsciowa. Pomimo ujecia w modelu tyko wybranych czynników majacych wplyw na wydajnosc aplikacji, wspólczynniki dopasowania modeli do danych empirycznych sa bardzo wysokie, co potwierdza slusznosc modelowania na podstawie zaprezentowanej metodyki. Rezygnacja z zastosowania w modelach wszystkich czynników, powoduje, mozliwosc tworzenia ich oraz prognozowania przez uzytkowników aplikacji, którzy nie maja mozliwosci wplywu na wszystkie parametry sprzetowe i programowe aplikacji. Dzieki modelom zaprezentowanym w rozdziale 7 oraz ich weryfikacji, potwierdzona zostala slusznosc i poprawnosc, zaprezentowanej w pracy metodyki postepowania przy okreslaniu modeli statystycznych charakteryzujacych aplikacje rozproszone. Tym samym udowodniono teze postawiona w pracy, iz mozliwe jest opracowanie metod tworzenia modeli statystycznych, które opisywac beda czas wykonania programu, przyspieszenie oraz efektywnosc aplikacji rozproszonych, w zaleznosci od parametrów sprzetowych i programowych z dokladnoscia prognozowania odpowiednia do zastosowania w praktyce. 135 8 Wnioski Przeprowadzona analiza aktualnego stanu literatury pozwolila stwierdzic, iz istnieje potrzeba formalizacji i rozwoju metod sluzacych okreslaniu wydajnosci aplikacji uruchamianych na komputerach równoleglych oraz w srodowiskach sieciowych. Znane sa metody okreslania charakterystyk na poziomie budowy algorytmów [Foster94], brakuje jednak schematów opisu efektywnosci juz uzytkowanych aplikacji. Zastosowanie metod statystycznych do prognozowania zachowania sie programów stalo sie inspiracja niniejszej pracy. Zakres pracy: Na podstawie analizy literatury w rozdziale 2 przedstawiono przeglad narzedzi statystycznych wykorzystywanych przy budowie modeli. Zaprezentowano tu mechanizmy pozyskiwania danych do modelowania, sposoby estymacji wspólczynników modeli statystycznych oraz metody ich weryfikacji. Zasady funkcjonowania oraz srodowiska programowania systemów równoleglych i rozproszonych opisano w rozdziale 3. W rozdziale 3.5 przedstawiono dotychczasowe badania efektywnosci zrównoleglenia. W punkcie 3.5.1 omówiono znane miary efektywnosci oraz modele tworzone dla potrzeb komputerów równoleglych i rozproszonych. Rozdzial 3.5.2 poswiecony zostal modelowi Hocneya [Hockney91], który jest obecnie najpopularniejszym modelem charakterystyki wydajnosciowej dla komputerów równoleglych. Prawo Amdahla oraz Gustafsona, które pozwalaja okreslic efektywnosc zrównoleglenia przedstawiono w rozdzialach 3.5.3 oraz 3.5.4. Metodyke postepowania przy tworzeniu modeli statystycznych dla potrzeb aplikacji równoleglych zaprezentowano w rozdziale 4. W punkcie 4.1 przedstawiono zakres i idee tworzenia modeli dla aplikacji równoleglych. W rozdziale 4.2 przeanalizowano czynniki charakteryzujace zachowanie sie aplikacji, miedzy innymi ilosc procesorów, ilosc komputerów sieci, wplyw podzialu na okreslona ilosc watków oraz ich rozmiar, indywidualne cechy programów. Wskazano, które z czynników nalezy brac pod uwage przy budowie modeli statystycznych charakteryzujacych wydajnosc aplikacji równoleglych. Rozdzial 4.3 dotyczy wyboru klasy modelu, który w najlepszy sposób odzwierciedla dane rzeczywiste. O sposobach estymacji parametrów, weryfikacji slusznosci i mozliwosci zaakceptowania 136 stworzonego równania traktuje rozdzial 4.4, a zakres stosowalnosci modelu opisany jest w rozdziale 4.5. W rozdziale 6 przedstawiono metodyke postepowania przy budowie modeli statystycznych opisujacych efektywnosc wykonywania programu w srodowisku rozproszonym. Czynniki charakterystyczne dla systemów rozproszonych, które powinny byc uwzglednione przy tworzeniu modeli przeanalizowane zostaly w punkcie 6.2. W rozdziale 6.3 omówiono zasady weryfikacji modeli. W rozdziale 5 na podstawie zaprezentowanej metodyki opracowane zostaly modele okreslajace czas wykonania programów, ich przyspieszenie oraz efektywnosc dla przykladowych aplikacji równoleglych. Doswiadczenia zostaly dobrane, aby wykazac zasadnosc tworzenia matematycznego opisu badan w postaci modelu. Pokazano przyklady wskazujace zasadnosc stosowania maszyn równoleglych, a takze przypadki, kiedy zaangazowanie ich nie jest celowym. Rozdzial 7 poswiecono przykladowym modelom charakteryzujacym aplikacje rozproszone. Glówne osiagniecia naukowe: W pracy dokonano uzupelnienia klasycznej metodyki tworzenia modeli regresyjnych, o mozliwosc szacowania czasu wykonania programu, przyspieszenia oraz efektywnosci w odniesieniu do aplikacji równoleglych i rozproszonych. Przy tworzeniu metodyki przeanalizowano cechy srodowisk równoleglych i rozproszonych i wskazano, które z nich w istotny sposób wplywaja na wydajnosc aplikacji. Wyrózniono czynniki sprzetowe i programowe charakteryzujace wydajnosc aplikacji i jednoczesnie mozliwe do zmiany z poziomu uzytkownika aplikacji. Wyszczególniono te, które moga zostac ujete jako parametry modelu. Wskazano czynniki, które ze wzgledu na swa niejednoznacznosc, nie powinny byc wykorzystywane w procesie modelowania. Róznica miedzy metodyka postepowania dla sytemu równoleglego oraz rozproszonego dotyczy glównie specyfikacji elementów systemu i jego otoczenia. W przypadku systemów rozproszonych wieksza jest liczba czynników, które maja wplyw na postac modelu. Wyróznic mozna takze wiecej cech, których nie da sie przedstawic w sposób liczbowy i umiescic jako parametry modelu, tylko modele tworzone sa dla konkretnych ukladów tych czynników. 137 Zaprezentowane podejscie daje mozliwosc prognozowania czasu wykonania aplikacji, przyspieszenia oraz efektywnosci w zaleznosci od czynników, na które wplyw ma uzytkownik aplikacji. Daje to szersze spektrum dzialania niz dotychczas znane prawa i reguly. Prawo Amdahla [Amdahl67] okresla maksymalne przyspieszenie uzyskane w wyniku zrównoleglenia programu, nie ma mozliwosci okreslenia na jego podstawie rzeczywistej charakterystyki systemu. Znane z literatury modele sluzace do opisania wydajnosci aplikacji (rozdzial 3.5.1, 3.5.2) pozwalaja na szacowanie wartosci, przy uwzglednieniu wszystkich parametrów zawartych we wzorach. Pewne atrybuty zwiazane z budowa systemu (równoleglego badz rozproszonego) sa jednak ukryte przed uzytkownikami systemu, wiec okreslanie wydajnosci na podstawie przytaczanych zaleznosci ((3.3), (3.4), (3.5)), w wielu przypadkach okazuje sie niemozliwym. Glówne osiagniecia utylitarne: Wynikiem praktycznym pracy jest utworzenie i zweryfikowanie modeli dla przykladowych aplikacji oraz pokazanie ich zastosowania do prognozowania charakterystyki wydajnosciowej. Poprzez analize modeli charakteryzujacych aplikacje pokazano i udowodniono, iz sposób postepowania przy modelowaniu jest poprawny pod wzgledem merytorycznym i pozwala na uzyskanie wartosci prognoz zgodnych z danymi rzeczywistymi. Mimo pominiecia w modelach wielu z czynników charakteryzujacych badane zjawiska, wartosci wspólczynników dopasowania modeli do danych rzeczywistych sa bardzo wysokie, co swiadczy o odpowiednim wyborze zmiennych objasniajacych oraz poprawnosci zaprezentowanej metodyki. Mozliwosc rezygnacji z niektórych czynników podczas okreslania wartosci parametrów wyjsciowych czyni zaprezentowane podejscie elastycznym, prostym i mozliwym do wykorzystania przez kazdego z uzytkowników systemu. Przedstawione w pracy modele zastosowano do prognozowania wartosci charakteryzujacych wydajnosc, czyli czas wykonania programu, efektywnosc oraz przyspieszenie programów, do których wykonania zaangazowano jednoczesnie kilka procesorach, w zaleznosci od róznych wariantów zmiennych wejsciowych. Analiza utworzonych modeli moze pomóc w wyborze parametrów uruchamiania, które w najbardziej znaczacy sposób wplywaja na wydajnosc aplikacji. Za pomoca modelu mozna wybrac najbardziej korzystny wariant uruchomienia ze wzgledu na czas, przyspieszenie, efektywnosc lub inny badany czynnik. Majac gotowy model mozliwym jest, 138 bez koniecznosci uruchamiania aplikacji, okreslenie poczawszy od jakiej wielkosci parametru zrównoleglenie jest celowym. W fazie planowania i budowy systemu komputerowego, z wykorzystaniem modeli mozna zorientowac sie, czy moc obliczeniowa oraz parametry wykorzystywanych komputerów, okaza sie adekwatne do realizowanych zadan. Dzieki modelowi statystycznemu traktowanemu jako opis zachowania sie programu, mozna spowodowac oszczednosc czasu, kosztów, a takze efektywnie zaplanowac obciazenie komputerów równoleglych, czy systemów rozproszonych. Dzieki modelom zaprezentowanym w rozdzialach 5 oraz 7, ich weryfikacji, potwierdzona zostala slusznosc i poprawnosc, zaprezentowanej w pracy metodyki postepowania przy okreslaniu modeli statystycznych charakteryzujacych aplikacje równolegle i rozproszone. Tym samym udowodniono teze postawiona w pracy, iz mozliwe jest opracowanie metod tworzenia modeli statystycznych, które opisywac beda czas wykonania programu, przyspieszenie oraz efektywnosc aplikacji równoleglych i rozproszonych, w zaleznosci od parametrów sprzetowych i programowych, z dokladnoscia prognozowania odpowiednia do zastosowania w praktyce. 139 Spis rysunków Rys. 2.1 Etapy procesu badawczego......................................................................................... 13 Rys. 3.1: Architektura systemów wieloprocesorowych z pamiecia wspólna........................... 23 Rys. 3.2: Architektura systemów wieloprocesorowych z pamiecia rozproszona..................... 23 Rys. 5.1 Czas wykonania programu o danym rozmiarze problemu w zaleznosci od ilosci watków.............................................................................................................................. 49 Rys. 5.2 Podsumowanie regresji okreslajacej czas wykonania aplikacji................................. 50 Rys. 5.3 Efektywnosc aplikacji w zaleznosci od ilosci watków............................................... 51 Rys. 5.4 Efektywnosc generacji fraktala uwzgledniajaca parametr chunk-size i liczbe procesorów........................................................................................................................ 53 Rys. 5.5 Podsumowanie regresji – czas wykonania - fraktal.................................................... 54 Rys. 5.6 Podsumowanie regresji – efektywnosc zrównoleglenia - fraktal............................... 55 Rys. 5.7 Czas wykonania programu przy zrównolegleniu metoda hiperplaszczyzn................ 58 Rys. 5.8 Czas wykonania programu zrównoleglonego metoda hiperplaszczyzn – zakres danych do analizy.............................................................................................................. 58 Rys. 5.9 Podsumowanie regresji – czas wykonania przy zrównolegleniu metoda hiperplaszczyn .................................................................................................................. 59 Rys. 5.10 Wykres rozrzutu wartosci oczekiwanych i przewidywanych.................................. 60 Rys. 5.11 Obserwowany i prognozowany czas wykonania programu równoleglego dla metody hiperplaszczyzn................................................................................................................. 61 Rys. 5.12 Blad standardowy wartosci przewidywanej dla poszczególnej ilosci watków........ 61 Rys. 5.13 Efektywnosc zrównoleglenia programu metoda hiperplaszczyzn............................ 63 Rys. 5.14 Podsumowanie regresji – efektywnosc dla metody hiperplaszczyzn....................... 63 Rys. 5.15 Srednia efektywnosc zrównoleglenia dla okreslonej liczby watków....................... 64 Rys. 5.16 Przyspieszenie wykonania programu dla ustabilizowanej pracy systemu ............... 66 Rys. 5.17 Podsumowanie regresji dla zrównoleglenia najbardziej zewnetrznej petli.............. 67 Rys. 5.18 Czas wykonania zadan programowania liniowego metoda Simpleks...................... 68 Rys. 5.19 Podsumowanie regresji - czas wykonania - metoda Simpleks................................. 69 Rys. 5.20 Porównanie wartosci obserwowanych i przewidywanych dla zmiennej CZAS. ..... 70 Rys. 5.21 Efektywnosc zrównoleglenia dla metody simpleks ................................................. 70 Rys. 5.22 Podsumowanie regresji - efektywnosc - metoda Simpleks ...................................... 71 Rys. 5.23 Efektywnosc aplikacji liczacej calki......................................................................... 73 Rys. 5.24 Podsumowanie regresji – zmienna efektywnosc...................................................... 73 Rys. 5.25 Efektywnosc aplikacji okreslajacej stopien korelacji dwóch obrazów .................... 76 Rys. 5.26 Zestawienie wartosci oczekiwanych obserwowanych............................................. 76 Rys. 5.27 Czas wykonania programu dla róznej liczby procesorów........................................ 77 Rys. 5.28 Podsumowanie regresji – zmienna czas................................................................... 78 Rys. 5.29 Zestawienie wartosci oczekiwanych obserwowanych............................................. 78 Rys. 7.1 Czas wykonania programu – N= 1000000................................................................. 96 Rys. 7.2 Podsumowanie regresji dla zmiennej CZAS .............................................................. 97 Rys. 7.3 Wartosci obserwowane oraz prognozowane dla aplikacji uruchamianej na 8 komputerach..................................................................................................................... 97 Rys. 7.4 Róznice miedzy wartosciami doswiadczalnymi i prognozowanymi.......................... 98 Rys. 7.5 Podsumowanie regresji dla zmiennej EFEKTYWNOSC ......................................... 99 Rys. 7.6 Czas wykonania programu przy wykorzystaniu 2 oraz 4 procesorów..................... 101 Rys. 7.7 Podsumowanie regresji dla zmiennej zaleznej CZAS .............................................. 102 Rys. 7.8 Efektywnosc zrównoleglenia w zaleznosci od rozmiaru macierzy.......................... 103 Rys. 7.9 Porównanie wartosci przewidywanych i obserwowanych....................................... 105 140 Rys. 7.10 Procentowy udzial odchylen wartosci prognozowanych na postawie modelu do wartosci empirycznych................................................................................................... 105 Rys. 7.11 Efektywnosc aplikacji przy wykorzystaniu serwerów JOTA1, JOTA2, JOTA3 ... 107 Rys. 7.12Przyspieszenie aplikacji przy wykorzystaniu serwerów JOTA1, JOTA2, JOTA3 . 108 Rys. 7.13 Struktura aplikacji rozproszonej oraz zaleznosci pomiedzy jej komponentami..... 113 Rys. 7.14 Interfejs aplikacji klienckiej obliczania calki potrójnej.......................................... 115 Rys. 7.15 Interfejs aplikacji klienckiej rysowania wykresów Lapunowa .............................. 115 Rys. 7.16 Czasy wykonania programu na pojedynczych komputerach oraz w srodowisku rozproszonym.................................................................................................................. 117 Rys. 7.17 Podsumowanie regresji – zmienna zalezna CZAS, zmienne niezalezne KROK, PACZKA ........................................................................................................................ 118 Rys. 7.18 Wykres wartosci przewidywanych wzgledem obserwowanych............................ 118 Rys. 7.19 Podsumowanie regresji – zmienna zalezna CZAS, zmienne niezalezne PIKSELE, PACZKA ........................................................................................................................ 120 Rys. 7.20 Wykres wartosci przewidywanych wzgledem obserwowanych............................ 121 Rys. 7.21 Podsumowanie regresji – zmienna zalezna PRZYSPIESZENIE, zmienne niezalezne KROK, PACZKA oraz ich kombinacje.......................................................................... 122 Rys. 7.22 Podsumowanie regresji zmienna zalezna PRZYSPIESZENIE, zmienne niezalezne PIKSELE, PACZKA, iloczyn oraz odwrotnosci zmiennych......................................... 124 Rys. 7.23 Wykres wartosci przewidywanych oraz obliczonych z modelu dla aplikacji liczacej calke potrójna.................................................................................................................. 126 Rys. 7.24 Zestawienie wartosci przewidywanych i obserwowanych dla regresji segmentowej ........................................................................................................................................ 127 141 Spis tabel Tabela 5.1 Modele statystyczne dla aplikacji odpowiedzialnej za mnozenie macierzy........... 60 Tabela 5.2 Prognozy czasu wykonania aplikacji na podstawie modelu 5.11........................... 79 Tabela 5.3 Oszacowany czas wykonania aplikacji odpowiedzialnej za rozwiazywanie ukladów równan................................................................................................................ 80 Tabela 5.4 Korzystanie z modelu efektywnosci dla aplikacji generujacej fraktal.................... 81 Tabela 5.5 Prognozowanie wartosci efektywnosci dla aplikacji liczacej calke ....................... 81 Tabela 7.1 Zestawienie wartosci przewidywanych i obserwowanych..................................... 98 Tabela 7.2 Modele efektywnosci aplikacji rozwiazujacej równania rekurencyjne ................ 104 Tabela 7.3 Charakterystyka srodowiska rozproszonego (Wydzial Informatyki, Politechnika Szczecinska) ................................................................................................................... 106 Tabela 7.4 Modele przyspieszenia dla rozproszonego mnozenia macierzy........................... 109 Tabela 7.5 Modele czasu wykonania programu w srodowisku rozproszonym...................... 110 Tabela 7.6 Parametry sprzetowe komputerów uzytych do przeprowadzenia badan.............. 114 Tabela 7.7 Indywidualny i rozproszony czas oraz przyspieszenie ....................................... 117 Tabela 7.8 Zestawienie wartosci empirycznych Y oraz szacowanych na podstawie modelu 119 Tabela 7.9 Srednie wartosci parametrów................................................................................ 121 Tabela 7.10 Modele przyspieszenia dla aplikacji liczacej calke potrójna .............................. 123 Tabela 7.11 Modele dla czasu przestoju aplikacji liczacej calke potrójna ............................. 125 Tabela 7.12 Wartosci przewidywane oraz obliczone na podstawie modelu dla aplikacji liczacej calke potrójna .................................................................................................... 125 Tabela 7.13 Modele czasu przestoju aplikacji generujacej wykres Lapunowa ...................... 126 Tabela 7.14 Wartosci kosztów komunikacji dla protokolów TCP oraz HTTP ...................... 128 Tabela 7.15 Modele kosztów komunikacji przychodzacej i wychodzacej dla protokolów TCP oraz HTTP ...................................................................................................................... 129 Tabela 7.16 Koszt komunikacji i nakladu obliczen wielokrotnych wywolan zdalnych obiektów......................................................................................................................... 130 Tabela 7.17 Prognozowany czas wykonania aplikacji liczacej uklady równan rekurencyjnych ........................................................................................................................................ 131 Tabela 7.18 Prognozowana efektywnosc oraz przyspieszenie aplikacji liczacej uklady równan rekurencyjnych............................................................................................................... 132 Tabela 7.19 Prognozowane czasy wykonania aplikacji rozwiazujacej uklady równan......... 132 142 Literatura [Amdahl67] Amdahl G.; The Validity of the Single-Processor Approach to Achieving Large Scale Computing Capabilities;Proc. AFIPS; Vol 30; 1967; [Babitchev83] Babitchev A., Lebedev V.; Parallelization of program loops; 5 Nauka, Moscow, 1983. [Bartoszewicz89] Bartoszewicz J.; Wyklady ze statystyki matematycznej; PWN ; Warszawa; 1989; [BenAri96] Ben-Ari M. : Podstawy programowania wspólbieznego i rozproszonego. WNT, Warszawa 1996. [Berlinska02] Berlinska J., Poliwoda M.; Analiza efektywnosci zrównoleglenia przy pomocy modeli statystycznych; VI Sesja Naukowa Informatyki; Wydzial Informatyki; Politechnika Szczecinska; 2002; [Berlinska03a] Berlinska J.; A methodology of creating performance models for parallel applications; ACS 2003; Miedzyzdroje; 2003; [Berlinska03b] Berlinska J.; Metody okreslania wydajnosci aplikacji równoleglych i rozproszonych; Zarzadzanie wiedza i informacja w spoleczenstwie sieciowym; Jugowita; 2003; [Berlinska04a] Berlinska J., Stpiczynski P.; Zastosowanie metod statystycznych do oceny wydajnosci aplikacji rozproszonych; Wspólczesne problemy sieci komputerowych; WNT; Warszawa; 2004; [Berlinska04b] Berlinska J.; A methodology of creating performance models for distributed applications; ACS-CISIM 2004; Elk; 2004; 143 [Berlinska04c] Berlinska J.; Prognozowanie zachowania sie aplikacji równoleglych i rozproszonych na podstawie wyników pomiarów oraz benchmarków; VIII Sesja Naukowa Informatyki; Wydzial Informatyki; Politechnika Szczecinska; 2004; [Berlinska04d] Berlinska J.;The statistical models of parallel applications performance; Informatyka – badania i zastosowania; Kazimierz Dolny; 2004; [Bertsekas89] Bertsekas D.P., Tsitsiklis J.N.; Parallel and Distributed Computation: Numerical Methods; Prentice Hall; 1989; [Bielecki02] Bielecki, W.; Essentials of Parallel and Distributed Computing; Informa; Szczecin; 2002; [BieleckiJ99] Bielecki J.; Java 3 RMI: podstawy programowania rozproszonego; Wydawnictwo Helion; Gliwice;1999; [Bik94] Bik A. J. C., Wijshoff H. A. G.; Implementation of Fourier-Motzkin Elimination; Technical Report TR94-42; Department of Computer Science; University of Leiden; The Netherlands; 1994; [Blake84] Blake D.; Complete systems methods of estimating models with rational and adaptive expectations: a case study; European Economic Review; 24; 137-150; 1984; [Borowik01] Borowik B. E.; Programowanie równolegle w zastosowaniach; Mikom; Warszawa; 2001; [Bradt74] Brandt S.; Metody statystyczne i obliczeniowe analizy danych; PWN; Warszawa; 1974; [Brown94] Bron Ch.; UNIX Distributed Programming; Prentice Hall INT; 1994; 144 [Bucher88] Bucher J.Y., Simmons M.L.; A Close Look at Vector Performance of Register- to – Register Vector Computers and a new Model; Proc. SIGMETRICS’87; Performance Evaluation Review; Vol. 16; Nr 1; 1988; [Calahan79] Calahan D. A., Ames W.G.; Vector Processors: Models and Applications; IEEE Transactions on Circuits and Systems; Vol. CAS26; Nr 9; 197;9 [Catanzaro94] Catanzaro B.; Multiprocessor Systems Architectures; Montain View; Sunsoft Press; 1994; [Celier91] Celier F.E.; Continuom System Modeling; Sprinter-Verlang; 1991; [Comer99] Comer D. E.; Sieci komputerowe i intersieci; WTN; Warszawa;1999; [Cormen94] Cormen T. H., Leiserson C. E., Rivest R.L.; Srodowiska programowania rozproszonego w sieciach komputerowych; Ksiegarnia Akademicka; Kraków; 1994; [Coulouris99] Coulouris G., Dollimore J., Kindberg T.; Systemy rozproszone. Podstawy i projektowanie. Warszawa: WNT, 1999; [Crowl94] Crowl L. A.; How to Measure, Present, and Compare Parallel Performance; IEEE Parallel & Distributed Technology; 2 91; Spring; 1994; [Curnow76] Curnow H. J., Wichmann B. A.; A Synthetic Benchmark. The Computer Journal 19,1 (1976), 43-49; [Cuthbertson90] Cuthbertson K.; Modelling expectations: a review of limited information estimation methods; Bulletin of Economic research; 42 (1); 1-34; 1990; 145 [Cuthbertson92] Cuthbertson K., Hall S.G., Taylor M.P.; Applied Econometric Technique;. Ann Arbor The University of Michigan Press; 1992; [Czachórski83] Czachórski T., Kowalówka M., Szczerbinski Z., Wilk A.; Analityczne metody rozwiazywania probabilistycznych modeli systemów komputerowych; Pakiet programowy AMOK; Politechnika Slaska; Gliwice 1987, skr. 1383; [Czerwinski82] Czerwinski Z.; Matematyczne modelowanie procesów ekonomicznych; PWN; Warszawa; 1982; [Dietrich00] Dietrich E., Schulze A.; Metody statystyczne w kwalifikacji srodków pomiarowych maszyn i procesów produkcyjnych; Notika System; Warszawa 2000; [Domanski90] Romanski Cz.; Testy statystyczne; PWE; Warszawa; 1990; [Dongarra79] Dongarra J. J., Bunch J. R., Moler C.B., Stewart G. W.; LINPACK Users' Guide, SIAM; Philadelphia; 1979; [ElRewini97] El-Rewini H., Lewis T.G.; Distributed and Parallel Computing; Manning Publications Co.; 1997; [FengChao] Feng-Chao Y.; Parallel Virtual Machine (PVM); http://carbon.cudenver.edu/csprojects/csc5809F99/class_projects/feng_ chao_yu/full_project/ ; [Foster94] Foster I.; Designing and Building Parallel Programs; Addison Wesley; 1994; http://www-unix.mcs.anl.gov/dbpp/ [Fox87] Fox G.C., Messyna P.C.; Advenced Computer Architectures; Scientific American; Oct. 1987; 146 [Freeman92] Freeman T.L., Philips C.; Parallel Numerical Algorithms; Pretece Hall; UK; 1992; [Gajek94] Gajek L., Kaluszka M.; Wnioskowanie statystyczne. Modele i metody; WNT; Warszawa; 1994; [Geist] Geist A.; PVM: Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing; http://www.netlib.org/pvm3/book/pvm-book.html; [Geist96] Geist G.A, Kohl J.A., Papatopoulos P.M.; PVM and MPI: a Comparison of Features; Calculateuris Paralleles; Vol. 8; No 2; 1996; [Gewert99] Gewert M., Skoczylas Z.; Analiza matematyczna 2; Oficyna Wydawnicza GiS; Wroclaw; 1999; [Goscinski91] Goscinski A.; Distributed operating systems, The logical design. Mass; Addison-Wesley; 1991; [Gropp94] Gropp W., Lusk E., Skjellum A.; Using MPI: Portable Parallel Programming with the Message-Passing Interface; MIT Press;1994; [Gustafson88] Gustafson J. L., Montry G. R., Benner R. E.; Development of Parallel Methods for 1024-processor Hypercube; SIAM Journal on Scientific and Statistical Computing; 9 (4); July; 1988; [Hockney81] Hocney R. W ., Jesshope C.R.; Parallel Computers; Adam Hillger Ltd; Bristol; 1981; [Hockney85] Hocney R. W. Measurements on the 2-CPU CRAY X-MP; Parallel Computing; No. 2; 1985; [Hockney86] Hocney R.; Parallel Computers: Architecture and Performance; Parallel Computing; North Holland; 1986; 147 [Hockney91] Hockney R.; Performance Parameters and Benchmarking of Supercomputers; Parallel Computing; 17:1111-30; 1991; [Hozer98] Hozer J.; Statystyka. Opis statystyczny; Katedra Ekonometrii i Statystyki; Uniwersytet Szczecinski; Szczecin; 1998; [Hwang93] Hwang K.; Advenced Computer Architekture; New York; McGwanHill; 1993; [Intriligator71] Intriligator M. D.; Mathematical Optimisation and Econamic Theory; Englewood Cliffs; Prentice-Hall; 1971; [Jaszkiewicz97] Jaszkiewicz A.; Inzynieria oprogramowania. Helion; Gliwice; 1997; [Karbowski01] Karbowski A., Niewiadomska-Szynkiewicz E. : Obliczenia równolegle i rozproszone. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2001; [Kheir96] Kheir N.A.; Systems Modeling and Computer Simulation; Marcel Dekker; Inc; 1996; [Kozielski93] Kozielski S., Szczerbinski Z.; Komputery równolegle; WNT; Warszawa, 1993; [Krzysztofiak81] Krzysztofiak M., Luszniewicz A.; Statystyka; PWE; Warszawa; 1981; [Lazowska84] Lazowska E.D., Zahorjan J., Graham G.S., Sevcik K,C; Quantitative System Performance; Pretice-Hall; 1984; [Lewis92] Lewis T.G, El-Rewi H.; Introduction To Parallel Computing; PrenticeHall; Inc; 1992; [Lewis94] Lewis T. G.; Foundations of parallel programing: a machineindependent approach; Manning Publications Co.; 1994; 148 [Lilja93] Lilja D.; Ciche Cohorence In Large-Scale Shared-Memory Multiprocessors; Issues and Comparisons; ACM Computing Surveys; 1993; [Lister94] Lister A.M., Eager R.D.; Wprowadzenie do systemów operacyjnych; WNT; Warszawa;1994; [Lundell96] Lundell S., Smith D., El-Rewini H.; Synchronous Communication for PVM; Proceedings of the Eighth IASTED International Conference on Parallel and Distributed Computing and Systems; 9; 278-282; 1996; [Marciniak97] Marciniak A., Gregulec D., Kaczmarek J.; Podstawowe procedury numeryczne w jezyku Turbo Pascal.; Nakom; Poznan; 1997; [Martyn96] Martyn T. : Fraktale i obiektowe algorytmy ich wizualizacji; Nakom; Poznan; 1996; [Metzger00] Metzger P.; Diagnostyka i optymalizacja komputerów; Wydawnictwo Helion; Gliwice; 2000; [Miktus00] Miktus A,; Analiza wydajnosci aplikacji w srodowisku MS WINDOWS 98/NT/2000; Biuletyn Instytutu Automatyki I Robotyki WAT; nr 14; Warszawa; 2000; [Moldovan93] Moldovan D.; Parallel Processing from Applications to Systems; San Mateo; Morgan Kaufmann; 1993; [Morse94] Morse H.; Practical Parallel Computing; AP Professional; Boston; 1994; [Mowbray73] Mowbray T.J., Zahavi R.; The Essential CORBA; Wiley & Sons; INC; 1995; 12; pp. 45-68; 1973; 149 [MPIF95] Message Passing Interface Forum; MPI: A Message-Passing Interface Standard; http://www.mpi-forum.org/docs/mpi-11.ps; 1995; [MPIF97] Message Passing Interface Forum; MPI-2: Extensions to the MessagePassing Interface; http://www.mpi-forum.org/docs/mpi-20.ps; 1997; [Mrózek99] Mrózek A., Plonka L.; Analiza danych metoda zbiorów przyblizonych; Akademicka oficyna Wydawnicza PLJ; Warszawa 1999; [Nelder65] Nelder J.A., Mead R.; A Simplex Method for Function Minimizatio n; Computer jal; Vol 7; pp. 308-313; 1965; [Nelson91] Nelson G.; Systems Programing with Modula-3; Englewood Cliffs; NJ; Pretence-Hall;1991; [Nowak98] Nowak E. Zarys metod ekonometrii; PWN; Warszawa; 1998; [Oktaba86] Oktawa W.; Metody statystyki matematyc znej w doswiadczalnictwie; PWN; Warszawa; 1986; [Palkowski04] Palkowski M., Metody tworzenia aplikacji rozproszonych, Politechnika Szczecinska, Szczecin, 2004 (praca magisterska); [Park89] Park J. Y., Philips P. C. P.; Statistical inference in regressions with integrated processes; Part II; Econamic Theory; 5; 95-131; 1989; [Patterson96] Patterson D. A., HennessyJ.L.; Computer Architecture. A Quantitative Approach. Second Edition, Morgan Kaufmann Publishers Inc. San Francisco, California 1996; [Pawlowski73] Pawlowski Z.; Prognozy ekonometryczne; PWN; Warszawa; 1973; [Pawlowski76] Pawlowski Z.; Statystyka matematyczna; PWN; Warszawa; 1976; 150 [Pelczar02] Pelczar M.; Zastosowanie metod statystycznych i metod sztucznej inteligencji w modelowaniu kosztów uslug medycznych w systemach wspomagania decyzji; Materialy VII Sesji Naukowej Informatyki, Szczecin; 2002; [Poliwoda02] Poliwoda M.; Formalizacja, implementacja i weryfikacja metody hiperplaszczyzn do automatycznego procesu zrównoleglenia petli programowych; Szczecin; 2002; [Rochkind93] Rochkind M.J.; Programowanie w systemie Unix dla zaawansowanych; WNT; Warszawa; 1993; [Seber77] Seber G.A.F.; Linear regression analysis; John Wiley & Sons; New York; 1977; [Sekomski70] Sekomski K.; Prognozy gospodarcze, a planowanie; Biblioteka Wiadomosci Statystycznych; Warszawa; 1970; [Shimasaki87] Shimasaki M.; Performance Analysis of Vector Supercomputers by Hockney’s Model; Data Processing Center; Kyoto University; Kyoto 606; 1987; [Shir94] Shir M., Otto S.W., Huss-Leolerman S., Walker D.W., Dongaria J.; MPI: The Complete Referance; MIT Press; 1994; [Silberschatz00] Silberschatz A., Galvin P.B.; Podstawy systemów operacyjnych; WNT; Warszawa; 2000; [Silberschatz91] Silberschatz A., Peterson J., Galvin P.; Operating Systems concepts; Mass; Addison-Wesley; 1991; [Smith88] Smith J. E.; Characterizing Computer Performance with a Single Number; Communications of the ACM, vol. 31 No.10; 1988; 151 [Stallings00] Stallings W.; Organizacja i architektura systemu komputerowego; Projektowanie systemu, a jego wydajnosc; WNT; Warszawa; 2000; [Stanisz98] Stanisz A.; Przystepny kurs statystyki w oparciu o program STATISTICA PL na przykladach z medycyny; [STATISTICA97] STATISTICA PL dla Windows (Tom III): Statystyki II; Statsoft; 1997; [Stevens98] Stevens W.R.; Programowanie zastosowan sieciowych w systemie UNIX; WNT; Warszawa; 1998; [Stone93] Stone H.; High-Performane Computer architecture. Reading; AddisonWesley; 1993; [Stpiczynski92] Stpiczynski P.; A new message passing algorithm for solving linear recurrence systems; Lecture Notes in Computer Science; 2328; 2002; [Szczerbinski93] Szczerbinski Z.; Ocena efektywnosci funkcjonowania komputerów o architekturze równoleglej; Zeszyty Naukowe Politechniki Slaskiej; seria Informatyka; z. 16, Gliwice; 1993; [Tanenbaum92] Tannenbaum A.S.; Modern operating systems; Englewood Cliffs; NJ; Pretence-Hall;1991; [Tanenbaum97] Tanenbaum A. S.; Rozproszone systemy operacyjne. PWN, Warszawa; 1997; [Tomasevic93] Tomasevic M., Multinovic V.; The Cache Cohorence Problemin Shared-Memory Multiprocessors: Hardware Solutions; IEEE Computer Society Press; Los Alamitos; 1993; 152 [Twardochleb02] Twardochleb M.; Metody Modelowania statystycznego a optymalizacja funkcji wielu zmiennych z ograniczeniami; Materialy VII Sesji Naukowej Informatyki, Szczecin; 2002; [Weicker91] Weicker R.; A detailed look at some popular benchmarks, Parallel Computing, No. 17 (1991), 1153-1172; [Weiss93] Weiss Z., Gruzlewski Z.; Programowanie wspólbiezne i rozproszone w przykladach i zadaniach; WNT; Warszawa; 1993; [Welfe95] Welfe A.; Ekonometria – metody i ich zastosowanie; PWE; Warszawa; 1995; [Wickens82] Wickens M. R.; The efficient estimation of econometric models with rational expectations; Review of Economic Studies; 49; 55-68; 1982; [Wolf96] Wolf M.E.; High Performance Compilers for Parallel Computing; Addison-Wesley; 1996; [Wolfe95] Wolfe M.; High Performance Compilers for Parallel Computing. Addison-Wesley Publishing Company; 1995; [Wyrzykowski] Wyrzykowski R.; PVM – MPI – przyszlosc i terazniejszosc; http://icis.pcz.czest.pl/~roman/index2.html; [Zajac94] Zajac K.; Zarys metod statystycznych; PWE; Warszawa; 1994; [Zeigler00] Zeigler B.P., Praehofer H., Kim T.G.; Theory of Modeling and Simulation; Academic Press; 2000; [Zelias97] Zelias A.; Teoria prognozy; Polskie Wydawnictwo Ekonomiczne; Warszawa; 1997; [Zielinski96 ] Zielinski K.; Podstawy programowania wspólbieznego i rozproszonego; WNT; Warszawa; 1996; 153 [Zmuda99] Zumda M., Niewiadomska-Szynkiewicz E.; Parallel Simulation of Complex Sytsems, Software Enviroment and Applications; Proc. 13th European Simulation Multiconference; SCS; Warszawa;1999; [Berlinska05] Berlinska J., Palkowski M.; Opis charakterystyki wydajnosci srodowiska .NET z wykorzystaniem modeli statystycznych; Sesja Naukowa Informatyki; 2005; - materialy przygotowane do druku; 154