autoreferat: Agnieszka Kamińska - Zachodniopomorski Uniwersytet

Transkrypt

autoreferat: Agnieszka Kamińska - Zachodniopomorski Uniwersytet
Zachodniopomorski Uniwersytet Technologiczny w Szczecinie
Wydział Informatyki
Katedra Inżynierii Oprogramowania
Agnieszka Kamińska
MODELE STATYSTYCZNE DO OSZACOWANIA WYDAJNOŚCI
APLIKACJI GRUBOZIARNISTYCH W STANDARDZIE
OPENMP C/C++ ORAZ ICH ZASTOSOWANIE
W KOMPILACJI ITERACYJNEJ
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Promotor:
prof. dr hab. inż. Włodzimierz Bielecki
Recenzenci:
prof. dr hab. inż. Ryszard Budziński
Wydział Nauk Ekonomicznych i Zarządzania
Uniwersytet Szczeciński
prof. dr hab. inż. Włodzimierz Khadzhynov
Wydział Elektroniki i Informatyki
Politechnika Koszalińska
Szczecin 2014
Spis treści
1.
AKTUALNOŚĆ PROBLEMU ................................................................................................... 1
2.
PRZEDMIOT BADAŃ ........................................................................................................... 2
3.
GŁÓWNY CEL ROZPRAWY .................................................................................................. 2
4.
ZADANIA DO ROZWIĄZANIA ................................................................................................. 3
5.
METODY NAUKOWE STOSOWANE PODCZAS WYKONANIA BADAŃ............................................ 4
6.
OSIĄGNIĘCIA DEKLAROWANE DO OBRONY ........................................................................... 4
7.
STRUKTURA I UKŁAD PRACY ............................................................................................... 4
8.
ZAWARTOŚĆ PRACY .......................................................................................................... 4
Rozdział 1 Wstęp ............................................................................................................................4
Rozdział 2 Przegląd aktualnego stanu wiedzy na temat przetwarzania równoległego ..................5
Rozdział ‎3 Opracowanie ogólnego modelu statystycznego oraz modeli szczególnych ................5
Koncepcja rozwiązania problemu postawionego w pracy ........................................... 5
Postać modelu ogólnego ............................................................................................. 7
Sposób oszacowania wartości parametrów modeli szczególnych ............................ 15
Weryfikacja jakości oszacowań ................................................................................. 19
Sposób wykorzystania modeli szczególnych w kompilacji iteracyjnej ....................... 20
Rozdział ‎4 Badania eksperymentalne ......................................................................................... 24
Rozdział ‎5 Podsumowanie .......................................................................................................... 27
9.
WARTOŚĆ TEORETYCZNA ................................................................................................ 27
10. WARTOŚĆ PRAKTYCZNA .................................................................................................. 27
11. AKCEPTACJA WYNIKÓW PRZEZ SPOŁECZNOŚĆ NAUKOWĄ .................................................. 28
12. ZAKOŃCZENIE ................................................................................................................. 28
13. SPIS PUBLIKACJI ............................................................................................................. 29
BIBLIOGRAFIA ........................................................................................................................ 30
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
1.
AKTUALNOŚĆ PROBLEMU
Na przestrzeni ostatnich kilkunastu lat, miały miejsce wielka popularyzacja i
rozpowszechnienie wykorzystania komputerów, wskutek czego komputery są dziś
wszechobecne w życiu ludzi. Jedną z konsekwencji tego zjawiska jest pojawienie się i
dynamiczny rozwój nowej gałęzi produkcji niematerialnej – wytwarzania oprogramowania
komputerowego.
Podobnie jak w przypadku tradycyjnych gałęzi przemysłu, także w wytwarzaniu
oprogramowania komputerowego kluczowe jest zapewnienie wysokiej jakości produktu
końcowego i krótkiego czasu jego wytwarzania.
Redukcja czasu wytwarzania oprogramowania jest przedmiotem badań prowadzonych
zarówno w ośrodkach naukowych, jak i przemysłowych. Główne kierunki wspomnianych
badań to:

organizacja sprzętu komputerowego,

języki programowania,

kompilacja i jej optymalizacja,

organizacja procesu wytwarzania oprogramowania.
Na szczególną uwagę zasługuje tu kompilacja, czyli konwersja programu komputerowego,
napisanego w języku programowania zrozumiałym dla człowieka, na postać wykonywalną
zrozumiałą dla maszyny. Stosując na etapie kompilacji odpowiednio dobrane transformacje,
można przekształcić program, napisany w danym języku programowania i dla określonej
platformy sprzętowej, do postaci wykonywalnych o różnych czasach wykonania. W ramach
kompilacji, określanej jako optymalizująca, dąży się do wyboru takich transformacji, by
uzyskana postać wykonywalna programu miała jak najkrótszy czas wykonania w docelowym
środowisku sprzętowym.
Z uwagi na ciągły rozwój sprzętu komputerowego i języków programowania, także
kompilacja – a zwłaszcza kompilacja optymalizująca – jest dziedziną rozwojową. W wyniku
badań nad kompilacją optymalizującą i czasem wykonania programów, zaproponowano
różne metody, pozwalające na: prognozowanie czasu wykonania programu [2], szacowanie
czasu wykonania programu czasu [8] bądź wybór tej postaci programu, która ma najkrótszy
spodziewany czas wykonania ([3] [10] [11]).
Z uwagi na bardzo złożoną budowę współczesnego sprzętu komputerowego, metody
wymienione powyżej nie pozwalają wskazać ze 100 % pewnością, która spośród możliwych
postaci danego programu jest postacią o najkrótszym czasie wykonania w danym
środowisku docelowym. Metody te pozwalają na znalezienie rozwiązań przybliżonych;
jedynym sposobem znalezienia rozwiązania dokładnego wciąż pozostaje kompilacja
iteracyjna. Kompilacja iteracyjna polega na wykonaniu w docelowym środowisku sprzętowym
wszystkich z rozpatrywanych postaci kodu źródłowego programu, porównaniu ich czasów
wykonania i wybraniu do ostatecznego stosowania postaci o najkrótszym czasie wykonania.
Kompilacja iteracyjna może być bardzo czasochłonna i przez to, kosztowna w
zastosowaniach praktycznych, zwłaszcza w przypadku komercyjnego wytwarzania
oprogramowania. Dlatego też, potencjalnym usprawnieniem w zakresie kompilacji iteracyjnej
byłoby zastosowanie modelu matematycznego, w celu wyłonienia z możliwych postaci kodu
źródłowego danego programu tych postaci, które mają najlepsze rokowania odnośnie czasu
wykonania, i ograniczenie zakresu empirycznej selekcji do tak zawężonego zbioru.
1
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Rozwiązania, zaproponowane w pracach wymienionych w niniejszym rozdziale, dostarczają
dobrych narzędzi do szacowania czasu wykonania programu, jednakże kosztem
czasochłonnego procesu budowy modeli matematycznych oraz wąskiego zakresu
stosowalności uzyskanych modeli (modele są dedykowane dla konkretnych programów lub
konkretnych transformacji optymalizujących). Z uwagi na te ich właściwości, przedmiotowe
rozwiązania nie są adekwatne do realizacji postulowanego usprawnienia kompilacji
iteracyjnej.
Potencjalne korzyści praktyczne związane z postulowanym usprawnieniem kompilacji
iteracyjnej oraz luka naukowa stwierdzona w tym obszarze stały się inspiracją dla niniejszej
pracy.
Problematyka niniejszej pracy – redukcja czasu wytwarzania oprogramowania
komputerowego poprzez wybór wersji programu przeznaczonej do ostatecznego stosowania
przy pomocy modeli matematycznych dedykowanych do oszacowania czasu wykonania
programu – mieści się w zakresie działalności naukowo-badawczej Katedry Inżynierii
Oprogramowania
Wydziału
Informatyki
Zachodniopomorskiego
Uniwersytetu
Technologicznego w Szczecinie.
2.
PRZEDMIOT BADAŃ
Przedmiotem badań było opracowanie modelu, pozwalającego określić zależność liczbową
pomiędzy czasem wykonania programu a czynnikami, mającymi istotny wpływ na czas
wykonania programu. Z uwagi na brak możliwości opracowania uniwersalnego modelu,
adekwatnego dla wszystkich możliwych przypadków, badania ograniczono do pewnej,
często spotykanej w praktyce, klasy programów (aplikacji gruboziarnistych zrównoleglonych
według standardu OpenMP C/C++) i środowiska sprzętowego (komputerów
wieloprocesorowych z pamięcią dzieloną).
3.
GŁÓWNY CEL ROZPRAWY
Biorąc pod uwagę lukę naukową, wskazaną w rozdziale 1 autoreferatu oraz ograniczenia
natury praktycznej, wskazane w rozdziale 2 autoreferatu, sformułowano następujący, główny
cel badań:
Opracowanie rodziny modeli statystycznych (przewidywanych do zastosowania
w optymalizujących kompilatorach zrównoleglających) pozwalających na oszacowanie
czasu wykonania aplikacji gruboziarnistych w standardzie OpenMP C/C++ przez
komputery wieloprocesorowe z pamięcią dzieloną.
OpenMP to obecnie bardzo popularny standard zrównoleglenia aplikacji. Jest on jednym z
najczęściej stosowanych standardów zrównoleglenia aplikacji napisanych w językach: C i
C++, przeznaczonych do wykonania na maszynach wieloprocesorowych z pamięcią
dzieloną.
Do oszacowania czasu wykonania wskazanej w celu pracy klasy programów równoległych,
wybrano modele regresyjne. Analiza regresji jest bardzo dobrze rozwiniętą i powszechnie
stosowaną metodą identyfikacji i opisu zależności występujących w zbiorach danych
empirycznych. Stosując analizę regresji, można uzyskać stosunkowo proste równania
analityczne (modele regresyjne) opisujące te zależności z bardzo dobrym przybliżeniem.
Przeprowadzenie analizy regresji nie jest obecnie czasochłonne, z uwagi na powszechnie
dostępne na rynku oprogramowanie komputerowe, w którym są dostępne moduły
2
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
wykonujące analizę regresji. Ponadto, stosując powszechnie znane współczynniki i testy
statystyczne można szybko i trafnie ocenić jakość otrzymanego modelu regresyjnego.
Aby zrealizować cel badań, należało wykazać, że:
Istnieje możliwość opracowania rodziny modeli statystycznych do oszacowania czasu
wykonania aplikacji gruboziarnistych w standardzie OpenMP C/C++, które pozwolą na
osiągnięcie zadawalającej dokładności oszacowania.
Dokładność oszacowania jest pojęciem jakościowym, określającym zgodność wyniku
oszacowania z wartością zmierzoną empirycznie.
Na potrzeby pracy przyjęto, że dokładność oszacowania jest uznawana za zadawalającą,
jeżeli:

wielkość uzyskanego błędu oszacowania nie przekracza 100 punktów procentowych
(próg ten jest zasadą zwyczajową, przyjętą w wielu publikacjach), oraz

