Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 3

Liczba wyników na stronie
first rewind previous Strona / 1 next fast forward last
Wyniki wyszukiwania
Wyszukiwano:
w słowach kluczowych:  shared memory programming
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
EN
In last few years, there were discovered many methods aiming at enhancing the speedup of parallel programs. In this paper three methods are tested according to a speedup parameter enhancement. These methods are: the tiling, the slicing, and the tiling inside slicing. In Sections 3, 4, and 5 the theoretical basis for chosen transformation are described. Algorithms of transformation processes as operations on a polyhedral model are presented. The problems of transformation costs are also discussed. For experimental studies a UTDSP benchmark was used. From each section, one representative sample was chosen. The results were also examined against a data locality. This aspect of chosen transformation methods was examined as well.
PL
W artykule przedstawiono problem doboru metody transformacji pętli celem uzyskania możliwie maksymalnego przyspieszenia. Do badań wybrano benchmark UTDSP z uniwersytetu w Toronto. Z każdej sekcji benchmarku wybrano reprezentanta, który poddany został transformacjom tiling, slicing oraz transformacji tiling wewnątrz slicingu. W pierwszym rozdziale przedstawiony został wstęp do transformacji pętli. Rozdział drugi zawiera informacje teoretyczne na temat modelu polihedronu jako formy reprezentacji pętli, na której przeprowadzane są transformacje, a wynikowy model jest bazą do generowania kodu źródłowego. Kolejne rozdziały przedstawiają opis teoretyczny transformacji tiling oraz slicing. Przedstawiono w nich algorytm tworzenia tych transformacji wraz z przekształceniami matematycznymi, opisującymi transformacje na modelu polihedronu. W końcowej części pracy badano wpływ wybranych transformacji na przyspieszenie programów. Wyniki badań przedstawione zostały w formie zagregowanych wykresów przyspieszeń poszczególnych aplikacji.
EN
A common method to establish code parallelization quality is measuring the program execution time to calculate speedup and efficiency. Generally, parallel and sequential programs must be executed and execution time need to be captured to affirm quality parameters. However, having a good profiling tool, it is easier to designate parameters such as a bus utilization ratio, rather than the measuring program execution time. Having a piece of information about processor and memory ratios, it is possible to estimate quality parameters with satisfying results. In this paper an example solution of the effectiveness prediction process of parallel programs written in OpenMP is provided. As an approach, a fuzzy model was designed and results for a matrix multiplication program are presented. The fuzzy model and a modus operandi are described. Nevertheless, parameters for estimating the efficiency and speedup were implemented using Intel processors event calculation. These parameters are input values of the fuzzy model presented in this paper. According to processor events, the input parameters where divided into two groups. Each group represents one of a submodel in the whole fuzzy model. It provides possibility to measure only some of processor events to estimate the program efficiency. More details on these parameters are included in separate paragraphs.
PL
W artykule przedstawiony został problem dotyczący określenia jakości wygenerowanego kodu równoległego. Mierzenie czasu wykonania programu celem wyznaczenia przyspieszenia jest nieefektywne, a w niektórych przypadkach wręcz niewykonalne. Posiadając narzędzie profilujące dedykowane dla danego typu procesora, możliwe jest stworzenie modelu, który estymował by efektywność wykonywanego programu na podstawie parametrów pamięci cache poziomu drugiego oraz procesora. Dzięki takiemu rozwiązaniu możliwe jest określenie jakości wygenerowanego kodu i podjęcie na tej podstawie decyzji czy warto dalej optymalizować wygenerowany kod. Celem wykonania pomiaru parametrów pamięci i procesora wystarczy wykonywać program przez określony wycinek czasu nie czekając na jego zakończenie. Nie ma również konieczności ingerowania w kod źródłowy programu. Niniejszy artykuł prezentuje model rozmyty estymujący efektywność wygenerowanego kodu źródłowego w standardzie OpenMP.
3
Content available An automatic parallel OpenMP code generation
EN
This paper presents a problem of generating an efficient parallel code from an existing sequential code in an automatic way. The main part of this paper is dedicated to the description of the automatic parallel code generation process. Not only an idea of building an automatic code generation tool is provided, but also a theoretical basis which allows us to understand the optimization problem of parallel code. In the theoretical part of the article the solution has been proposed for measuring the quality of code executed by determining the parameters of speedup and efficiency. Also information about known problems associated with parallel processing and speed of code were provided. Discusses, inter alia, impact on the effectiveness and performance of the barrier synchronization. Also a problem with scheduling in the performance of the CPU load of parallel threads is presented. An example of code generated by a tool under development is explained. Some results of experiments are provided to present code quality measurements. The results come from the first iteration of the program, which does not attempt to optimize the generated code in terms of improved locality. Iteration does not include the attempt to generate code that would contain less of a barrier synchronization. These features are under the implementation phase.
PL
W artykule przedstawiony został problem dotyczący stworzenia automatycznego narzędzia generującego kod w standardzie OpenMP, który byłby efektywnie wykonywany pod danym środowiskiem uruchomieniowym. Artykuł przedstawia podstawy teoretyczne związane ze sposobem pomiaru jakości wygenerowanego kodu, jak również przedstawia model narzędzia wykonującego automatyczną generację wydajnego kodu w standardzie OpenMP. W części teoretycznej zaproponowane zostało rozwiązanie problemu pomiaru jakości wykonywanego kodu za pomocą określenia parametrów przyspieszenia i efektywności. Opisany został sposób, w jaki można uzyskać dokładne wartości tych parametrów podczas wykonywania aplikacji równoległych. Zawarto również informacje na temat znanych problemów związanych z przetwarzaniem równoległym i szybkością działania kodu. Omówiono między innymi wpływ synchronizacji barierowej na efektywność wykonywanych programów. Przedstawiono także problem równomiernego obciążenia procesorów podczas wykonywania wątków programu równoległego. Oprócz architektury narzędzia, zaprezentowane zostały wyniki badań uzyskane z częściowo zaimplementowanej już aplikacji. Wyniki pochodzą z pierwszej iteracji działania programu, która nie podejmuje próby optymalizacji wygenerowanego kodu pod względem zwiększenia lokalności. Iteracja ta nie zawiera również próby wygenerowania kodu, który zawierał by mniej synchronizacji barierowych. Powyższe funkcjonalności są w fazie implementacji.
first rewind previous Strona / 1 next fast forward last
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ć.