Models for estimating execution times of parallel program loops are discussed. The significance of parameters used for such estimation is analyzed. The significance analysis permits to determine the validity of parameters selected for estimation and to identify low significance parameters that may be eliminated.
PL
W artykule przedstawiono modele szacowania czasów wykonywania się pętli programowych w formie zrównoleglonej oraz przedstawiono analizę istotności parametrów stosowanych do tego szacowania. Analiza istotności pozwala określić trafność doboru poszczególnych parametrów oraz wskazać parametry o niskiej istotności, które można byłoby zredukować.
In this article, the authors proposed a model for estimating the execution time of the loop program, which time allow to reduce the time needed for application profiling and verify whether a given code fragment will be executed at faster time on multi-core machine or in a distributed system and how much it will improve. The same estimation is based on the source code and does not require compilation. Additionally, the model of the estimating the time has been extended by the estimating the communication time which is important for communication in distributed navigational systems, where transmission is performing in a limited connection.
PL
W niniejszym artykule zaproponowano model szacowania czasu wkopania pętli programowej, który pozwala na skrócenie czasu potrzebnego na profilowanie aplikacji i zweryfikowanie czy dany fragment kodu zostanie wykonany w sposób przyspieszony na maszynie wielordzeniowej czy w systemie rozproszonym i jakiego stopnia będzie to przyspieszenie. Samo szacowanie odbywa się na podstawie kodu źródłowego programu i nie wymaga jego kompilacji. Dodatkowo model szacowania czasu został rozbudowany o szacowanie czasu komunikacji co jest ważne w przypadku komunikacji w rozproszonych systemach nawigacyjnych, gdzie transmisja odbywa się w sposób ograniczony co do łącz.
W artykule zaprezentowano wpływ redukcji zależności na możliwość obliczenia tranzytywnego domknięcia grafu zależności. Redukcje zależności wykonano przy pomocy znanych technik (redukcja zmiennych skalarnych i indukcyjnych, przekoszenie pętli, podział i łączenie pętli, rozszerzenie zmiennych skalarnych). Przedstawiono problemy związane z obliczeniem tranzytywnego domknięcia grafu zależności. Dla zbioru pętli testowych z benchmarku NAS przedstawiono wyniki statystyczne z przeprowadzonych badań. Dla wybranej pętli zaprezentowano wykorzystanie metod redukcji zależności, ich wpływ na liczbę relacji zależności oraz na możliwość obliczenia tranzytywnego domknięcia grafu zależności.
EN
The paper presents the impact of reducing dependence on possibility of calculating the transitive closure. The reductions were made according to the well known techniques (scalar reduction, induction variable elimination, loop skewing, loop splitting, loop fissioning, scalar expansion). The publication presents the background associated with data dependencies. In addition, reduction techniques (with simple examples) used in the experiments are presented. The problems associated with the transitive closure calculation are discussed. There are given the statistic results of experimental studies on a set of benchmark loop. For a chosen loop from NAS Parallel Benchmark the effectiveness of each reduction technique is shown. The impact of reduction on the transitive closure calculation is described for a selected example, where the impact of each reduction technique on the number or dependency relations is presented in detail. In the last section the experimental observations are summarized and the importance of reducing dependence is explained.
W artykule przedstawiono nowy algorytm wyznaczania punktów reprezentatywnych cechujacy się mniejszą złożonością obliczeń w porównaniu do rozwiazania [6-7]. Powodzenie wyznaczania punktów jest zależne tylko od obliczenia dokładnego tranzytywnego domknięcia unii relacji zależności pętli. Oprócz tego należy wykonać szereg podstawowych operacji, jak: część wspólna, iloczyn skalarny, unia, aplikacja relacji na zbiorze, inwersja, projekcja. Relacja RUSC budowana jest wieloetapowo dzięki czemu można dokonywać pośrednich uproszczeń jej postaci. Opisane podejście zostało zaimplementowane i przetestowane pod kątem skuteczności na zbiorze pętli testowych NAS. W dalszych badaniach planowane jest zbadanie proponowanego algorytmu z innymi zbiorami pętli testowych oraz dalsze udoskonalanie algorytmów do wyznaczania fragmentów dla dowolnej topologii zależności pod kątem generowania wydajnego kodu równoległego.
EN
An algorithm of finding representatives of synchronization-free slices available in program loops is presented. It based on the transitive closure of a union of dependence relations describing all the dependences in program loops. An algorithm to calculate transitive closure is studied. Both the algorithms are implemented by means of the Omega library. The results of experiments with the NAS Parallel Benchmark are discussed.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.