oszacowania dokonane według modeli należących do opracowanej rodziny modeli są
wystarczające do wskazania tych postaci kodu źródłowego programu, które w danym
środowisku sprzętowym mają najlepsze rokowania odnośnie czasu wykonania,
a weryfikacja przeprowadzona drogą kompilacji iteracyjnej potwierdza, że wskazania
wynikające z oszacowań są zgodne z wynikami uzyskanymi empirycznie.
Należy tu podkreślić, że ocena dokładności oszacowania w aspekcie ilościowym jest
drugorzędna w stosunku do oceny w aspekcie jakościowym, co wynika z przewidywanego
zastosowania modeli należących do opracowanej rodziny modeli. Z punktu widzenia
zastosowania modeli, jest bowiem kluczowe, by pozwalały one uszeregować różne postaci
kodów źródłowych danej pętli malejąco według czasu wykonania, bez konieczności
wykonywania przedmiotowych kodów źródłowych w docelowym środowisku. Jeżeli modele
pozwalają dokonać takiego uszeregowania, to uzyskane błędy oszacowań mają mniejsze
znaczenie.
4.
ZADANIA DO ROZWIĄZANIA
Aby zrealizować główny cel pracy, należało zrealizować następujące zadania cząstkowe:
1/
Zidentyfikowanie czynników, mających istotny wpływ na czas wykonania programu,
i wyrażenie ich w sposób ilościowy,
2/
Określenie sposobu wyznaczenia oraz wyznaczenie postaci modelu matematycznego,
pozwalającego określić jak wpływ czynników z punktu 1/, rozpatrywanych łącznie,
przekłada się na czas wykonania programu,
3/
Weryfikacja jakości oszacowań dokonanych według zaproponowanego modelu,
4/
Opracowanie
iteracyjnej,
5/
Weryfikacja empiryczna zaproponowanego modelu, pod kątem wykorzystania go
w kompilacji iteracyjnej.
sposobu
wykorzystania
zaproponowanego
3
modelu
w
kompilacji
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
5.
METODY NAUKOWE STOSOWANE PODCZAS WYKONANIA BADAŃ
Podczas wykonywania badań, zastosowano następujące metody naukowe:

metodę intuicyjną oraz analizę krytyczną – jako metody główne, wykorzystane do
sformułowania autorskiej koncepcji rozwiązania problemu, postawionego w pracy,

metodę eksperymentalną oraz metody statystyczne – jako metody pomocnicze,
wykorzystane do zweryfikowania zaproponowanej koncepcji autorskiej.
6.
OSIĄGNIĘCIA DEKLAROWANE DO OBRONY
Wyniki, które osiągnięto w ramach realizacji pracy i które przedstawia się do obrony, to:
1/
Zidentyfikowanie czynników, mających istotny wpływ na czas wykonania programu,
i przedstawienie propozycji ich reprezentacji w sposób ilościowy,
2/
Określenie sposobu wyznaczenia oraz wyznaczenie postaci modelu matematycznego,
pozwalającego określić jak wpływ czynników z punktu 1/, rozpatrywanych łącznie,
przekłada się na czas wykonania programu,
3/
Weryfikacja jakości oszacowań dokonanych według zaproponowanego modelu,
4/
Opracowanie
iteracyjnej.
7.
sposobu
wykorzystania
zaproponowanego
modelu
w
kompilacji
STRUKTURA I UKŁAD PRACY
Wyniki realizacji pracy zostały przedstawione w rozprawie, obejmującej: 5 rozdziałów, wykaz
pozycji bibliograficznych liczący 101 pozycji cytowanych w tekście dysertacji, spis rysunków
oraz spis tabel. Rozprawa liczy 163 strony; zamieszczono w niej 58 rysunków, 69 tabel oraz
44 numerowane równania.
8.
ZAWARTOŚĆ PRACY
Wyniki realizacji pracy zostały przedstawione w dysertacji, obejmującej 5 następujących
rozdziałów:
Rozdział ‎1
Rozdział ‎2
Rozdział ‎3
Rozdział ‎4
Rozdział ‎5
Wstęp
Przegląd aktualnego stanu wiedzy na temat przetwarzania równoległego
Opracowanie ogólnego modelu statystycznego oraz modeli szczególnych
Badania eksperymentalne
Podsumowanie
Zawartość poszczególnych rozdziałów dysertacji przedstawia się następująco:
Rozdział 1
Wstęp
W rozdziale 1 dysertacji przedstawiono problem, który legł u podstaw pracy (problem ten
nakreślono w rozdziale 1 autoreferatu) i stał się wyznacznikiem jej tematu oraz celu:
opracowania modeli pozwalających na oszacowanie czasu wykonania programu.
4
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Z uwagi na popularność przetwarzania równoległego i jego sprzętowo-programistyczną
naturę oraz fakt, że większość czasochłonnych operacji – obliczeń wykonywanych w
programach – jest realizowana w pętlach, zakres celu pracy ograniczono do często
stosowanej w praktyce klasy pętli zrównoleglonych.
W rozdziale 1 dysertacji przedstawiono także hipotezę badawczą pracy oraz krótką
prezentację zawartości poszczególnych rozdziałów dysertacji.
(Cel i hipoteza badawcza pracy zostały przedstawione w rozdziale 3 autoreferatu.)
Rozdział 2
Przegląd aktualnego stanu wiedzy na temat przetwarzania
równoległego
W rozdziale 2 dysertacji dokonano przeglądu aktualnego stanu wiedzy na temat
przetwarzania równoległego, koncentrując się na miernikach oceny wydajności aplikacji
równoległych oraz podejściach do tworzenia aplikacji równoległych.
Na tym tle, przeanalizowano stosowane obecnie podejścia do oszacowania wydajności
aplikacji równoległych, mianowicie:

Profilowanie, polegające na zbieraniu informacji o zachowaniu programu w trakcie jego
wykonywania, a następnie wykorzystywaniu tych informacji do analizy zachowania
programu i jego optymalizacji.

Typowo stosowane sposoby modelowania wydajności aplikacji równoległych, oparte na
pomiarze czasu wykonania programu, mianowicie:

prawo Amdahla,

ekstrapolację z obserwacji,

analizę asymptotyczną.
Na podstawie przeprowadzonej analizy, stwierdzono, że podejścia te są nieadekwatne do
zastosowania w kompilacji iteracyjnej celem oszacowania czasu wykonania programów
zrównoleglonych.
Rozdział ‎3
Opracowanie ogólnego modelu statystycznego oraz modeli
szczególnych
W rozdziale 3 dysertacji przedstawiono koncepcję rozwiązania problemu, postawionego
w pracy, oraz szczegółowy opis elementów, składających się na proponowane rozwiązanie
autorskie.
Koncepcja rozwiązania problemu postawionego w pracy
Aby rozwiązać problem postawiony w pracy, postanowiono sformułować ogólne równanie
funkcji (określane w pracy jako model ogólny) pozwalającej na oszacowanie czasu
wykonania pewnej, często wykorzystywanej w praktyce, klasy pętli równoległych. Za
zmienną zależną modelu ogólnego postanowiono przyjąć czas wykonania programu. Za
zmienne niezależne modelu ogólnego postanowiono przyjąć zmienne ilościowe, które byłyby
odzwierciedleniem czynników mających istotny wpływ na czas wykonania programu. W
modelu ogólnym, oprócz zmiennej zależnej i zmiennych niezależnych, występowałyby także
parametry o nieznanych wartościach.
5
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Wartości tych parametrów należałoby wyznaczyć dla konkretnego środowiska sprzętowego,
na podstawie analizy regresji przeprowadzonej dla danych empirycznych zebranych w tym
środowisku. Aby zebrać niezbędne dane empiryczne, postanowiono wykorzystać specjalnie
w tym celu przygotowane programy. Każdy z tych programów reprezentowałby inny wzorzec
ponownego użycia danych w programie. W pracy, programy te są nazywane pętlami
wzorcowymi. Każda z pętli wzorcowych jest reprezentantem pewnych arbitralnie przyjętych
cech związanych z ponownym użyciem danych1 i interferencją2. W pracy zamierzano
wykorzystać 2 przykładowe pętle wzorcowe: nonInterf (pętla-reprezentant ponownego użycia
danych przy braku interferencji) i matmul (pętla-reprezentant ponownego użycia danych przy
występowaniu interferencji).
Po podstawieniu do równania modelu ogólnego wartości liczbowych parametrów,
wyznaczonych metodą regresji, otrzymano by równanie modelu szczególnego. Model
szczególny to model, który uszczegóławia model ogólny dla konkretnej sytuacji, poprzez
przypisanie parametrom modelu ogólnego konkretnych wartości liczbowych.
Każdy model szczególny byłby wyprowadzany z modelu ogólnego dla jednego, konkretnego
programu-wzorca ponownego użycia danych. Model szczególny można by stosować
zarówno dla programu-wzorca, który posłużył do jego wyprowadzenia, jak i dla innych
programów, które cechują się takim samym typem ponownego użycia danych, co wzorzec.
W pracy, te inne programy są nazywane pętlami niewzorcowymi.
Aby zapobiec ekstrapolacji modelu szczególnego na dane spoza zakresu, dla którego ten
model zbudowano, postanowiono opracować założenia dotyczące zakresu stosowalności
modelu szczególnego dla programów innych niż wzorzec wykorzystany do wyznaczenia
modelu szczególnego. W tym celu, wprowadzono 3 ograniczenia, dotyczące:

łącznego rozmiaru danych, przetwarzanych w programie,

wielkości „porcji pracy”, przydzielanej do wykonania wątkom,

