Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 6

Liczba wyników na stronie
first rewind previous Strona / 1 next fast forward last
Wyniki wyszukiwania
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
PL
Krytycznym czynnikiem warunkującym wydajność obliczeniową oprogramowania jest lokalność dostępu do danych. Dlatego oczekuje się od narzędzi kompilacji automatyzacji procesu przekształcenia nieoptymalnego kodu do postaci charakteryzującej się wysoką lokalnością danych. W artykule przedstawiono podejście pozwalające na oszacowanie lokalności danych programów na podstawie kodu źródłowego w języku ANSI-C. Omówiono wyniki przeprowadzonych badań eksperymentalnych oraz wskazano kierunki dalszych prac.
EN
Good data locality, comprehended as such placement of program data in memory that program data requested by the processor are available immediately on demand, is a critical software requirement for achieving high efficiency in data processing. One of the ways to achieve good data locality is to transform source codes at the compilation stage so as to improve their usage of the cache memory and, thus, fully benefit from the concept of memory hierarchy. Modern compilers are expected to carry out this kind of optimization automatically, by adopting relevant transformations. In order to select the transformation which is best for this purpose for a given source code, the compiler should be able to compare, from this point of view, the available transformations and indicate the one that produces a semantically identical code of the shortest execution time possible. The paper briefly describes Wolfe's method of esti-mating data locality based on calculations carried out directly on the source code under analysis, without any need to carry out time consuming compilation of the source code to its executable form and to collect memory access metrics at run time. The paper also presents in outline how the authors implemented in C++ a software module estimating data locality for ANSI-C source codes based on Wolfe's method. The paper discusses the results of adopting the proposed approach to some selected source codes and indicates directions of further works.
PL
W pracy przedstawiono analizę możliwości szacowania czasu wykonania pętli programowych wykonywanych w sposób sekwencyjny i zrównoleglony z wykorzystaniem transformacji pętli FAN, PAR i PIPE oraz modelu T. Lewisa, a także przedstawiono propozycję dopasowania parametrów tego modelu do nowoczesnej architektury procesorów. Uzyskanie prawidłowych wartości parametrów (r0, r1 w0, w1) jest utrudnione z powodu braku wyłącznego i stałego dostępu do procesora. Niedokładne oszacowanie parametrów wpływa na wyniki uzyskane dla modeli przedstawionych w [1]. Zamiana parametrów przedstawionych w [1] na parametry zaproponowane w artykule umożliwia dokładniejsze oszacowanie czasu wykonania pętli programowych. Poprzez wprowadzenie zaproponowanych parametrów do modeli szacowania czasu wykonywania pętli zarówno sekwencyjnych jak i zrównoleglonych zmniejszono błąd szacowania przyspieszenia i wyniósł on od 30% dla pętli FAN do 79% dla pętli PIPE.
EN
Article presents T. Lewis models for estimating the execution time and the speedup of program loops depending on a hop transformation. Adapting the mathematical models to the current processor architectures in order to obtain preciser results is described. The results of comparison the estimated values to the real time of the loop execution are presented.
PL
Artykuł dotyczy wykorzystania kompilacji iteracyjnej do optymalizacji warstwy programowej systemów wbudowanych. W oparciu o autorskie narzędzie WIZUTIC zminejszono czas przetwarzania algorytmu szyfrowania DES. Danymi wejściowymi kompilatora są programy sekwencyjne, wynikami programy zrównoleglone zgodnie ze standardem OpenMP oraz zoptymalizowane pod względem lokalności danych. Parametrem kompilacji iteracyjnej jest rozmiar bloku dla transformacji pętli programowej-tiling.
EN
Embedded systems are special-purpose computers that perform one or few dedicated tasks. They are mostly part of larger electronic devices, such as communication devices, home appliances, office automation, business equipment, automobiles, etc. Complexity of computers has grown tremendously in recent years, because multi-core processors are in widespread use. Parallelized programs must be run on multi-core processors to use the most of its computing power. Exploiting parallel compilers for automatic parallelization of sequential programs accelerates design processes and reduces costs of the designed systems. In this paper there is described a WIZUTIC iterative compiler developed by the Faculty of Computer Science and Information Technology of the West Pomeranian University of Technology. It uses the source code of PLUTO parallel compiler developed at the Ohio State University by Uday Bondhugula. A simulated annealing algorithm is used for finding optimization passes for the given program features. Parameters that are changed in each iteration are tile sizes of loop transformation tiling. Experimental tests are described and the speed-up results obtained for the DES encryption algorithm are given.
4
Content available Automatic tuning framework for parallelized programs
EN
Complexity of computers has grown tremendously in recent years, because, among others, multi-processor and multi-core architectures are in widespread use. Parallelized programs should run on multi-core processors to use the most of its computing power. Exploiting parallel compilers for automatic parallelization and data locality optimization of sequential programs reduces costs of software. In this paper there is described the WIZUTIC Compiler Framework developed in the Faculty of Computer Science and Information Technology of the West Pomeranian University of Technology. The application uses the source code of the PLUTO parallel compiler developed in the Ohio State University by Uday Bondhugula. The simulated annealing method and the Bees algorithm are used for finding proper transformations of the source code for given program features. The experimental study results using the Data Encryption Standard (DES) algorithm are described and the speed-ups of encryption and decryption processes are presented.
PL
W artykule przedstawiono autorski kompilator zrównoleglający oraz optymalizujący lokalność danych- WIZUTIC oraz jego wykorzystanie do skrócenia czasu przetwarzania algorytmu szyfrowania DES. Do utworzenia kompilatora WIZUTIC transformującego kod źródłowy zapisany w języku C ze źródła do źródła wykorzystano kody źródłowe kompilatora PLUTO autorstwa Uday'a Bondhuguli służącego do optymalizacji lokalności danych z zastosowaniem transformacji tiling oraz zrównoleglenia pętli programowych z wykorzystaniem gruboziarnistej równoległości. W procesie kompilacji wykorzystano technikę kompilacji iteracyjnej oraz dwie metody optymalizacji: symulowane wyżarzanie (SA) oraz algorytm pszczół (BA) służące do określenia odpowiedniego rozmiaru bloku transformacji tiling. Przedstawiono wyniki badań eksperymentalnych dla algorytmu DES pracującego w trybie ECB. Badania przeprowadzona z zastosowaniem maszyny 8-procesorowej Quad Core Intel Xeon Processor Model E7310, kompilatora GCC GNU z wykorzystaniem standardu OpenMP w wersji 3.0 oraz narzędzia do profilowania kodu Intel VTune.
PL
Artykuł prezentuje nowe podejście do projektowania systemów wbudowanych z użyciem języka C z dyrektywami OpenMP. Opisano w nim motywację użycia standardu OpenMP do syntezy sprzętowo-programowej. Przedstawiono proponowane rozwiązanie oraz porównano je z klasycznym projektowaniem systemów sprzętowych. Przedstawiono także konstrukcje równoległe standardu OpenMP, syntezowane do postaci współbieżnych układów cyfrowych. Pokazano przykładowy program w języku OpenMP wraz z jego przekładem do kodu SystemC oraz schemat RTL układu będącego wynikiem syntezy opisanego źródła.
EN
The embedded system is a special-purpose computer that performs one or a few dedicated tasks. It contains hardware and software parts [3]. The paper presents a new approach to embedded system design using C language with OpenMP directives. It is different from classic hardware design (Fig. 1a) because it allows describing both hardware and software using a common language (Fig. 1b). OpenMP is a standard that specifies parallel programs using a shared memory architecture. It is the collection of compiler directives and runtime library functions in C/C++ and Fortran languages [11]. Support for concurrency that corresponds to hardware performance is the main motivation of using OpenMP to embedded system design. OpenMP enables describing chips on high level of abstraction without knowledge about details of its structure. It improves flexibility of the software/hardware migration. OpenMP offers simulation, verification and estimation of the system performance. There is sufficient amount of legacy C libraries which facilitate the task of system modeling. Fig. 2a shows an example of OpenMP code that adds two matrixes A and B using a parallel loop. The systemC program being the results of behavioral synthesis of the example 2a is presented in Fig. 2b. Parallel regions in OpenMP have been transformed to SC_METHODS processes in SystemC. Fig. 3 shows the RTL schematic diagram of the chip synthesized from a code 2b. It contains three blocks proc1, proc2, proc3 that are equivalent to threads in OpenMP program. A schematic diagram of the single block is presented in Fig. 4. The unit consists of an adder, a FDE flip-flop that realizes barrier synchronization and two FDR flip-flops representing signals S and R.
6
Content available remote Usage of C/C++ languages with OpenMP directives to embedded systems design
EN
Article presents a new approach to embedded systems design using C/C++ languages with OpenMP directives. Motivations of using the OpenMP standard for hardware/software codesign are presented. A proposed approach of the chip design is described and compared with a classie approach. It is differ from a classie hardware design because it allows us to describe both hardware and software using only one language. OpenMP parallel constructs are presented that can be translated into concurrent hardware modules.
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ć.