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]