czasu wykonania programu.
Aby ocenić czy model szczególny pozwala z zadawalającą dokładnością oszacować czas
wykonania programów innych niż wzorzec wykorzystany do wyznaczenia modelu
szczególnego, postanowiono opracować dedykowany do tego celu sposób oceny jakości
oszacowań dokonanych przy pomocy modelu szczególnego. Byłby to kompleksowy sposób
oceny jakości, obejmujący: aspekt jakościowy oraz aspekt ilościowy, i odnoszący uzyskane
oszacowania do wartości rzeczywistych wyznaczonych empirycznie w środowisku
docelowym. Do statystycznej weryfikacji oceny jakości w obu aspektach planowano
wykorzystać test Kołmogorowa-Smirnowa.
Modele szczególne zostałyby wykorzystane w kompilacji iteracyjnej. Przy pomocy modeli
szczególnych, można by oszacować czas wykonania różnych postaci kodu źródłowego
danego programu. Na podstawie dokonanych oszacowań, do wykonania w docelowym
środowisku sprzętowym byłyby wybierane tylko te kody źródłowe, które uzyskałyby najlepsze
1
Czasowe ponowne użycie danych (ang. temporal data reuse) występuje wówczas, gdy dane pobrane
z określonej lokalizacji w pamięci są wielokrotnie wykorzystywane w programie. Przestrzenne ponowne użycie
danych (ang. spatial data reuse) występuje wówczas, gdy w programie są wykorzystywane dane sąsiadujące,
w ramach jednej linii pamięci podręcznej, z danymi pobranymi z określonej lokalizacji w pamięci [1] [13].
2
Interferencja zachodzi w sytuacji, gdy wiersz pamięci podręcznej zawierający dane, które można ponownie użyć
w programie, zostaje nadpisany nowymi danymi pomimo, że w pamięci podręcznej jest wolne miejsce, w którym
można byłoby ulokować nowo wprowadzane dane – jednak sposób organizacji pamięci podręcznej wymusza
nadpisanie konkretnego, zajętego wcześniej wiersza pamięci podręcznej [1] [4] [5] [12].
6
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
rokowania co do czasu wykonania. Do ostatecznego stosowania wybierano by spośród nich
kod źródłowy o najkrótszym czasie wykonania w docelowym środowisku sprzętowym.
Dzięki zastosowaniu modeli szczególnych, czas trwania kompilacji iteracyjnej dla pętli
spełniających założenia modeli szczególnych uległby skróceniu – gdyż, zamiast wykonywać
w środowisku docelowym wszystkie kody źródłowe, wykonywałoby się tylko część z nich.
Postać modelu ogólnego
Z uwagi na przewidywany zakres zastosowania modeli szczególnych, potencjalne
właściwości, które należało uwzględnić w modelu ogólnym, to:
a)
b)
c)
struktura programu równoległego i rodzaj równoległości, reprezentowanej w programie,
specyfika problemu rozwiązywanego w sposób równoległy,
parametry środowiska sprzętowego, w którym będzie wykonywany zrównoleglony
program.
Dla poszczególnych właściwości przyjęto następującą reprezentację ilościową:
a)
Struktura programu równoległego i rodzaj równoległości, reprezentowanej w programie
W standardzie OpenMP C/C++, przyjętym sposobem zrównoleglenia programu jest
wielowątkowość. Czas wykonania zrównoleglonego programu jest zależny od liczby
powołanych wątków OpenMP – dlatego też, potencjalną zmienną niezależną modelu
ogólnego była zmienna niezależna (X4) określająca liczbę wątków OpenMP, wykonujących
program.
W przypadku, gdy zadanie do wykonania jest realizowane w pętli programowej, każdy
z powołanych wątków OpenMP otrzymuje do wykonania pewną liczbę iteracji tej pętli.
Poszczególne wątki mogą otrzymać jednakową lub niejednakową liczbę iteracji do
wykonania – jest to zależne od przyjętego sposobu przydziału iteracji pętli do wątków.
Czas wykonania całego zadania (pętli programowej) jest zdeterminowany przez czas
wykonania tego wątku, który otrzymał do wykonania najwięcej iteracji, a w szczególności –
przez wielkość największej porcji iteracji, jaka została przydzielona do wykonania do
wspomnianego wątku.
Dlatego też, potencjalną zmienną niezależną modelu ogólnego była zmienna niezależna (X3)
określająca maksymalną wielkość pojedynczej porcji iteracji przydzielonej do wykonania
przez wątek, dla danego sposobu przydziału iteracji do wątków OpenMP.
b)
Specyfika problemu rozwiązywanego w sposób równoległy
W aspekcie najbardziej niskopoziomowym, specyfika i różnorodność problemów
rozwiązywanych w programach uwidacznia się w liczbie i typie operacji arytmetycznych,
jakie ma wykonać procesor. Prostym, ale skutecznym sposobem wyrażenia powyższej
obserwacji w sposób ilościowy jest przypisanie różnych wag różnym operacjom
arytmetycznym; wagi należy dobrać na podstawie analizy czasów wykonania instrukcji
danego procesora. Dzięki takiemu podejściu, uzyskuje się porównywalność operacji
arytmetycznych różnych typów (np. dodawanie i mnożenie). Dlatego też, potencjalną
zmienną niezależną modelu ogólnego była zmienna niezależna (X2) wskazująca, jaka jest
łączna ważona liczba operacji przypadająca na pojedynczy wątek programu.
7
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
c)
Parametry środowiska sprzętowego, w którym będzie wykonywany zrównoleglony
program
Z uwagi na występowanie dysproporcji pomiędzy szybkością procesorów a czasem dostępu
do podsystemu pamięci, to właśnie pamięć – a zwłaszcza szybko dostępna pamięć
podręczna procesora – jest jednym z tych elementów środowiska sprzętowego, które
determinują długość czasu wykonania programu.
W idealnej sytuacji, wszystkie dane potrzebne procesorowi podczas wykonywania programu
powinny być dostępne w pamięci podręcznej procesora w momencie, gdy zostało na nie
zgłoszone zapotrzebowanie, a nie być dopiero wówczas pobierane z pamięci głównej do
pamięci podręcznej procesora.
Z drugiej strony, pojemność pamięci podręcznej procesora i sposób jej adresowania
determinują jaki odsetek danych przetwarzanych w programie jest dostępny w pamięci
podręcznej procesora w momencie zgłoszenia zapotrzebowania na przedmiotowe dane.
Oznacza to, że czas wykonania programu jest zależny od:
1/
2/
3/
faktycznej pojemności i sposobu organizacji (asocjacyjności) pamięci podręcznej
procesora w danym systemie komputerowym,
minimalnej pojemności pamięci podręcznej procesora (pamięć z odwzorowaniem
bezpośrednim), jaka jest niezbędna do pomieszczenia wszystkich danych
przetwarzanych w programie, przy założeniu pełnego czasowego i przestrzennego
ponownego użycia danych przechowywanych w pamięci podręcznej procesora.
Przedmiotową pojemność można oszacować przy pomocy odcisku danych (według
metodyki przedstawionej w pracach [7] i [13]). W celu wyznaczenia odcisku danych dla
danego programu wystarczy znać jego kod źródłowy, nie ma potrzeby wykonywania
tego programu.
relacji pomiędzy wielkościami wskazanymi w 1/ i 2/.
W związku z powyższym, potencjalną zmienną niezależną modelu ogólnego była zmienna
niezależna (X1), przedstawiająca relację pomiędzy wielkościami wskazanymi w 1/ i 2/.
Tak więc, lista potencjalnych zmiennych objaśniających (niezależnych) to: X1, X2, X3, X4.
Zaproponowane zmienne niezależne uwzględniają i odzwierciedlają wiele różnych aspektów
równoległego wykonania programu. W Tabeli 1 przedstawiono jakie są determinanty
ostatecznej wartości liczbowej poszczególnych zmiennych niezależnych.
Determinanty wartości liczbowej poszczególnych zmiennych niezależnych
Tabela 1
X1




Rozmiar pamięci
podręcznej (L1 i
L2)
Sposób
organizacji
pamięci
podręcznej
Ponowne użycie
danych w
programie
Typ ponownego
użycia danych w
programie
X2



Liczba operacji
arytmetycznych,
wykonywanych w
programie
Typ operacji
arytmetycznych,
wykonywanych w
programie
Czas wykonania
poszczególnych
typów operacji
arytmetycznych
procesora
X3

Struktura
programu
równoległego
Rodzaj
równoległości,
reprezentowanej
w programie
Sposób przydziału
zadań do
poszczególnych
wątków
wykonujących
program


8
X4

Liczba procesorów
komputera
wieloprocesorowe
go
AUTOREFERAT ROZPRAWY DOKTORSKIEJ


X1
Interferencja
Struktura
programu
X2
X3
X4
Przyjmując taką listę potencjalnych zmiennych niezależnych poszukiwanego modelu oraz
zakładając, że zmienna objaśniana (zależna) to Yt gdzie
Yt
– szacowany czas procesora dla wykonania pętli programowej przez wszystkie wątki
programu, wyrażony liczbą taktów zegara procesora (wielkość bezwymiarowa)
przystąpiono do analizy regresji. Przedmiotem analizy regresji były dane empiryczne,
zebrane dla dwóch specjalnie w tym celu przygotowanych pętli wzorcowych: nonInterf i
matmul. Wybraną metodą analizy regresji była regresja liniowa oparta o klasyczną metodę
najmniejszych kwadratów.
Zgodnie z założeniami regresji linowej, zależność występująca pomiędzy obserwowanymi
wartościami zmiennej zależnej Y oraz odpowiadającymi im wartościami zmiennych
niezależnych X1, X2, …, Xp jest zależnością wyrażoną równaniem (1):
Yi  a0  a1 X 1i  a2 X 2 i    a p Xp i   i  Yt i   i
gdzie:
i
a0, …, ap
X1i, …, Xpi
Yi
Yti
εi
(1)
– numery kolejnych obserwacji (i = 1, …, n),
– parametry o nieznanych wartościach dokładnych; wartości tych parametrów
są szacowane w oparciu o klasyczną metodę najmniejszych kwadratów,
– znane wartości zmiennych niezależnych X1, X2, …, Xp, odpowiadające
wartości Y obserwowanej w i-tej obserwacji,
– wartość zmiennej zależnej Y obserwowana w i-tej obserwacji,
– teoretyczna (przewidywana) wartość zmiennej zależnej Y dla i-tej
obserwacji,
– błąd (reszta, składnik resztowy) dla i-tej obserwacji.
Równanie (1) można zastosować w przypadku, gdy zależność, występująca pomiędzy
empirycznymi wartościami zmiennej zależnej i zmiennych niezależnych jest zależnością
liniową lub zależnością, którą można sprowadzić do zależności liniowej – czyli zależnością
potęgową, wykładniczą, logarytmiczną lub hiperboliczną.
Dlatego też, dla potencjalnych zmiennych niezależnych: X1, X2, X3, X4 oraz zmiennej
zależnej Yt opracowywany w ramach pracy model ogólny, będący modelem regresyjnym
opartym o regresję liniową wykorzystującą klasyczną metodę najmniejszych kwadratów,
mógł przyjąć jedną z następujących postaci:

postać liniową, wyrażoną równaniem (2):
Yt  a1 X 1  a2  X 2  a3  X 3  a4  X 4

postać potęgową, wyrażoną równaniem (3):
Yt  X 1a1  X 2 a 2  X 3a3  X 4 a 4

(2)
(3)
postać wykładniczą, wyrażoną równaniem (4):
Yt  a1X 1  a2 X 2  a3 X 3  a4 X 4
9
(4)
AUTOREFERAT ROZPRAWY DOKTORSKIEJ

postać logarytmiczną, wyrażoną równaniem (5):
Yt  a1 log X 1  a2  log X 2  a3  log X 3  a4  log X 4

(5)
postać hiperboliczną, wyrażoną równaniem (6):
Yt  a1 
1
1
1
1
 a2 
 a3 
 a4 
X1
X2
X3
X4
(6)
Uwaga : W równaniach (2) ÷ (6) nie uwzględniono a0 z uwagi na to, że dla modelowanego
zjawiska parametr a0 nie ma sensu praktycznego.
Do ustalenia ostatecznej postaci analitycznej poszukiwanego modelu, wykorzystano:

współczynnik determinacji R2 (do ustalenia charakteru zależności pomiędzy zmienną
zależną a poszczególnymi zmiennymi niezależnymi modelu),

skorygowany współczynnik determinacji (do wyboru, spośród potencjalnych zmiennych
niezależnych modelu, ostatecznej listy zmiennych niezależnych modelu).
Na podstawie natury zmiennych X1, X2, X3, X4, Yt i ich wzajemnych powiązań nasuwało się
przypuszczenie, że zależność występująca pomiędzy zmiennymi: X1, X2, X3, X4 oraz Yt ma
charakter potęgowy.
Przypuszczenie to zweryfikowano, badając wartość współczynnika determinacji (R2) dla:


