Predykcja wydajności równoległego kodu w standardzie
Transkrypt
Predykcja wydajności równoległego kodu w standardzie
PREDYKCJA WYDAJNOCI RÓWNOLEGŁEGO KODU W STANDARDZIE OPENMP ZA POMOC MODELU ROZMYTEGO I LINIOWEGO MICHAŁ GOZDALIK Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Streszczenie W przetwarzaniu równoległym w celu wyznaczenia efektywnoĞci zrównoleglonego programu, okreĞla siĊ współczynnik przyspieszenia. Współczynnik ten jest stosunkiem czasu wykonania programu szeregowego, do czasu wykonania tego samego programu w sposób równoległy. Wyznaczenie przyspieszenia wiąĪe siĊ z koniecznoĞcią dokładnego pomiaru czasu wykonania aplikacji szeregowej i równoległej, co wymaga ingerencji w kod Ĩródłowy programów. Dodatkowo, programy wykonujące obliczenia na duĪych zbiorach danych, czĊsto wykonują siĊ po kilka miesiĊcy. W takim przypadku zmierzenie czasu ich działania jest nieefektywne. Istnieje równieĪ moĪliwoĞü podjĊcia próby oszacowania przyspieszenia programu za pomocą pomiaru innych parametrów. Taką próbĊ podjąłem w niniejszym artykule tworząc dwa modele, liniowy i rozmyty, szacujące przyspieszenie programu na podstawie tych samych parametrów wejĞciowych. AnalizĊ przeprowadziłem na rzeczywistych programach wziĊtych z benchmarków, pozwalających na porównanie obydwu modeli w jak najbardziej obiektywny sposób. Wyniki badaĔ oraz zaproponowane modele są tematem niniejszego artykułu. Słowa kluczowe: OpenMP, logika rozmyta, przetwarzanie równoległe. 1. Wprowadzenie Celem programowania równoległego jest opracowanie wydajnego kodu. Wydajno moe by definiowana na wiele sposobów, jednak w przetwarzaniu równoległym i rozproszonym istniej cile okrelone miary jakoci oprogramowania. Jedn z takich miar jest przyspieszenie, które jest stosunkiem czasu wykonania programu równoległego, do czasu wykonania programu szeregowego. Miara ta jest do pogldowa, dlatego te czciej wykorzystywany jest parametr wydajnoci. Jest to stosunek przyspieszenia, do iloci procesorów na ilu wykonywany był program równoległy. W niniejszym artykule przedstawiono rozmyty model przeprowadzajcy proces predykcji wydajnoci aplikacji równoległych. Model zaprojektowany został na podstawie bada trzech istotnych parametrów wykonania kodu programu, które stanowi parametry wejciowe dla modelu rozmytego. Poniej opisana została ich charakterystyka. − BUR (Bus Utylization Ration) — współczynnik mówicy o szybkoci dostpu do magistrali FSB. Idealn wartoci jest warto zerowa, informujca o braku potrzeby oczekiwania przez program na dostp do magistrali FSB. Aby wyznaczy ten współczynnik, konieczne jest zmierzenie dwóch zdarze zachodzcych w procesorze podczas wykonywania programu równoległego. Zdarzenia o których mowa to BUS_TRANS_ANY. ALL_AGENTS oraz CPU_CLK_UNHALTED.BUS. Wykorzystany w modelu rozmytym współczynnik BUR jest iloczynem wartoci tych dwóch zdarze. 260 POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 32, 2010 LCMI (L2 Cache Miss Impact) — współczynnik informujcy o braku danych w pamici L2. Jest to pami znajdujca si pomidzy pamici RAM a pamici L1. Idealn wartoci tego współczynnika jest warto zerowa, informujca o niezaistnieniu sytuacji, w której program odwołujcy si do pamici L2 nie znajdował w niej potrzebnych danych, przez co musiał oczekiwa na załadowanie tych danych z pamici RAM. Naley w tym miejscu nadmieni, i czas dostpu do pamici RAM jest około siedmiu razy dłuszy od czasu potrzebnego do uzyskania danych przez procesor z pamici L2. Aby wyznaczy parametr LCMI, wykorzystany w modelu rozmytym jako parametr wejciowy, naley dokona pomiaru nastpujcy zdarze procesora. MEM_LOAD_RETIRED.L2 LINE_MISS i INST_RETIRED.ANY. Warto parametru LCMI jest stosunkiem wartoci zdarzenia MEM_LOAD_RETIRED.L2 LINE_MISS, do wartoci zdarzenia INST_RETIRED.ANY − MDSR (Modified Data Sharing Ratio) — zmodyfikowany współczynnik dla danych współdzielonych. Informuje on o problemach z równoczesnym dostpem do danych przez wicej ni jeden wtek. Wartoci idealn jest warto zerowa. Oznacza ona brak czasu straconego na oczekiwanie przez wtki na dostp do zmiennych współdzielonych. Aby wyznaczy parametr MDSR, naley zmierzy wartoci zdarze EXT_SNOOP.ALL_AGENTS.HITM i INST_RETIRED.ANY. Współczynnik MDSR jest iloczynem wartoci tych dwóch zdarze. Powysze parametry, wchodzce w skład miary wydajnoci, s stosowane dla procesorów wielordzeniowych wyprodukowanych przez Intela i wykonanych w technologii 45 nanometrów. Podane współczynniki, wraz ze zdarzeniami procesora, mog zosta zmierzone za pomoc narzdzia Intel VTuner Analyzer, dla kadego programu wykonywanego na komputerze z wielordzeniowym procesorem Intela. − 2. Model rozmyty Model podzielony został na dwa mniejsze modele. Pierwszy z nich otrzymał nazw Data Model, gdy parametry wejciowe tego systemu odnosz sie do danych, na których operuje program. Parametrem wyjciowym z tego podsystemu jest parametr CP, wskazujcy wydajno obsługi danych, wykorzystywanych przez program w trakcie działania. Drugi model składowy nazwany został Common Mapping Part. Składa si on równie z dwóch parametrów wejciowych, CP oraz BUR opisanych w rozdziale pierwszym. Parametrem wyjciowym jest poszukiwany wskanik mierzcy wydajno programu, wzgldem czasu jego wykonania. Rys. 1 przedstawia cały model systemu rozmytego. Rys. 1. Model systemu mierzącego wydajnoĞü programów równoległych Michał Gozdalik Predykcja wydajnoĞci równoległego kodu w standardzie OpenMP za pomocą modelu rozmytego i liniowego 261 3. Fuzyfikacja zmiennych Dla kadego z parametrów w projektowanym systemie przydzielone zostały zmienne lingwistyczne. Wszystkie parametry s destymulantami, co oznacza e im wysza warto danego parametru, tym mniej efektywnie zostały wykorzystane zasoby sprztowe. Kady z parametrów jest znormalizowany do przedziału <0 . . . 1>. • LCMI — mały, sredni, duzy. • MDSR — wysoki, sredni, niski. • BUR — wysoki, sredni, niski. • CP — bardzo dobry, dobry, słaby. • EFI — bardzo dobra, dobra, srednia, słaba, bardzo słaba Podczas procesu fuzyfikacji, wykorzystane zostały wskazówki ekspertów dotyczce znaczenia wartoci uytych parametrów. Powysze wskazówki znale mona w dokumentacji procesorów Intela 64 i 32 bitowych, zawartej na stronie http://www.intel.com. Przy wyborze charakterystyk funkcji przynalenoci zostały wzite pod uwag badania opublikowanych przez Tanera Bilgica w artykule „Measurement of membership functions: Theoretical and empirical work”. Badania te dotyczyły sposobu rozumienia przez ludzi zmiennych lingwistycznych. Na ich podstawie okrelono typowe charakterystyki funkcji przynalenoci. W niniejszym artykule, charakterystyki te zostały wyostrzone, celem uproszczenia implementacji modelu i oblicze. Kształt samej funkcji przynalenoci pozostał zachowany. Ponisze rysunki przedstawiaj zakresy zmiennych wraz ze stopniami ich przynalenoci do odpowiednich zakresów zbiorów zmiennych lingwistycznych. Charakterystyki zbiorów wyznaczone zostały na podstawie wartoci przecitnych podanych w dokumentacji procesorów Intel. 262 POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 32, 2010 Michał Gozdalik Predykcja wydajnoĞci równoległego kodu w standardzie OpenMP za pomocą modelu rozmytego i liniowego 263 Naley mie na uwadze fakt, i warto parametru EFI nie jest t sam wartoci co efektywno w rozumieniu przetwarzania równoległego i rozproszonego. Aby wyznaczy efektywno jako stosunek przyspieszenia do iloci procesorów na ilu wykonywany był program, naley od jednoci odj warto współczynnika EFI. 4. Bazy reguł W celu poprawnego działania modelu rozmytego, wyznaczone zostało osiemnacie reguł decyzyjnych, po dziewi dla kadego podsystemu. Reguły te wynikaj wprost z definicji przyspieszenia i efektywnoci programów równoległych. Przyspieszenie to stosunek czasu w jakim wykonał si program równoległy na n procesorach, do czasu wykonania tego samego programu w sposób szeregowy. Efektywno natomiast okrelana jest jako iloraz przyspieszenia do iloci procesorów, na których wykonywany był program równoległy. Naley mie na uwadze fakt, i czas wykonania programu mierzony jest w jednostkach zwanych tikami zegarowymi. Jednostka ta jest precyzyjniejsza ni jednostki pomiaru czasu w układzie SI, gdy jeden tik zegarowy odpowiada czasowi, jaki jest potrzebny procesorowi na wykonania pojedynczej, elementarnej instrukcji. W trakcie wykonywania programu nie jest moliwe wywłaszczenie wszystkich wtków i przydzielenie zasobów procesora tylko do programu poddawanego testom, std czas mierzony na przykład w sekundach, zawierał by błdy pomiarowe zwizane z jednoczesnym wykonywaniem wielu programów jednoczenie na procesorze. Naley bowiem pamita, i nie da si wyizolowa zasobów sprztowych na potrzeby jednego programu, poniewa jednoczenie z instrukcjami badanego programu, procesor przetwarza równie instrukcje zwizane chociaby z obsług systemu operacyjnego. Tiki zegarowe pozbawione s tego błdu pomiarowego, dlatego te to włanie ich uywa si do pomiaru czasu wykonania programów. Poniej przedstawione zostały tabele z regułami decyzyjnymi, na podstawie których model rozmyty przeprowadza predykcj efektywnoci programów. Tabele te naley odczytywa w nastpujcy sposób. Jeeli parametr LCMI jest mały i parametr MDSR jest wysoki, to parametr CP bdcy parametrem wyjciowy z modelu DATA MODEL, jest bardzo wysoki. W tabelach w sposób analogiczny do przedstawionego, zapisano wszystkie reguły decyzyjne dla kadej kombinacji wartoci parametrów wejciowych. 264 POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 32, 2010 Tabela 1. Reguły dla podsystemu DATA MODEL LCMI MDSR Mały redni duy Wysoki Bardzo dobry Bardzo dobry Dobry redni Bardzo dobry Dobry Słaby Niski Dobry Słaby Słaby Tabela 2. Reguły dla podsystemu CMP BUR CP Bardzo dobry Dobry słaby Wysoki Bardzo dobra Dobra rednia redni dobra rednia Słaba Niski rednia Słaba Bardzo słaba 5. Model liniowy Ze wzgldu na łatwo konstrukcji i nieskomplikowany opis matematyczny, moliwe jest skonstruowanie modelu przeprowadzajcego predykcj efektywnoci programu równoległego, na bazie równania liniowego. Modele liniowe powszechnie wykorzystywane s midzy innymi w modelowaniu procesów biznesowych. W niniejszym artykule zaproponowany został model oparty o równanie liniowe nastpujcej postaci Aby móc wyliczy interesujcy nas parametr efektywnoci (EFI), konieczne jest ustaleniu wartoci wszystkich współczynników w. W tym celu wykorzystana została wiedza na temat charakterystyki parametrów LCMI, BUR oraz MDSR, opisana w rozdziale pierwszym. Naley pamita, e warto parametru EFI nie jest t sam wartoci co efektywno w rozumieniu przetwarzania równoległego i rozproszonego. Aby wyznaczy efektywno jako stosunek przyspieszenia do iloci procesorów na ilu wykonywany był program, naley od jednoci odj warto współczynnika EFI. Biorc pod uwag najgorszy przypadek, oczekiwa naley, i parametr EFI bdzie najmniejszy, gdy efektywno programu równoległego bdzie najwiksza. Sytuacja taka bdzie Michał Gozdalik Predykcja wydajnoĞci równoległego kodu w standardzie OpenMP za pomocą modelu rozmytego i liniowego 265 miała miejsce, gdy wszystkie parametry wejciowe z modelu systemu, w równaniu osign swoje optymalne wartoci, czyli zera. To spostrzeenie zostało zapisane w postaci: Warto rozpatrze równie przypadek skrajnie odwrotny. I tak, parametr EFI bdzie najwikszy, gdy efektywno programu bdzie najmniejsza. Stanie si tak, gdy wszystkie parametry wejciowe modelu bd miały warto jeden lub wiksz. To spostrzeenie zapisane zostało w postaci Rozpatrujc przypadek poredni pomidzy przedstawionymi w równaniach 2 i 3 przypadkami skrajnymi, mona doj do wniosku, e przy rednich wartociach parametrów LCMI, BUR i MDSR, warto parametru EFI powinna by równie rednia. Biorc pod uwag fakt, i warto rednia dla parametrów zwizanych z obliczaniem opartym o zdarzenia procesora, nie jest redni arytmetyczn wartoci brzegowych przedziałów, skorzysta naley z dokumentacji procesorów Intel dostpnej na stronie http://www.intel.com. Wykorzystujc wskazówki zawarte w dokumentacji i traktujc je jako wiedz eksperck, mona wyznaczy nastpujce równanie. Celem wyznaczenia parametru EFI potrzebne jest stworzenie układu czterech równa z czterema niewiadomymi, by moliwe było jednoznaczne wyznaczenie współczynników w dla zaproponowanego modelu liniowego. Brakujce równanie bazuje na wiedzy eksperckiej dotyczcej parametru BUR. Mianowicie w badaniach przeprowadzonych przez firm Intel okazało si, e warto tego parametru wiksza od 0,65 wpływa znaczco niekorzystnie na przyspieszenie i efektywno programu równoległego. Na tej podstawie skonstruowane zostało ostatnie równanie potrzebne do wyznaczenia współczynników w dla modelu liniowym. Po dokonaniu prostych przekształce matematycznych otrzymano nastpujce wartoci współczynników w Ostatecznie model liniowy opisany został w nastpujcym równaniem liniowym: 6. Przykład W celu weryfikacji skutecznoci działania zaprezentowanych modeli rozmytych, wybrany został algorytm mnoenia macierzy. Jest on powszechnie stosowany w informatyce, a od szybkoci jego implementacji zaley midzy innymi płynno grafiki trójwymiarowej. Pomiary czasów dokonane zostały za pomoc funkcji gettimeofday. Zwraca ona ilo tików zegarowych zuytych przez procesor w celu wykonania wszystkich instrukcji badanego programu. Kadego pomiaru 266 POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 32, 2010 dokonano piciokrotnie, przy czym do wyliczenia parametrów był brany pod uwag wynik bdcy redni arytmetyczn poszczególnych pomiarów. Pomiarów dokonano na maszynie omiordzeniowej, wyposaonej w swa procesory Intel Quad Core 9550 BOX z 12 megabajtami pamici podrcznej L2 kady. Program mnocy macierze przemnaał dwie macierze kwadratowe, wygenerowane w sposób losowy. Wymiarowo kadej z macierzy była zmienna w kadej iteracji. Oznacza to, e w przypadku, gdy rozmiar podany w wynikach wynosi 100, to przemnoone zostały ze sob dwie macierze kwadratowe o wymiarowoci 100x100 kada. Wyniki pomiarów przedstawiono poniej. Tabela 3. Wyniki uzyskane na jednym rdzeniu Tabela 4. Wyniki uzyskane na czterech rdzeniach Dla czasów wykonania programów sekwencyjnego i równoległego wykrelono rysunek 7. Rys. 7. Przyspieszenie programu mnoĪącego macierze Michał Gozdalik Predykcja wydajnoĞci równoległego kodu w standardzie OpenMP za pomocą modelu rozmytego i liniowego 267 Na rysunku 7, o odcitych reprezentuje wymiarowo macierzy, natomiast o rzdnych przedstawia warto przyspieszenia. W celu okrelenia efektywnoci, wartoci rzdnych z rysunku 7 naley podzieli przez 8, gdy na tylu rdzeniach odpalany był program równoległy. Wykorzystujc narzdzie Intel VTune Analyzer, zmierzone zostały take parametry zwizane ze zdarzeniami procesora. Wartoci tych parametrów podano poniej. BUR = 0.21 LCMI = 0.45 MDSR = 0.353 W modelu rozmytym wybrane zostały operatory PROD i MAX, jako operatory s-normy i t-normy. Implementacja modelu rozmytego wykonana została w Matlabie i po podaniu parametrów wejciowych, zwrócony został wynik 0.2283, co oznacza, e efektywno wyniosła 0,7718. Podstawiajc te same parametry do modelu liniowego uzyskano wynik 0,35. 7. Wnioski Próba oszacowania efektywnoci za pomoc modeli okazała si zadaniem nie trywialnym. Wykorzystanie modelu liniowego dało mizerny efekt, czego mona było si spodziewa po przeanalizowaniu charakterystyki rozkładu parametru przyspieszenia w zalenoci od wymiarowoci problemu obliczeniowego. Uzyskany wynik 0,35, w porównaniu z rzeczywistym 1,18, jest obarczony bardzo duym błdem. Efektywno estymowana przez model dynamiczny była nieco dokładniejsza od estymowanej za pomoc modelu liniowego. Warto 0,7718 w porównaniu z 1,18 jest równie obarczona 34,5% błdem, jednak w przypadku zmiennych lingwistycznych rozbieno ta jest akceptowalna. Okazuje si, e model liniowy nie sprawdza si w zadaniach modelowania efektywnoci programów równoległych. %LEOLRJUDILD [1] Abd-El-Barr M., El-Rewini H.: Advanced computer architecture and parallel processing. Wiley Interscience, 2005. [2] Bilgic T.¸ Turksen I. B.: Measurement of membership functions: Theoretical and empirical work. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.31.6691&rep=rep1& type=pdf. [3] Fujitsu Systems Europe Ltd., Parallel Navi Workbench: an OpenMP Development Enviroment for a Wide-Area Network. http://www.compunity.org/compilers/fujitsu/ Workbench.pdf. [4] Intel white pages. http://www.intel.com. Intel website. [5] Kohr D., Chandra R., Dagum L.: Parallel programming in OpenMP. Morgan Kaufmann Publishers, 2001. [6] OpenMP Architecture Review Board, http://www.openmp.org/blog/ specifications/cspec20.pdf. OpenMP C and C++ Application Program Interface, 2.0 edition, Marc 2002. [7] Pałkowski M.: SFS_Project.ESyS project website. http://detox.wi.ps.pl/ [8] University of Electro-Communications, Japan, Interactive Parallelizing Assistance Tool for OpenMP:iPat/OMP. http://www.compunity.org/events/ewomp03/omptalks/Monday/ Session2/T08p.pdf. [9] Wesley A.: An introduction to parallel computing. Addison Wesley, 2003. [10] van der Pas R., Chapman B., Jost G.: Using OpenMP. The MIT Press, 2007. 268 POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 32, 2010 LINEAR AND FUZZY MODELS IN PROGRAMS’ EFFICIENCY PREDICTION PROCESS APPLIED TO OPENMP STANDARD Summary One of the reason why parallel programs become popular in last few years is the fact, that multi-core processors become cheaper and available for personal computers and laptops. The only problem is the software which is disabled to use multicore architecture due to parallelization problems. In this paper two models, fuzzy and linear, are presented to provide ability to estimate parallel programs efficiency without measuring time of execution nor interrupting in source code. Keywords: OpenMP, fuzzy logic, shared memory programming. Michał Gozdalik Katedra Inynierii Oprogramowania Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie e-mail: [email protected]