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.
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.
Ta witryna wykorzystuje pliki cookies do przechowywania informacji na Twoim komputerze. Pliki cookies stosujemy w celu świadczenia usług na najwyższym poziomie, w tym w sposób dostosowany do indywidualnych potrzeb. Korzystanie z witryny bez zmiany ustawień dotyczących cookies oznacza, że będą one zamieszczane w Twoim komputerze. W każdym momencie możesz dokonać zmiany ustawień dotyczących cookies
Informacja
SZANOWNI CZYTELNICY!
UPRZEJMIE INFORMUJEMY, ŻE BIBLIOTEKA FUNKCJONUJE W NASTĘPUJĄCYCH GODZINACH:
Wypożyczalnia i Czytelnia Główna: poniedziałek – piątek od 9.00 do 19.00