zmiennej Yt i wszystkich zmiennych niezależnych łącznie (przypadek 1/),
zmiennej Yt i poszczególnych zmiennych niezależnych (przypadki 2/ ÷ 5/).
Wartości współczynnika determinacji, uzyskane dla obu pętli wzorcowych, przedstawiono w
Tabeli 2 i Tabeli 3. Dla obu pętli wzorcowych, najwyższą wartość R2 dla przypadku 1/
uzyskano stosując model potęgowy wyrażony równaniem (3). Ponadto, dla obu pętli,
stosując wspomniany model potęgowy uzyskano bardzo dobre wyniki dopasowania także dla
wszystkich pozostałych przypadków, co świadczyło o potęgowym charakterze zależności
pomiędzy zmienną zależną a każdą z potencjalnych zmiennych niezależnych.
Tabela 2
Wartości współczynników determinacji dla różnych możliwych postaci modelu ogólnego –
dla pętli nonInterf
Przypadek 1/
Postać
modelu
liniowy
potęgowy
wykładniczy
logarytmiczny
hiperboliczny
R
2
Yt.X1,X2,X3,X4
0,9738484
0,9999580
0,9845407
0,9557310
0,9458243
Przypadek 2/
R
2
Yt.X1
Przypadek 3/
R
0,0602237
0,8968516
0,3399016
0,4977595
0,9239709
2
Yt.X2
0,9239709
0,9957804
0,7284349
0,7366662
0,0602237
10
Przypadek 4/
R
2
Yt.X3
0,6125842
0,9653380
0,8848293
0,6611192
0,5872795
Przypadek 5/
R
2
Yt.X4
0,6390095
0,9203893
0,9194891
0,6387514
0,5997874
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Tabela 3
Wartości współczynników determinacji dla różnych możliwych postaci modelu ogólnego –
dla pętli matmul
Przypadek 1/
Postać
modelu
liniowy
potęgowy
wykładniczy
logarytmiczny
hiperboliczny
R
2
Yt.X1,X2,X3,X4
Przypadek 2/
R
2
Yt.X1
0,9506216
0,9999514
0,9645971
0,8230448
0,8098927
Przypadek 3/
R
0,0002301
0,6540767
0,1066810
0,8095558
0,7669016
2
Yt.X2
Przypadek 4/
R
0,9286567
0,9982205
0,5703056
0,5858303
0,0014395
2
Yt.X3
Przypadek 5/
R
2
Yt.X4
0,3616036
0,9119271
0,4310208
0,5074892
0,3219836
0,4771490
0,9183616
0,9170599
0,4774223
0,4602693
Zmienne: X1, X2, X3, X4 zostały zaproponowane jako potencjalne zmienne niezależne
modelu ogólnego. Potencjalne – bo analiza teoretyczna wskazywała, że mają one istotny
wpływ na czas wykonania programu. Jednakże, dopiero analiza materiału empirycznego
mogła dostarczyć odpowiedzi na pytanie czy w modelu ogólnym należy uwzględnić
wszystkie te zmienne, czy być może tylko niektóre z nich. W celu znalezienia odpowiedzi na
to pytanie, dla modelu potęgowego wyrażonego równaniem (3) i wszystkich możliwych
kombinacji potencjalnych zmiennych niezależnych (tj. zmiennych: X1, X2, X3, X4) obliczono
wartość skorygowanego współczynnika determinacji.
Jeżeli wprowadzenie do modelu konkretnej, kolejnej zmiennej niezależnej faktycznie
zwiększa stopień, w jakim model wyjaśnia kształtowanie się badanego zjawiska, wówczas
wartość skorygowanego współczynnika determinacji jest wyższa niż w przypadku, gdy
przedmiotowej zmiennej niezależnej nie uwzględniono w modelu. Dlatego też, w modelu
regresyjnym należy uwzględnić jako zmienne niezależne ten podzbiór zbioru potencjalnych
zmiennych niezależnych, dla którego uzyskano najwyższą wartość skorygowanego
współczynnika determinacji.
Wartości skorygowanego współczynnika determinacji, uzyskane dla obu pętli wzorcowych,
przedstawiono w Tabeli 4 i Tabeli 5. Dla obu pętli wzorcowych, najwyższą wartość
skorygowanego współczynnika determinacji uzyskano uwzględniając w modelu potęgowym
wyrażonym równaniem (3) wszystkie potencjalne zmienne niezależne, tj. zmienne: X1, X2,
X3, X4.
Tabela 4
Wartości skorygowanych współczynników determinacji dla różnych możliwych kombinacji
potencjalnych zmiennych niezależnych – dla pętli nonInterf i modelu potęgowego
wyrażonego równaniem (3).
2
Zmienne modelu
R
0,8968516
0,9957804
0,9653380
0,9203893
0,9982909
0,9663456
0,9300614
0,9966362
0,9959525
0,9702187
0,9983220
x1
x2
x3
x4
x1
x1
x1
x2
x3
x4
x2
x2
x1
x2
x3
x3
x3
x4
x4
11
2
Skorygowane R
0,8919398
0,9955795
0,9636874
0,9165983
0,9981200
0,9629802
0,9230676
0,9962998
0,9955477
0,9672406
0,9980570
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
x1
x1
x1
Tabela 5
Zmienne modelu
x2
x3
x2
x3
x2
x3
2
R
0,9999401
0,9747436
0,9970075
0,9999580
x4
x4
x4
x4
2
Skorygowane R
0,9999306
0,9707558
0,9965350
0,9999486
Wartości skorygowanych współczynników determinacji dla różnych możliwych kombinacji
potencjalnych zmiennych niezależnych – dla pętli matmul i modelu potęgowego
wyrażonego równaniem (3).
2
Zmienne modelu
R
0,6540767
0,9982205
0,9119271
0,9183616
0,9994628
0,9383487
0,9655228
0,9982451
0,9982402
0,9549970
0,9994630
0,9999501
0,9796433
0,9982646
0,9999514
x1
x2
x3
x4
x1
x1
x1
x2
x3
x4
x2
x2
X1
x1
x1
x1
x2
x2
x2
x2
x3
x3
x3
x3
x3
x3
x4
x4
x4
x4
x4
x4
2
Skorygowane R
0,6458404
0,9981782
0,9098301
0,9164178
0,9994366
0,9353413
0,9638410
0,9981595
0,9981543
0,9528018
0,9994227
0,9999463
0,9781166
0,9981345
0,9999464
Aby zweryfikować poprawność postaci analitycznej modelu wynikającej z analizy
współczynnika determinacji oraz skorygowanego współczynnika determinacji, wykorzystano:

wykresy reszt dla zmiennych niezależnych modelu (celem ustalenia czy występuje
homoskedastyczność),

test statystyczny do oceny istotności zaproponowanego równania modelu regresyjnego,
oparty o statystykę testową F,

test statystyczny (oparty o statystykę testową Kołmogorowa-Smirnowa), badający, czy
rozkład reszt uzyskanych dla zaproponowanego modelu jest rozkładem normalnym.
Wyniki weryfikacji zaproponowanej postaci analitycznej modelu (model wyrażony równaniem
(3) ze zmiennymi niezależnymi: X1, X2, X3, X4) przedstawiają się następująco:

Wykresy reszt dla zmiennych niezależnych modelu
12
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Rozkład reszt dla log(X2) - pętla
nonInterf
0,1
0
-0,1 0
1
2
3
4
Składniki
resztowe
Składniki
resztowe
Rozkład reszt dla log(X1) - pętla
nonInterf
0,1
0
-0,1 0
2
Rozkład reszt dla log(X3) - pętla
nonInterf
6
Rozkład reszt dla log(X4) - pętla
nonInterf
0,05
0,05
Składniki
resztowe
Składniki
resztowe
4
log(X2)
log(X1)
0
-0,05 0
0,5
1
1,5
log(X3)
0
0
0,2
0,4
0,6
0,8
-0,05
log(X4)
Rysunek 1
Wykresy reszt dla zmiennych niezależnych uliniowionego modelu wyrażonego
równaniem (3) ze zmiennymi niezależnymi: X1, X2, X3, X4 – dla pętli nonInterf
Rozkład reszt dla log(X2) - pętla
matmul
0,1
0
-3
-2
-1
-0,1 0
-0,2
1
Składniki
resztowe
Składniki
resztowe
Rozkład reszt dla log(X1) - pętla
matmul
2
0,1
0
-0,1 0
-0,2
2
8
10
Rozkład reszt dla log(X4) - pętla
matmul
Rozkład reszt dla log(X3) - pętla
matmul
0,1
0
0,1
1
2
3
Składniki
resztowe
Składniki
resztowe
6
log(X2)
log(X1)
-0,1 0
-0,2
4
0
-0,1 0
0,2
0,4
0,6
0,8
-0,2
log(X3)
log(X4)
Rysunek 2
Wykresy reszt dla zmiennych niezależnych uliniowionego modelu wyrażonego
równaniem (3) ze zmiennymi niezależnymi: X1, X2, X3, X4– dla pętli matmul
Na wykresach reszt (patrz Rysunek 1 oraz Rysunek 2) reszty są rozłożone losowo, nie
wykazują żadnej tendencji tj. wzrostu lub spadku ze wzrostem wartości którejś ze zmiennych
niezależnych (co świadczyłoby o nieujęciu w modelu czynnika o charakterze
13
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
systematycznym); wariancja reszt jest stała. Taka sytuacja (homoskedastyczność) jest
zgodna z ogólnymi założeniami analizy regresji.

