Tytuł pozycji:
Automatic tuning framework for parallelized programs
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.
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.