Test statystyczny do oceny istotności
regresyjnego, oparty o statystykę testową F
zaproponowanego
równania
modelu
Dla obu przypadków, tj. dla pętli nonInterf i matmul, sprawdzono istotność równania regresji
otrzymanego dla modelu ogólnego wyrażonego równaniem (3), ze zmiennymi niezależnymi:
X1, X2, X3, X4. W tym celu, wykorzystano zestaw następujących hipotez:
H0:
1  0   2  0     k  0
H1:
1  0   2  0     k  0
gdzie βi to współczynnik regresji dla i-tej zmiennej niezależnej występującej w
równaniu regresji
Wyniki weryfikacji hipotezy o istotności równania regresji dla pętli nonInterf i matmul
przedstawiono w Tabeli 6.
Tabela 6
Wyniki weryfikacji hipotezy o istotności równania regresji (model wyrażony równaniem (3)
ze zmiennymi niezależnymi: X1, X2, X3, X4 – dla pętli nonInterf i matmul
Pętla
nonInterf
matmul
Wartość statystyki F
112 988,28
205 702,56
Graniczny poziom istotności p
-39
2,52 x 10
-84
9,74 x 10
Dla obu przypadków, tj. dla pętli nonInterf i matmul, uzyskano bardzo małe wartości
granicznego poziomu istotności (p). Oznacza to, że można przyjąć, że w obu przypadkach
równania regresji, uzyskane z modelu ogólnego, jako całość są statystycznie istotne.

Test statystyczny (oparty o statystykę testową Kołmogorowa-Smirnowa), badający, czy
rozkład reszt uzyskanych dla zaproponowanego modelu jest rozkładem normalnym.
Dla obu pętli wzorcowych sprawdzono czy reszty uzyskane dla modelu potęgowego
wyrażonego równaniem (3) mają rozkład zbliżony do rozkładu normalnego N(μ, σ). Jeżeli
rozkład reszt jest normalny lub zbliżony do normalnego oznacza to, że prognozy uzyskane
przy pomocy modelu są „stabilne” – czyli spełniają regułę 3 sigm (co oznacza, że niemal
wszystkie prognozy odchylają się od wartości faktycznie obserwowanych o nie więcej niż 3σ)
i tylko znikomy odsetek prognoz uzyskanych według modelu (poniżej 1 % wszystkich
prognoz) odchyla się od wartości faktycznie obserwowanych o więcej niż 3σ.
Tak więc, jeżeli rozkład reszt uzyskanych dla zaproponowanego modelu jest rozkładem
normalnym, to świadczy to o dobrych walorach prognostycznych modelu i w konsekwencji, o
poprawności przyjętej postaci analitycznej modelu
Dla obu przypadków, tj. dla pętli nonInterf i matmul, sprawdzono czy omawiany rozkład reszt
jest rozkładem normalnym, wykorzystując w tym celu zestaw następujących hipotez:
H0:
H1:
rozkład reszt jest rozkładem normalnym
rozkład reszt nie jest rozkładem normalnym
14
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Wyniki weryfikacji hipotezy o normalności rozkładu reszt (uzyskanych dla modelu
potęgowego wyrażonego równaniem (3) ze zmiennymi niezależnymi: X1, X2, X3, X4) dla
pętli nonInterf i matmul przedstawiono w Tabeli 7.
Tabela 7
Wyniki weryfikacji hipotezy o normalności rozkładu reszt (uzyskanych dla modelu
potęgowego wyrażonego równaniem (3), ze zmiennymi niezależnymi: X1, X2, X3, X4) –
dla pętli nonInterf i matmul
Pętla
nonInterf
matmul
Wartość statystyki testowej
Kołmogorowa-Smirnowa
0,1054
0,1074
Graniczny poziom
istotności p
0,9372
0,6507
Dla obu przypadków, to jest dla pętli nonInterf i matmul, uzyskano bardzo wysokie wartości
granicznego poziomu istotności (p). Z tego względu, można przyjąć, że w obu przypadkach
brak jest podstaw do odrzucenia hipotezy zerowej – a co za tym idzie, w obu przypadkach
analizowany rozkład reszt jest rozkładem normalnym.
Na podstawie przedstawionych powyżej wyników analizy regresji, na potrzeby problemu
rozpatrywanego w niniejszej pracy przyjęto, jako model ogólny, regresyjny model
statystyczny ze zmiennymi: Yt, X1, X2, X3, X4 oraz parametrami a1, a2, a3, a4, wyrażony
w postaci funkcji potęgowej. Model ten jest postaci:
Yt  X 1a1  X 2a 2  X 3a3  X 4a 4
(7)
gdzie:
Yt
X1
X2
X3
X4
a1, a2, a3, a4
– szacowany czas procesora dla wykonania pętli programowej przez
wszystkie wątki programu, wyrażony liczbą taktów zegara procesora,
– wielkość bezwymiarowa, określająca stosunek łącznego rozmiaru
pamięci podręcznej L1 i L2, przypadającej na pojedynczy wątek
OpenMP, do odcisku danych dla pojedynczego wątku OpenMP,
– łączna ważona liczba operacji przypadająca na pojedynczy wątek
OpenMP,
– maksymalna wielkość pojedynczej porcji iteracji przydzielonej do
wykonania przez wątek, dla danego sposobu przydziału iteracji do
wątków OpenMP,
– liczba wątków OpenMP wykonujących program,
– parametry, których wartości wyznaczono na podstawie analizy regresji,
przeprowadzonej dla danych empirycznych zebranych w docelowym
środowisku sprzętowo-programowym dla specjalnie przygotowanej
próbki.
Sposób oszacowania wartości parametrów modeli szczególnych
Przyjęto, że sposób wyznaczenia wartości parametrów modeli szczególnych będzie miał
charakter metody, którą można zastosować dla dowolnego środowiska. Dlatego też, podjęto
decyzję o wyznaczaniu wartości parametrów a1, a2, a3, a4 dla danego środowiska drogą
analizy statystycznej danych empirycznych, zebranych w środowisku w metodyczny sposób.
15
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Do wyznaczenia wartości parametrów a1, a2, a3, a4 wykorzystano programy-wzorce
ponownego użycia danych. Każdy wzorzec reprezentował inny sposób ponownego użycia
danych w programie. W pracy wykorzystano 2 programy-wzorce (zwane w pracy pętlami
wzorcowymi): nonInterf i matmul.
Każda z pętli wzorcowych była reprezentantem pewnych arbitralnie przyjętych cech
związanych z ponownym użyciem danych i interferencją.
Z uwagi na występowanie ponownego użycia danych i interferencji, można wyróżnić
następujące rodzaje pętli:
Pętle, w których nie występuje ponowne
użycie danych – w praktyce, bardzo
rzadko wykorzystywane i w związku z
tym, pominięte w modelu
Pętle, w których występuje ponowne
użycie danych
Przy braku
interferencji
Pętla wzorcowa: nonInterf
Przy
występowaniu
interferencji
Pętla wzorcowa: matmul
Pętla nonInterf cechuje się występowaniem ponownego użycia danych, przy braku
interferencji.
Pętla matmul cechuje się występowaniem ponownego użycia danych oraz interferencji.
Kody źródłowe tych pętli przedstawiono w Tabeli 8.
Tabela 8
Pętle wzorcowe
Założenia
Konkretyzacja
Pętla nonInterf
int ma[N][N],mb[N][N],mc[N][N],md[N][N],me[N][N];
int i, j, N;
Pętla wzorcowa 1
Występowanie ponownego użycia
danych przy braku interferencji
for (i = 0; i <= N-1; i++) {
for (j= 0; j <= N-1; j++) {
ma[i][j]=1;
mb[i][j]=mc[i][j]+md[i][j]*me[i][j];
} //endfor j
} //endfor i
Pętla matmul
int ma[N][N],mb[N][N],mc[N][N];
int i, j, k, r, N;
Pętla wzorcowa 2
Występowanie ponownego użycia
danych oraz interferencji
for (i = 0; i <= N-1; i++) {
for (k=0; k <= N-1; k++) {
r = ma[i][k];
for (j=0; j <= N-1; j++){
mc[i][j]= mc[i][j] + r*mb[k][j];
} //endfor j
} //endfor k
} //endfor i
16
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Każda z pętli wzorcowych była reprezentantem pewnych arbitralnie przyjętych cech
związanych z ponownym użyciem danych i interferencją. Dane empiryczne, zebrane dla pętli
wzorcowej, były podstawą do wyznaczenia wartości parametrów a1, a2, a3, a4 modelu
szczególnego dotyczącego wszystkich pętli, które mają te same arbitralnie przyjęte cechy, co
pętla wzorcowa. Pętla, nie będąca pętlą wzorcową, a mająca te same arbitralnie przyjęte
cechy, co pętla wzorcowa, jest określana w pracy jako pętla niewzorcowa.
Należy tu podkreślić, że pętle wzorcowe: nonInterf oraz matmul to przykładowe pętle
wzorcowe charakteryzujące się cechami, wskazanymi w Tabeli 8. Pętle te przyjęto na
potrzeby utworzenia przykładowych modeli szczególnych dla modelu ogólnego (7). Ta
konkretyzacja pętli wzorcowych (tj. poprzez pętle nonInterf oraz matmul) jest jedną z wielu
możliwych konkretyzacji. Przyjmując inną konkretyzację pętli wzorcowej 1 oraz pętli
wzorcowej 2 można uzyskać modele szczególne o innych przestrzeniach dziedziny, niż
modele szczególne zbudowane w oparciu o pętle wzorcowe nonInterf i matmul, co dowodzi
dużej uniwersalności opracowanego podejścia.
W celu uzyskania reprezentatywnych dla analizowanego środowiska danych empirycznych,
założono, że dla każdej z pętli wzorcowych:
1/
Łączny rozmiar danych, przetwarzanych w pętli, nie przekracza rozmiaru pamięci
podręcznej L2 dostępnej dla procesora.
Założenie 1/ wyrażono następującym równaniem:
total _ matrix _ size ( N )

1
L2 _ per _ processor
(8)
gdzie:
total_matrix_size(N)
L2_per_processor
2/
– łączny rozmiar danych zapisanych w zmiennych tablicowych
przetwarzanych w pętli (wielkość wyrażona w bajtach), dla
rozmiaru problemu N,
– rozmiar pamięci podręcznej L2, dostępnej dla pojedynczego
procesora (wielkość wyrażona w bajtach).
Różnica względna pomiędzy średnią liczbą porcji iteracji, przypadającą na pojedynczy
wątek OpenMP, a maksymalną liczbą porcji iteracji, przypadającą na pojedynczy wątek
OpenMP przy danym sposobie przydziału iteracji do wątków nie przekracza 50%
(wartość przyjęta a priori).
Założenie 2/ wyrażono następującym równaniem:
no _ chunksmax  no _ chunksaverage

 0,5
no_chunksaverage
gdzie:
no_chunksmax
no_chunksaverage
(9)
– maksymalna liczba porcji iteracji, przypadająca na pojedynczy
wątek OpenMP, przy danym sposobie przydziału iteracji do
wątków,
– średnia liczba porcji iteracji, przypadająca na pojedynczy wątek
OpenMP, przy danym sposobie przydziału iteracji do wątków.
17
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Wartości no_chunksmax, no_chunksaverage można wyznaczyć przy pomocy następujących
równań:
N outermost


no _ chunksmax  
(10)

 num _ threads  X 3 
no _ chunksaverage 
N outermost
num _ threads  X 3
(11)
gdzie:
– liczba iteracji do wykonania w najbardziej zewnętrznej pętli w pętli
zagnieżdżonej (uwaga: Noutermost dotyczy wyłącznie najbardziej zewnętrznej
pętli gniazda i nie uwzględnia w żaden sposób liczby iteracji pętli
zagnieżdżonych w najbardziej zewnętrznej pętli gniazda),
num_threads – liczba wątków wykonujących program (tutaj: analizowaną pętlę
programową),
X3
– maksymalna, dla danego sposobu przydziału iteracji do wątków OpenMP,
wielkość pojedynczej porcji iteracji przydzielonej do wykonania przez
wątek.
Noutermost
Przy założeniach 1/ i 2/, dla przyjętych pętli wzorcowych i środowiska sprzętowego badań
empirycznych, otrzymano następujące modele szczególne:

dla pętli wzorcowej nonInterf:
Yt = X1 -0,325431 x X2 0,675172 x X3 -0,082602 x X4 0,981967

(12)
dla pętli wzorcowej matmul:
Yt = X1 -0,298695 x X2 0,623738 x X3 0,014426 x X4 0,962976
(13)
Wyniki analizy regresji (tj. model regresyjny) nie powinny być ekstrapolowane na dane spoza
zakresu, na którym został zbudowany model regresyjny, ponieważ nie jest znany charakter
zależności pomiędzy wartościami zmiennych niezależnych i wartościami zmiennej zależnej
spoza zakresu.
W pracy, aby uchronić się przed niebezpieczeństwem opisanej ekstrapolacji przy stosowaniu
modeli szczególnych dla pętli niewzorcowych, przyjęto następujące założenia szczegółowe
dotyczące zakresu stosowalności modeli szczególnych:
1/
Wartość λ, wyznaczona według równania (8) dla pętli niewzorcowej, nie może
przekraczać wartości λ wyznaczonych dla odpowiadającej jej pętli wzorcowej. Założenie
to jest wyrażone następującym równaniem:
λ min(referenceLoop) ≤ λ ≤ λ max(referenceLoop)
gdzie:
λ
– wartość λ wyznaczona dla pętli niewzorcowej,
λ min(referenceLoop) – najmniejsza wartość λ dla pętli wzorcowej,
λ max(referenceLoop) – największa wartość λ dla pętli wzorcowej.
18
(14)
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
2/
Wartość θ, wyznaczona według równania (9) dla pętli niewzorcowej, nie może
przekraczać 0,5.
3/
Faktyczny czas wykonania analizowanej pętli w środowisku docelowym musi być tego
samego rzędu wielkości, co czas wykonania odpowiadającej jej pętli wzorcowej.
Założenie to jest wyrażone następującym równaniem:
γ min(referenceLoop) ≤ γ ≤ γ max(referenceLoop)
(15)
gdzie:
γ
– faktyczny czas procesora spędzony na wykonywaniu
analizowanej pętli przez wszystkie wątki programu, wyrażony
liczbą taktów zegara procesora,
γ min(referenceLoop) – najkrótszy (spośród czasów zmierzonych dla całej próby)
faktyczny czas procesora spędzony na wykonywaniu pętli
wzorcowej przez wszystkie wątki programu, wyrażony liczbą
taktów zegara procesora,
γ max(referenceLoop) – najdłuższy (spośród czasów zmierzonych dla całej próby)
faktyczny czas procesora spędzony na wykonywaniu pętli
wzorcowej przez wszystkie wątki programu, wyrażony liczbą
taktów zegara procesora.
Wprowadzenie założenia wyrażonego równaniem (15) wynika stąd, że mogą istnieć
pętle, dla których założenie 1/ oraz 2/ są spełnione, niemniej pętle te, pomimo
podobieństwa do pętli wzorcowych pod względem występowania ponownego użycia
danych oraz pod względem występowania interferencji, pod innymi względami są na tyle
różne od pętli wzorcowych, że ich czasy wykonania są zupełnie innego rzędu wielkości,
niż czasy wykonania pętli wzorcowych.
Weryfikacja jakości oszacowań
Weryfikacja jakości oszacowań dokonanych według zaproponowanego modelu ogólnego,
którego opracowanie było celem pracy, sprowadzała się do oceny jakości modeli
szczególnych utworzonych w oparciu o model ogólny.
Ocena jakości modeli szczególnych została przeprowadzona w dwóch aspektach:
jakościowym i ilościowym.
Celem oceny jakości modeli szczególnych w aspekcie jakościowym było stwierdzenie czy
modele te pozwalają z zadawalającą dokładnością oszacować czas wykonania pętli
niewzorcowych, spełniających założenia odnośnie zakresu stosowalności przedmiotowych
modeli szczególnych.
W praktyce oznaczało to, że należało sprawdzić czy dla danego rozmiaru problemu
rozwiązywanego w programie (pętli programowej), występowała zgodność kierunku zmian
zmierzonych czasów wykonania poszczególnych wersji danego programu (pętli
programowej) z kierunkiem zmian odpowiadających im czasów oszacowanych według
modeli należących do opracowanej rodziny modeli.
Celem oceny jakości omawianych modeli szczególnych w aspekcie ilościowym było
określenie wielkości błędów oszacowań dokonanych według tych modeli. Błąd względny
oszacowania wyznaczono w następujący sposób:
19
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
δY(per_thread)
– błąd względny oszacowania wartości Yt(per_thread), wyznaczony na
podstawie równania (16)
 Y ( per _ thread) 
Yt ( per _ thread)   ( per _ thread)
 100%
 ( per _ thread)
Yt ( per _ thread) 
 ( per _ thread) 
Yt
X 4 a4

X 4 a4
(16)
(17)
(18)
gdzie:
– szacowany czas procesora dla wykonania pętli programowej przez
wszystkie wątki programu, wyrażony liczbą taktów zegara procesora,
wyznaczony na podstawie modelu szczególnego,
Yt(per_thread) – Yt w przeliczeniu na jeden wątek,
γ
– faktyczny (to znaczy zmierzony empirycznie) czas procesora spędzony na
wykonywaniu pętli programowej przez wszystkie wątki programu,
wyrażony liczbą taktów zegara procesora,
γ(per_thread) – γ w przeliczeniu na jeden wątek,
X4
– liczba wątków OpenMP wykonujących program,
a4
– parametr a4 odpowiedniego modelu szczególnego.
Yt
Weryfikacja statystyczna wyników oceny jakości modeli szczególnych (oba aspekty oceny)
została przeprowadzona przy pomocy testu Kołmogorowa-Smirnowa. Ponieważ w rezultacie
przeprowadzonego testu Kołmogorowa-Smirnowa rozkład reszt uzyskanych dla
rozpatrywanych modeli szczególnych można było uznać za normalny – to ocena jakości tych
modeli w aspekcie jakościowym i ilościowym była pozytywna.
Sposób wykorzystania modeli szczególnych w kompilacji iteracyjnej
W pracy zaproponowano autorską procedurę przeprowadzenia kompilacji iteracyjnej przy
wykorzystaniu modeli szczególnych.
W niniejszym autoreferacie, sposób wykorzystania tej procedury zademonstrowano na
przykładzie pętli UA_diffuse_3, pochodzącej ze zbioru testów referencyjnych NAS Parallel
Benchmarks (NPB) ([6] [9]) (rozmiar problemu rozwiązywanego w tej pętli oznaczono przez
N; w przykładzie N=30).
Kod źródłowy zrównoleglonej pętli UA_diffuse_3 to:
20
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Kod źródłowy pętli UA_diffuse_3 – wersja zrównoleglona
int N = 30;
int NUM_THREADS = ?;
int CHUNK_SIZE=?; Możliwe wartości:

wartość liczbowa podana przez programistę,

wartość domyślna (równa N / NUM_THREADS),
wynikająca ze specyfiki standardu OpenMP
int tm1[N][N][N], u[N][N][N], wdtdr[N][N];
omp_set_num_threads(NUM_THREADS); //ustawienie liczby wątków
#pragma omp parallel for private(iz,k,j,i) schedule(static, CHUNK_SIZE)
for (iz = 0; iz < N; iz++) {
for (k = 0; k < N; k++) {
for (j = 0; j < N; j++) {
for (i = 0; i < N; i++) {
tm1[iz][j][i] = tm1[iz][j][i]+wdtdr[k][i]*u[iz][j][k];
} //endfor i
} //endfor j
} //endfor k
} //endfor iz
Przyjmując różne wartości zmiennych NUM_THREADS oraz CHUNK_SIZE, można uzyskać
różne (ale równoważne semantycznie) postaci kodu źródłowego pętli UA_diffuse_3. Należy
tak dobrać wartości zmiennych NUM_THREADS oraz CHUNK_SIZE, by czas wykonania
programu (pętli) był możliwie najkrótszy. Zmienna CHUNK_SIZE może przyjąć wartość
domyślną lub wartość wskazaną przez programistę.
Dla pętli UA_diffuse_3 utworzono 9 różnych postaci kodu źródłowego, o następujących
wartościach zmiennych NUM_THREADS oraz CHUNK_SIZE:
Postać kodu źródłowego pętli UA_diffuse_3, N=30
NUM_THREADS
CHUNK_SIZE
postać 1
postać 2
postać 3
postać 4
postać 5
postać 6
postać 7
postać 8
postać 9
2
2
2
3
3
3
4
4
4
domyślny
5
3
3
domyślny
5
5
3
domyślny
Dla każdej z tych 9 postaci, dokonano oszacowania czasu jej wykonania w docelowym
środowisku sprzętowym w przeliczeniu na 1 wątek, wykorzystując w tym celu model
szczególny, adekwatny dla pętli UA_diffuse_3. Wyniki oszacowań ustawiono w kolejności od
największego do najmniejszego, tworząc ciąg.
21
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Następnie, w docelowym środowisku wykonania wykonano kody źródłowe odpowiadające
poszczególnym wartościom z ciągu i zapisano zmierzony empirycznie rzeczywisty czas ich
wykonania w przeliczeniu na 1 wątek.
Niech:
t
– liczba wszystkich, podanych na wejściu, różnych postaci kodu źródłowego
pętli UA_diffuse_3 (t = 9)
k (0 < k < t)
– jest wartością podaną przez użytkownika, oznaczającą przyjętą liczbę
kodów źródłowych pętli UA_diffuse_3 o najkrótszych oszacowanych
czasach wykonania.
Dla k kodów źródłowych pętli UA_diffuse_3 o najkrótszych oszacowanych czasach
wykonania, porównano oszacowane czasy wykonania ze zmierzonymi czasami wykonania
tych kodów. Do ostatecznego stosowania wybrano ten spośród k kodów źródłowych, którego
zmierzony czas wykonania był najkrótszy.
Na kolejnych wykresach (patrz Rysunek 3) przedstawiono, jak wygląda wybór kodu do
ostatecznego stosowania w zależności od przyjętej wartości k. Żółtymi słupkami oznaczono
kody źródłowe, brane pod uwagę przy wyborze kodu do ostatecznego stosowania. Błękitnym
prostokątem oznaczono kod źródłowy, który miał najkrótszy zmierzony czas wykonania w
środowisku docelowym. Był to kod źródłowy nr 8.
22
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
95
,0
1
,78
26
,9
07
11
,2
4
37
37
48
99
,9
48
84
,6
37
postać 9
8
95
,0
72
06
,2
1
37
26
,9
07
37
4
37
,78
2
84
,6
11
,2
48
99
,9
8
2
08
,6
49
48
50
,5
72
71
,6
23
3
k=1 postaci kodu źródłow ego, o
najlepszych rokow aniach odnośnie
czasu w ykonania
szacow ana liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
modelu - Yt(per_thread)
9
0
postać 1
postać 9
23
6
6
,0
34
,0
06
,0
06
26
30
30
6
1 000
,2
36
2 000
0
liczba taktów zegara CPU
1
37
26
,9
07
37
4
11
,2
37
,78
2
48
84
,6
8
48
99
,9
2
08
,6
49
5
1
8
71
06
,2
72
95
,0
5
1
50
,5
72
8
2
08
,6
49
9
postać 8
faktyczna liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
pomiaru - γ(per_thread)
30
,0
02
liczba taktów zegara CPU
2
71
72
06
,2
5
1
50
,5
liczba taktów zegara CPU
1
26
,9
07
37
4
11
,2
37
3
,6
23
,0
34
23
26
postać 7
37
9
postać 8
,1
16
postać 7
postać 2
postać 3
postać 4
postać 5
postać 6
postać 7
postać 8
postać 9
Postać kodu źródłowego
Postać kodu źródłowego
Rysunek 3
postać 6
48
postać 6
3 000
1
postać 5
4 000
,8
51
postać 4
postać 5
Faktyczny a szacowany czas wykonania
różnych postaci kodu źródłowego pętli UA_diffuse_3, N=30
k=1
48
szacow ana liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
modelu - Yt(per_thread)
9
postać 3
postać 4
5 000
2
,6
23
3
postać 2
6
postać 3
6 000
,3
29
23
6
,0
34
,0
06
6
6
,0
06
26
30
30
,2
36
0
0
postać 1
,0
06
k=3 postaci kodu źródłow ego, o
najlepszych rokow aniach odnośnie
czasu w ykonania
faktyczna liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
pomiaru - γ(per_thread)
30
,0
02
1 000
30
postać 2
7 000
49
9
2 000
szacow ana liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
modelu - Yt(per_thread)
Postać kodu źródłowego
37
,1
16
1
2
,8
51
48
48
,3
29
3 000
49
4 000
6
5 000
,0
06
postać 1
8 000
6 000
30
6
0
postać 9
Faktyczny a szacowany czas wykonania
różnych postaci kodu źródłowego pętli UA_diffuse_3, N=30
k=zaokrąglenie w górę (0,3 x 9)
7 000
,2
36
1 000
Postać kodu źródłowego
8 000
30
0
postać 8
faktyczna liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
pomiaru - γ(per_thread)
,0
02
postać 7
2 000
k=5 postaci kodu źródłow ego, o
najlepszych rokow aniach odnośnie
czasu w ykonania
37
postać 6
9
postać 5
,1
16
postać 4
48
postać 3
1
postać 2
3 000
,8
51
9
postać 1
4 000
48
,6
23
3
0
5 000
2
23
6
,0
34
,0
06
26
30
6
6
,0
06
0
,2
36
30
30
,0
02
1 000
szacow ana liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
modelu - Yt(per_thread)
6 000
,3
29
9
faktyczna liczba taktów zegara
CPU, przypadająca na 1 w ątek w g
pomiaru - γ(per_thread)
37
,1
16
2 000
k=9 postaci kodu źródłow ego, o
najlepszych rokow aniach odnośnie
czasu w ykonania
7 000
49
48
1
2
,8
51
,3
29
3 000
48
4 000
37
5 000
,78
2
84
,6
48
48
99
,9
8
2
08
,6
49
6 000
72
8
95
,0
8 000
71
5
72
06
,2
1
50
,5
72
7 000
49
liczba taktów zegara CPU
8 000
8
Faktyczny a szacowany czas wykonania
różnych postaci kodu źródłowego pętli UA_diffuse_3, N=30
k=zaokrąglenie w górę (0,5 x 9)
Faktyczny a szacowany czas wykonania
różnych postaci kodu źródłowego pętli UA_diffuse_3, N=30
k=9
Wybór postaci kodu źródłowego do ostatecznego stosowania, wg autorskiej procedury przeprowadzenia kompilacji iteracyjnej przy
wykorzystaniu modeli szczególnych – pętla UA_diffuse_3 (N = 30)
23
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Dla k = 1, kod źródłowy nr 8 (kod o najkrótszym czasie wykonania) NIE został wybrany do
ostatecznego stosowania.
Dla k > 1, do ostatecznego stosowania został wybrany kod źródłowy nr 8 (kod o najkrótszym
czasie wykonania).
Należy tu zauważyć, że im większa wartość k, tym dłuższy czas wykonania kompilacji
iteracyjnej. Jednocześnie, ze wzrostem k, wzrasta prawdopodobieństwo wyboru, do
ostatecznego stosowania, kodu źródłowego o najkrótszym (spośród wszystkich kodów,
podanych na wejściu) czasie wykonania.
Czas wykonania kompilacji iteracyjnej wg zaproponowanej procedury, w zależności od
przyjętej wartości k, przedstawiono na Rysunku 4.
Czas wykonania kompilacji iteracyjnej wg zaproponowanej procedury, dla pętli UA_diffuse_3 (N=30)
9
0 ,9
49
8
0 ,4
24
0
4
45 000
liczba taktów zegara CPU
40 000
3
4 ,2
03
33
35 000
5
9 ,1
83
25
30 000
25 000
20
SUKCES - stosując zaproponowaną
prcedurę, znaleziono wśórd
rozpatrywanych kodów postać o
najkrótszym czasie wykonania
4
0 ,5
93
6
0 ,5
03
16
20 000
15 000
3
5 ,9
14
11
3
74
PORAŻKA - stosując zaproponowaną
prcedurę, NIE znaleziono wśórd
rozpatrywanych kodów postaci o
najkrótszym czasie wykonania
3
10 000
0
4,7
72
6,
91
50 000 47
5 000
0
9
8
7
6
5
4
3
2
1
k
Rysunek 4
Czas wykonania kompilacji iteracyjnej wg zaproponowanej procedury, dla pętli
UA_diffuse 3 (N = 30)
Dla pętli UA_diffuse_3 (N = 30) optymalna wartość k to 2; czas wykonania kompilacji
iteracyjnej wynosi wówczas około 7 500 przyjętych jednostek miary czasu. Dla k = 9, czas
ten wynosi około 47 500 jednostek, czyli jest ponad 6-krotnie dłuższy.
Rozdział ‎4
Badania eksperymentalne
W rozdziale 4 dysertacji przedstawiono sposób przeprowadzenia badań eksperymentalnych,
ich cele oraz podsumowanie uzyskanych wyników.
Celem badań eksperymentalnych było:


wyznaczenie wartości parametrów a1, a2, a3, a4 dla przykładowych modeli
szczególnych,
przeprowadzenie oceny jakości przykładowych modeli szczególnych w aspekcie
jakościowym i ilościowym.
24
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Aby wyznaczyć wartości parametrów a1, a2, a3, a4 dla 2 przykładowych modeli
szczególnych, wykorzystano autorskie pętle wzorcowe: nonInterf oraz matmul.
Dla wykazania przydatności zaproponowanego modelu do stosowania go podczas kompilacji
iteracyjnej, wykorzystano zbiór testów referencyjnych NAS Parallel Benchmarks (NPB) ([6]
[9]). NPB został wykorzystany z uwagi na to, że jest przeznaczony do oceny wydajności
komputerów równoległych i obejmuje dużą liczbę bardzo różnorodnych pętli.
Do badań wybrano 10 pętli programowych, pochodzących ze zbioru NPB. Pętle programowe
wybrane do badań były inne niż programy-wzorce ponownego użycia danych, ale cechowały
się takim samym typem ponownego użycia danych, co programy-wzorce. Przy pomocy
modeli szczególnych, oszacowano czasy wykonania różnych postaci 10 wybranych pętli
programowych. Łącznie, oszacowano czas wykonania 307 różnych kodów źródłowych.
Dla wszystkich analizowanych pętli, przeprowadzono weryfikację hipotezy o normalności
rozkładu reszt (uzyskanych dla odnośnych modeli szczególnych), wykorzystując w tym celu
test Kołmogorowa-Smirnowa. Na podstawie uzyskanych wyników testu KołmogorowaSmirnowa, we wszystkich analizowanych przypadkach można przyjąć, że wspomniany
rozkład jest rozkładem normalnym.
Dla każdej z wybranych pętli, zaobserwowano zgodność kierunku zmian zmierzonych
czasów wykonania poszczególnych wersji danej pętli z kierunkiem zmian odpowiadających
im czasów oszacowanych według modeli szczególnych. Wniosek o występowaniu zgodności
kierunku zmian zmierzonych czasów wykonania i oszacowanych czasów wykonania
sformułowano na podstawie porównania trendów liniowych przedstawiających tendencję
zmian zmierzonych czasów wykonania z trendami liniowymi przestawiającymi tendencję
zmian oszacowanych czasów wykonania
Średni oraz maksymalny błąd względny oszacowania w porównaniu z czasem zmierzonym
empirycznie dla wszystkich postaci kodu źródłowego, przyjętych dla danej pętli i dla danego
rozmiaru problemu rozwiązywanego w pętli, nie przekraczały odpowiednio 55 i 65 punktów
procentowych. Tak więc, dla każdej z wybranych pętli, oszacowania dokonane według
modeli szczególnych były zadawalająco dokładne – co potwierdzało prawdziwość hipotezy
badawczej przyjętej w pracy.
Na podstawie przedstawionych w pracy wyników badań eksperymentalnych, dla każdej z
wybranych pętli oszacowano także skrócenie czasu trwania kompilacji iteracyjnej (a w
konsekwencji: czasu wytwarzania oprogramowania), jakie można by uzyskać, stosując
modele szczególne zgodnie z opracowaną w ramach pracy procedurą ich wykorzystania w
kompilacji iteracyjnej. Przyjęto następujące oznaczenia:
t
– liczba wszystkich, podanych na wejściu, różnych postaci kodu źródłowego
danej pętli
k (0 < k < t)
– jest wartością podaną przez użytkownika, oznaczającą przyjętą liczbę
kodów źródłowych danej pętli o najkrótszych oszacowanych czasach
wykonania.
kmin
– minimalna wartość k gwarantująca, że do ostatecznego stosowania
zostanie wybrany kod o najkrótszym czasie wykonania zmierzonym w
środowisku sprzętowym
Uzyskane wyniki przedstawiono w niniejszym autoreferacie, w tabelach 9 ÷ 11.
25
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Tabela 9
Skrócenie czasu wykonywania kompilacji iteracyjnej
szczególnego wyprowadzonego dla pętli nonInterf
Rozmiar
zadania
wykonywanego
w pętli
Pętla
t
po
zastosowaniu
modelu
Czas T wykonania kompilacji
iteracyjnej dla
Skrócenie
kompilacji
iteracyjnej
t kodów
źródłowych
= (Tt / Tkmin)
k min
kmin kodów
źródłowych
CG_cg_3
CG_cg_3
CG_cg_3
CG_cg_4
CG_cg_4
CG_cg_4
75 000
118 000
160 000
100 000
215 000
330 000
8
8
8
8
8
8
2
2
2
2
1
1
1 957,38
3 007,58
4 086,69
2 053,32
4 334,33
6 630,62
341,16
516,88
698,61
354,45
369,65
560,69
5,74
5,82
5,85
5,79
11,73
11,83
FT_auxfnct_2
FT_auxfnct_2
FT_auxfnct_2
LU_HP_pintgr_11
LU_HP_pintgr_11
LU_HP_pintgr_11
MG_mg_3
MG_mg_3
MG_mg_3
UA_diffuse_2
UA_diffuse_2
UA_diffuse_2
30
38
45
200
265
330
26 000
57 444
88 888
80 000
173 333
266 666
8
9
8
8
8
8
6
6
6
6
6
6
1
3
3
2
1
1
1
2
2
1
2
2
1 970,33
4 262,63
6 449,17
2 411,02
4 189,57
6 463,89
1 415,69
3 077,12
4 721,80
1 507,84
3 209,56
4 952,80
170,82
1 115,40
1 827,18
415,78
357,66
547,95
168,43
723,66
1 105,69
178,29
753,97
1 160,27
11,53
3,82
3,53
5,80
11,71
11,80
8,41
4,25
4,27
8,46
4,26
4,27
Tabela 10
Skrócenie czasu wykonywania kompilacji iteracyjnej
szczególnego wyprowadzonego dla pętli matmul
Pętla
UA_diffuse_3
UA_diffuse_3
UA_diffuse_3
UA_diffuse_4
UA_diffuse_4
UA_diffuse_4
UA_transfer_11
UA_transfer_11
UA_transfer_11
UA_transfer_16
UA_transfer_16
UA_transfer_16
Rozmiar zadania
wykonywanego
w pętli
30
50
71
30
50
71
100
267
433
100
267
433
t
po
zastosowaniu
Czas T wykonania kompilacji
iteracyjnej dla
Skrócenie
kompilacji
iteracyjnej
t kodów
źródłowych
kmin kodów
źródłowych
= (Tt / Tkmin)
7 434,70
28 664,12
440 496,92
3 553,01
27 287,32
406 675,21
3 075,79
58 900,22
259 521,85
6 137,31
58 795,83
251 492,63
6,39
12,81
3,53
12,80
12,80
3,53
12,82
12,81
12,80
6,39
12,81
12,80
k min
9
9
9
9
9
9
9
9
9
9
9
9
2
1
3
1
1
3
1
1
1
2
1
1
47 490,99
367 227,10
1 553 446,57
45 461,97
349 379,17
1 436 886,56
39 440,76
754 399,16
3 322 817,71
39 222,20
753 418,47
3 219 799,16
26
modelu
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
Tabela 11
Skrócenie czasu wykonywania kompilacji iteracyjnej
szczególnego wyprowadzonego dla pętli matmul
Rozmiar zadania
wykonywanego
w pętli
Pętla
UA_diffuse_3 z
blokowaniem
UA_diffuse_3 z
blokowaniem
UA_diffuse_4 z
blokowaniem
UA_diffuse_4 z
blokowaniem
UA_diffuse_4 z
blokowaniem
UA_transfer_11 z
blokowaniem
UA_transfer_11 z
blokowaniem
UA_transfer_16 z
blokowaniem
UA_transfer_16 z
blokowaniem
Rozdział ‎5
t
po
zastosowaniu
modelu
Czas T wykonania kompilacji
iteracyjnej dla
Skrócenie
kompilacji
iteracyjnej
t kodów
źródłowych
= (Tt / Tkmin)
k min
kmin kodów
źródłowych
30
6
1
32 717,19
3 832,76
8,54
50
9
1
372 406,66
29 061,50
12,81
30
6
1
30 950,68
3 633,07
8,52
50
9
1
355 263,02
27 649,17
12,85
66
6
1
585 501,19
83 959,39
6,97
100
9
1
50 544,85
3 620,25
13,96
267
6
2
791 499,21
219 195,31
3,61
100
9
1
51 596,66
3 726,92
13,84
267
6
2
787 679,05
219 196,70
3,59
Podsumowanie
W rozdziale 5 dysertacji dokonano oceny otrzymanych wyników w odniesieniu do celu i tezy
pracy.
W wyniku przeprowadzonych badań eksperymentalnych empirycznie wykazano, że
wykorzystując autorski model zaproponowany w pracy można uzyskać zadawalającą
dokładność oszacowania czasów wykonania przykładowych pętli wybranych ze zbioru
testów referencyjnych NPB. Tym samym, potwierdzono prawdziwość hipotezy badawczej
przyjętej w pracy i poświadczono osiągnięcie celu pracy.
9.
WARTOŚĆ TEORETYCZNA
W pracy przedstawiono autorską rodzinę modeli do oszacowania czasu wykonania
programu, składającą się z modelu ogólnego oraz modeli szczególnych. Rodzinę tę
opracowano na podstawie danych empirycznych zebranych dla programów-wzorców,
będących reprezentantami arbitralnie wybranych cech związanych ze strukturą programu i
specyfiką środowiska wykonania programu.
Przykładowe modele szczególne należące do opracowanej rodziny zastosowano do
oszacowania czasu wykonania programów innych niż wzorce użyte do wyprowadzenia
przedmiotowych modeli szczególnych.
10. WARTOŚĆ PRAKTYCZNA
Oszacowano skrócenie czasu wykonywania kompilacji iteracyjnej (a w konsekwencji, czasu
wytwarzania oprogramowania) jakie można uzyskać, stosując modele szczególne zgodnie z
zaproponowaną w ramach pracy procedurą ich wykorzystania w kompilacji iteracyjnej. Dla
27
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
przykładów przedstawionych w pracy, a zaczerpniętych ze zbioru testów referencyjnych
NPB, czas wykonywania kompilacji iteracyjnej uległ skróceniu od około 3 do około 14 razy
(szczegółowe wyniki przedstawiono w niniejszym autoreferacie, w tabelach 9 ÷ 11).
11. AKCEPTACJA WYNIKÓW PRZEZ SPOŁECZNOŚĆ NAUKOWĄ
Wyniki, które uzyskano w ramach realizacji badań związanych z tematem pracy,
przedstawiono w następujących czasopismach:

Metody Informatyki Stosowanej,

Pomiary Automatyka Kontrola,

Przegląd Elektrotechniczny
oraz poddano dyskusji podczas następujących konferencji:

XIV Konferencja Naukowa „Reprogramowalne Układy Cyfrowe” RUC 2011,

I Konferencja Naukowa „Software and Security” SoftSec 2011,

II Konferencja Naukowa „Software and Security” SoftSec 2013.
12. ZAKOŃCZENIE
Celem pracy było:
Opracowanie rodziny modeli statystycznych (przewidywanych do zastosowania
w optymalizujących kompilatorach zrównoleglających) pozwalających na oszacowanie
czasu wykonania aplikacji gruboziarnistych w standardzie OpenMP C/C++ przez
komputery wieloprocesorowe z pamięcią dzieloną.
Aby zrealizować powyższy cel, należało wykazać, że:
Istnieje możliwość opracowania rodziny modeli statystycznych do oszacowania czasu
wykonania aplikacji gruboziarnistych w standardzie OpenMP C/C++, które pozwolą na
osiągnięcie zadawalającej dokładności oszacowania.
Aby wykazać prawdziwość przyjętej hipotezy badawczej, zrealizowano zadania cząstkowe
wskazane w rozdziale 4 autoreferatu.
W wyniku realizacji tych zadań, opracowano:


model ogólny wyrażony równaniem (7) (przedstawiony na stronie 15 autoreferatu),
procedurę wykorzystania modelu w kompilacji iteracyjnej.
Ostateczną postać modelu ogólnego (z kilku rozpatrywanych) wytypowano na podstawie
analizy statystycznej materiału empirycznego, zebranego dla 2 pętli: nonInterf i matmul.
Metody statystyczne wybrano z uwagi na ilościowy charakter problemu rozwiązywanego w
pracy oraz nieznany faktyczny charakter zależności liczbowych pomiędzy czynnikami, które
poddano analizie.
W zaproponowanym modelu ogólnym szacowany czas wykonania pętli programowej,
wyrażony zmienną Yt, został uzależniony od następujących czynników:



rozmiaru pamięci podręcznej L1 i L2, przypadającej na pojedynczy wątek OpenMP,
odcisku danych dla pojedynczego wątku OpenMP,
liczby i typu operacji wykonywanych przez pojedynczy wątek OpenMP,
28
AUTOREFERAT ROZPRAWY DOKTORSKIEJ


sposobu przydziału iteracji do wątków OpenMP,
liczby wątków OpenMP wykonujących program,
wyrażonych za pośrednictwem zmiennych niezależnych X1, X2, X3, X4, gdzie:
X1 – stosunek łącznego rozmiaru pamięci podręcznej L1 i L2, przypadającej na
pojedynczy wątek OpenMP, do odcisku danych dla pojedynczego wątku OpenMP;
X2 – łączna ważona liczba operacji przypadająca na pojedynczy wątek OpenMP,
X3 – maksymalna, dla danego sposobu przydziału iteracji do wątków OpenMP, wielkość
pojedynczej porcji iteracji przydzielonej do wykonania przez wątek,
X4 – liczba wątków OpenMP wykonujących program.
W oparciu o zaproponowany model ogólny, utworzono dwa przykładowe modele szczególne.
Przy pomocy modeli szczególnych, oszacowano czasy wykonania różnych postaci 10 pętli
programowych wybranych ze zbioru testów referencyjnych NAS Parallel Benchmarks (NPB)
[6] [9]. Łącznie, oszacowano czas wykonania 307 różnych kodów źródłowych.
Dla każdej z wybranych pętli, zaobserwowano zgodność kierunku zmian zmierzonych
czasów wykonania poszczególnych wersji danej pętli z kierunkiem zmian odpowiadających
im czasów oszacowanych według modeli szczególnych. Maksymalny błąd względny
oszacowania w porównaniu z czasem zmierzonym empirycznie dla wszystkich postaci kodu
źródłowego, przyjętych dla danej pętli i dla danego rozmiaru problemu rozwiązywanego w
pętli, nie przekraczał 65 punktów procentowych. Tak więc, dla każdej z wybranych pętli,
oszacowania dokonane według modeli szczególnych były zadawalająco dokładne – co
potwierdzało prawdziwość hipotezy badawczej przyjętej w pracy.
Dla każdej z wybranych pętli, oszacowano także spodziewane skrócenie czasu wykonywania
kompilacji iteracyjnej, jakie można by uzyskać, stosując modele szczególne zgodnie
z opracowaną w ramach pracy procedurą ich wykorzystania w kompilacji iteracyjnej. Dla
rozpatrywanych przykładów, czas wykonywania kompilacji iteracyjnej uległ skróceniu od
około 3 do około 14 razy (szczegółowe wyniki przedstawiono w tabelach 9 ÷ 11).
Uzyskane wyniki wskazują, że rozwiązanie autorskie zaproponowane w pracy jest
adekwatne do stosowania w kompilacji iteracyjnej w celach optymalizacyjnych i stanowią
potwierdzenie osiągnięcia celu pracy.
13. SPIS PUBLIKACJI
1.
Kamińska A. Model obliczeniowego szacowania czasu wykonania programu. Metody
Informatyki Stosowanej, nr 4/2011 (29), s. 125-134
2.
Kamińska A. Obliczeniowe szacowanie czasu wykonania programu. PAK, nr 02/2012,
s. 193-195
3.
Kamińska A., Bielecki W. Estimation of the execution time of coarse-grained parallel
program loops. Przegląd Elektrotechniczny, nr 2/2014, s. 85-88
4.
Kamińska A., Bielecki W. Model for the estimation of the execution time of parallel
program loops. Przegląd Elektrotechniczny, nr 2/2014, s. 125-127
5.
Kamińska A., Bielecki W. Obliczeniowe szacowanie lokalności danych na poziomie
pamięci podręcznej. Metody Informatyki Stosowanej, nr 4/2011 (29), s. 33-44
29
AUTOREFERAT ROZPRAWY DOKTORSKIEJ
6.
Kraska K., Kamińska A. Koncepcja metody zwiększania lokalności danych na poziomie
pamięci podręcznej oparta na transformacjach pętli programowych. Metody Informatyki
Stosowanej, nr 2/2010 (23), s.63-72
7.
Kraska K., Wierciński T., Kamińska A. Obliczeniowe szacowanie lokalności danych dla
programów ANSI-C. PAK, nr 08/2011, s.951-953
BIBLIOGRAFIA
[1]
Aho A.V., Lam M.S., Sethi R., Ullman J.D. Compilers: Principles, Techniques, and Tools (2nd
Edition). Addison Wesley, 2006
[2]
Berlińska J. Metody tworzenia modeli statystycznych charakteryzujących aplikacje równoległe
i rozproszone. Rozprawa doktorska. Politechnika Szczecińska, 2005
[3]
Cavazos J., O’Boyle M.F.P. Method-Specific Dynamic Compilation using Logistic Regression.
ACM SIGPLAN Notices, Vol. 41, No. 10, 2006, s. 229-240
[4]
Coleman S., McKinley K.S. Tile Size Selection Using Cache Organization and Data Layout.
ACM SIGPLAN Notices, Volume 30, Issue 6, 1995, s. 279-290
[5]
Esseghir K. Improving data locality for caches. Master’s thesis, Department of Computer
Science, Rice University, 1993
[6]
Haoqiang J., Frumkin M., Yan J. The OpenMP implementation of NAS parallel benchmarks and
its performance. Technical Report NAS-99-011, NASA Ames Research Center, 1999
[7]
Lam M.S., Rothberg E.E., Wolf M.E. The Cache Performance and Optimization of Blocked
Algorithms. ACM SIGARCH Computer Architecture News, Vol. 19, No. 2, 1991, s. 63-74
[8]
Lokuciejewski P., Stolpe M., Morik K., Marwedel P. Automatic Selection of Machine Learning
Models for WCET-aware Compiler Heuristic Generation. Proceedings of the 4th Workshop on
Statistical and Machine Learning Approaches to Architectures and Compilation (SMART), 2010,
s. 3-17
[9]
NAS Parallel Benchmarks [online] http://www.nas.nasa.gov/publications/npb.html [dostęp: 2013]
[10]
Park E., Kulkarni S., Cavazos J. An Evaluation of Different Modeling Techniques for Iterative
Compilation. Proceedings of the 14th international conference on compilers, architectures and
synthesis for embedded systems, ACM, 2011, s. 65-74
[11]
Pekhimenko G., Brown A.D. Efficient Program Compilation through Machine Learning
Techniques. Software Automatic Tuning, Springer New York, 2010, s. 335-351
[12]
Temam O., Fricker C., Jalby W. Cache interference phenomena. ACM SIGMETRICS
Performance Evaluation Review, Volume 22, Issue 1, 1994, s. 261-271.
[13]
Wolfe M. High Performance Compilers for Parallel Computing. Addison-Wesley, 1996
30

Podobne dokumenty