Ograniczanie wyników
Czasopisma help
Autorzy help
Lata help
Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 23

Liczba wyników na stronie
first rewind previous Strona / 2 next fast forward last
Wyniki wyszukiwania
Wyszukiwano:
w słowach kluczowych:  programowanie równoległe
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 2 next fast forward last
EN
The article presents a comparison of Kotlin coroutines with analogous solutions in Java and Scala in parallel program-ming using chosen metric and non-metric criteria. For that purpose, a multi-module project with corresponding imple-mentations of selected algorithms in all of the three languages was created and then analyzed. The studies were preced-ed by a description of the created project.
PL
Artykuł prezentuje porównanie wykorzystania współprogramów języka Kotlin w przetwarzaniu równoległym do analogicznych rozwiązań w Javie i Scali względem wybranych kryteriów mierzalnych i niemierzalnych. W tym celu stworzono oraz przeanalizowano wielomodułową aplikację z odpowiadającymi sobie implementacjami wyselekcjonowanych algorytmów w trzech wspomnianych językach. Analiza poprzedzona została opisem utworzonego projektu.
PL
W artykule zaprezentowano praktyczną implementację aplikacji rozwiązującej przykładowy algorytm genetyczny z wykorzystaniem akceleratorów GPU. W tym przypadku zdecydowano się na rozwiązanie za pomocą algorytmu genetycznego typowego problemu optymalizacyjnego, jakim jest problem komiwojażera. Dodatkowo w celu wykorzystania mocy karty graficznej w tworzonej aplikacji wykorzystano technologię programowania na karcie graficznej – technologię Nvidia CUDA.
EN
The paper presents a practical implementation of a local desktop application that solves exemplary genetic algorithm with the use of GPU accelerators. In this case decided with the use of genetic algorithm to solve typical optimization problem which is travelling salesman problem. Additionally used Nvidia CUDA programming technology in order to use power of GPU in created application.
PL
Dzisiejsze procesory w komputerach osobistych i urządzeniach mobilnych umożliwiają coraz bardziej efektywne zrównoleglanie działań w celu szybszego uzyskania wyników. Twórcy oprogramowania mają wiele różnych możliwości zaimplementowania współbieżności, jednak zazwyczaj trzymają się jednej, najbardziej znanej sobie techniki. Warto prześledzić działanie każdej z nich, aby odkryć, kiedy można ją wykorzystać w sposób efektywny, a kiedy lepiej poszukać alternatywy. W poniższym artykule zostały przedstawione sposoby równoległej implementacji obliczeń matematycznych z wykorzystaniem wątków, zadań, puli wątków, puli zadań oraz równoległej pętli for z klasy Parallel. Wszystkie zostały napisane w języku C# na silniku Windows Presentation Foundation platformy .NET. Zaimplementowane obliczenia matematyczne to obliczenie liczby Pi z pomocą wzoru Leibniza.
EN
Nowadays processors working in personal computers and mobile devices allow for more and more effective parallel computing. Developers have at their disposal many different methods of implementing concurrency, but usually use the one, that they now best. It is beneficial to know, when a particular technique is good and when it is better to find an alternative. This paper presents different ways of implementing parallel mathematical calculations using threads, tasks, thread pool, task pool and parallel for loop. Each method was used in a C# application running on Windows Presentation Foundation engine on .NET platform. Implemented operation is calculation value of Pi using Leibnitz’s formula.
EN
Artificial Ant Colony algorithm (AAC) can be applied to segmentation of bone structures out of CT data series. AAC procedure produces promising results in regions of adjacent bones and joints which are hard to distinguished by common segmentation algorithms. The article presents parallel implementation of the AAC which allows for significant speed-up of the segmentation procedure. The results of the segmentation for various bone structures in the area of the human pelvis are presented.
PL
Algorytm kolonii mrówkowej (AAC) pozwala na segmentację struktur kostnych z serii obrazów tomografii komputerowej. AAC daje obiecujące wyniki dla przylegających do siebie fragmentów kości i stawów, które trudno rozróżnić przy pomocy często używanych filtrów obrazu. Artykuł przedstawia równoległą implementację algorytmu pozwalającą znacznie przyspieszyć operację segmentacji. Zaprezentowano w nim wyniki algorytmu dla wybranych struktur kostnych w obrębie miednicy.
PL
W artykule przedstawiono praktyczne aspekty programowania obiektowego w języku Java w zakresie programowania równoległego, czyli techniki stosowanej w celu wykorzystywania komputerów wieloprocesorowych (lub wielordzeniowych). Przedstawiono mechanizmy, które zapewniają programistom Javy korzystanie z wielu procesorów w przejrzysty i skalowany sposób. Zaprezentowano mechanizmy wspierające techniki programowania równoległego. Przedstawiono technikę rekurencji w ramach strategii „Dziel i zwyciężaj” oraz zasady przetwarzania sekwencyjnego. Zbadano możliwości zwiększenia kodu programu Javy w zakresie technik programowania równoległego na przykładzie frameworku Fork/Join. Przedstawiono możliwości tego frameworku pod kątem zwiększenia wydajności programu Javy. Przeprowadzono pomiary czasu wykonania programu dla różnych poziomów równoległości oraz różnych progów przetwarzania sekwencyjnego. Wykazano, że odpowiednia konstrukcja kodu Javy może znacznie skrócić czas wykonywania programu Javy, co przekłada się na wydajność programu.
EN
The article presents the practical aspects of object-oriented programming language Java in the field of parallel programming, a technique used in order to use multiprocessor computers (or multi-core). Mechanisms supporting parallel programming techniques were presented. Recursion technique in the framework of the "Divide and conquer" and the principle of sequential processing were presented. We examined the possibility of increasing the Java code program in the field of parallel programming on the example framework Fork/Join. The possibilities of this framework to improve performance of a Java program were presented. The measurements of the program runtime for different levels of parallelism and different thresholds for sequential processing were conducted. It has been shown that proper design of Java code can significantly shorten the duration of the program Java, which translates to program performance.
PL
Problemy, przed jakimi stają współcześni inżynierowie, wymagają bardzo często przeprowadzenia złożonych symulacji komputerowych rozważanego zjawiska. W zdecydowanej większości takich symulacji wyznaczane są rozkłady różnych wielkości fizycznych, takich jak temperatura, odkształcenia, czy przemieszczenia. Ze względu na dużą złożoność tego rodzaju zadań realizowanie ich na zwykłych procesorach ogólnego przeznaczenia staje się nieefektywne. Coraz częściej inżynierowie sięgają po nowoczesne heterogeniczne układy wielordzeniowe takie jak układy graficzne. Zastosowanie tych rozwiązań sprzętowych pozwala na znaczące przyspieszenie obliczeń. W pracy autor przedstawił komputerową symulację procesu krzepnięcia odlewu w formie odlewniczej z zastosowaniem układów graficznych nVidia zgodnych z architekturą CUDA.
EN
Issues today's faced by engineers require's very often perform complex computer simulations the considered phenomenon. In the great majority of these computer simulations are calculated distributions of various of physical quantities such as temperature, deformations, and displacements. Due to a large complexity of these tasks use the general purpose processors becomes ineffective. More often engineers are reach for the modern many-core heterogeneous systems such as GPUs. Use of these hardware solutions can significantly speed up the computations.In this work the author presents a computer simulation of casting solidification process in the mold using nVidia chipset compatible with the CUDA architecture.
PL
W artykule zostały porównane możliwości zrównoleglenia dwóch algorytmów z dziedziny kryptografii: szyfrowania XOR oraz wyszukiwania kolizji funkcji skrótu MD5. Prezentowane rozwiązania zostały zaimplementowane w taki sposób, by używały wybraną przez użytkownika liczbę rdzeni procesora. Wydajność algorytmów została sprawdzona na różnych procesorach i przedstawiona na wykresach.
EN
Paper compares possibility to parallelize two cryptographic algorithms: Xor cipher and MD5 collision search. Presented solutions allows user to specify number of used processors. Performance of algorithms where tested on a different types of processors and visualized on graphs.
EN
This paper describes a novel Polyhedral Source-to-Source Compiler (PSSC) that enables automatic recognition of parallel regions of C/C++ code and annotating them with OpenMP/OpenACC pragmas. The proposed source-to-source compiler uses polyhedral model to detect and optimize parallel loops. Loop optimization is done on intermediate code representation by Polly compiler and then it is mapped to original source code. This approach allows combining the simplicity and efficiency of Intermediate Representation (IR) code optimization with readability of output code. Experimental results show that the proposed compiler is able to reach the comparable performance to the original Polly compiler.
PL
Artykuł opisuje nowatorski kompilator typu source-to-source, który wykorzystuje model polihedralny do automatycznego wykrywania kodu C/C++, który może być wykonywany równolegle. Fragmenty kodu źródłowego, które mogą zostać zrównoleglone, są opatrywane pragmami OpenMP/OpenACC. Opisywany kompilator śledzi zmiany jakie zostały wprowadzone w kodzie pośrednim przez kompilator Polly, a następnie odwzoruje te transformacje w kodzie źródłowym. Przedstawione w artykule podejście umożliwia połączenie zalet wynikających z optymalizowania kodu pośredniego z możliwością łatwego przenoszenia na różne platformy kodu wysokopoziomowego. Przeprowadzone pomiary wydajności wykazały, że opracowany kompilator pozwala zrównoleglić kod wysokopoziomowy równie wydajnie jak bazowy kompilator Polly.
9
Content available remote Effective biclustering on GPU - capabilities and constraints
PL
W artykule przedstawiono korzyści i ograniczenia związane z projektowaniem równoległego algorytmu biklasteryzacji, przeznaczonego na GPU. Zaprezentowano definicję biklasteryzacji oraz skrótowo opisano architekturze GPU. Zestawiono popularne wzorce strategii implementacji algorytmów, przydatne w projektowaniu efektywnych rozwiązań na GPU. Publikacja zawiera także praktyczne wskazówki programistyczne, w kontekście implementacji algorytmów biklasteryzacji w języku CUDA/OpenCL.
EN
This article presents the benefits and limitations related to designing a parallel biclustering algorithm on a GPU. A definition of biclustering is provided together with a brief description of the GPU architecture. We then review algorithm strategy patterns, which are helpful in providing efficient implementations on GPU. Finally, we highlight programming aspects of implementing biclustering algorithms in CUDA/OpenCL programming language.
10
Content available remote A parallel pipelined naive method for testing satisfiability
EN
Field Programmable Gate Array (FPGA) systems are highly suitable for solving satisfiability problems SAT. The paper will present the possibilities in programmable FPGA chips to test satisfiability by use of parallelism and pipelining. There will be presented various options to approach this problem by use of VHDL language. For this purpose, authors created a dedicated architecture, combined with a PC, by use of the UART protocol. To build the architecture authors used a Xilinx Spartan-3AN plate, the synthesis was performed in the ISE 11.3. Xilinx software.
PL
Układy FPGA ze względu na swoją architekturę bardzo dobrze pasują do rozwiązywania zagadnień z zakresu rozwiązywania problemów spełnialności SAT. W artykule przedstawiono współbierzne rozwiązanie problemu spełnialności z zastosowaniem programowalnych układów FPGA. Dla potrzeb realizacji zadania opracowno dedykowaną architekturę, opartą o układ FPGA (Xilinx Spartan-3AN) komunikującą się za pomocą protokołu UART.
PL
Współczesny proces dydaktyczny technik programowania często wymaga dostępu zarówno do nowoczesnego sprzętu, jak i oprogramowania. W szczególnej mierze odnosi się to do algorytmów równoległych, których odpowiednie właściwości w dużo większym stopniu można zaobserwować na wydajnych procesorach nowej generacji. Aby stworzyć międzynarodową społeczność akademicką związaną z tą specjalizacją firma Intel udostępniła wirtualne laboratorium testowe (Manycore Testing Lab - MTL). Artykuł przedstawia aspekt architektury oraz praktycznego zastosowania MTL w pracy wieloużytkowej i skupia się na empirycznym potwierdzeniu wzrostu wydajności uzyskanej dzięki programowaniu równoległemu i10-rdzeniowym procesorom Westmere-EX. Badaniom objęto cztery klasy algorytmów: czysto matematyczny dotyczący problemu Collatza, kryptograficzny 3DES, kwantowy algorytm Grovera oraz klasyczny algorytm genetyczny. Dla zastosowań edukacyjnych dostęp do laboratorium jest bezpłatny, a udostępniane platformy wspierają wszelkie zaawansowane technologie.
EN
The modern didactic process of programming techniques often requires access to the modern hardware and software. In a particular part applies to parallel algorithms, where appropriate properties to a much greater extent can be seen in the new generation of high-performance processors. To create an international academic community associated with this specialization, Intel released a virtual test lab (Manycore Testing Lab - MTL). The paper presents the architectural aspect and the practical application of MTL at work reusable and focuses on empirical confirmation gains obtained through parallel programming and 10-core Westmere-EX processors. The study consisted of four classes of algorithms: for a purely mathematical problem Collatz, 3DES cryptography, quantum Grover algorithm and the classic genetic algorithm. For educational access to the laboratory is free and available to all platforms support advanced technologies.
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.
PL
W artykule przedstawiono wyniki prac, których celem było zbadanie możliwości implementacji algorytmu wyznaczania punktów charakterystycznych za pomocą metody SURF na platformie CUDA oraz porównanie czasów obliczeń sekwencyjnej i równoległej implementacji tego algorytmu.
EN
This article presents results of our work concerned possibility of implementation of algorithm for assigning key points using SURF algorithm and CUDA technology. The work also compares time of execution of these applications.
14
PL
Algorytm łamania haseł metodą słownikową jest techniką używaną do siłowego odgadywania haseł do systemów. Jego realizacja wymaga dużych nakładów obliczeniowych, dlatego też uzasadnione jest wykorzystanie do tego celu programowania równoległego. W artykule przedstawiono i porównano ze sobą, równoległe implementacje tego algorytmu w trzech różnych środowiskach programowania równoległego. Są nimi MPI (Message Passing Interface), środowisko wykorzystujące model z przesyłaniem komunikatów, OpenMP (Open Multi Processing), realizujące zrównoleglenie obliczeń na poziomie danych oraz środowisko procesorów kart graficznych.
EN
Password cracking by the dictionary method is a technique for detecting passphrases. Its implementation requires a large computational effort, so it is justified to apply for it a parallel programming. In this article we describe and compare a parallel implementation in three different parallel programming environments, i.e. MPI (Message Passing Interface), the environment that uses a model with messagepassing; OpenMP (Open Multi Processing), which is based on data-parallelization; and the graphics processing units environment.
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.
16
Content available Schedule design for multiprocessor systems
EN
Efficiency of multiprocessor system usage is strongly dependent on methods of schedule design - the way of task distribution on each processor to decrease overall schedule time. This article is devoted to the part of this process - schedule design on example of software development for LTE and WIMAX base stations.
PL
Wydajność użytkowania systemów mikroprocesorowych silnie zależy od metody zaprojektowania harmonogramu, tj. od sposobu rozdziału zadań na każdy procesor. Ma to wpływ na zmniejszenie całkowitego czasu wykonywania zadań. W artykule przedstawiono część tego procesu, tj. projektowanie harmonogramu na przykładzie opracowania oprogramowania dla stacji bazowych LTE oraz WIMAX. Wskazano cztery algorytmy możliwe do zastosowania przy wykorzystaniu algorytmów genetycznych. Podano wyniki badań symulacyjnych tych algorytmów, z których wynika, że uzyskuje się dobrą zbieżność przy ograniczonej liczbie generacji. Głównym zadaniem analizowanym w pracy jest skrócenie czasu opracowania oprogramowania za pomocą automatycznego opracowania harmonogramu, znajdowania błędów, uproszczenia debugowania, i wizualizacji za pomocą diagramu. Do rozwoju oprogramowania telekomunikacyjnego proponuje się oryginalną metodę możliwą do zastosowania w formie systemu wbudowanego (SOC). Platformą hardware'ową jest element SOC i kilka różnych jednostek przetwarzających. Algorytm cyfrowego przetwarzania sygnałów jest zdefiniowany przez listę zadań wraz z informacjami o zależnościach. Typ jednostki przetwarzającej i czas przetwarzania są zdefiniowane z góry dla każdego zadania.
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.
18
Content available Parallel fuzzy clustering for linguistic summaries
PL
Z podsumowaniem lingwistycznym, jak i z predykatem rozmytym związana jest wartość prawdy. Możemy więc podsumowań lingwistycznych używać jako predykatów rozmytych. Podsumowanie postaci większość obiektów w populacji P jest podobna do obiektu oi wykorzystać możemy do znajdowania typowych wartości w populacji P, które to wykorzystuje rozmyty algorytm grupujący. Wadą tego algorytmu jest jego duża złożoność obliczeniowa. W celu przetwarzania dużej liczby danych zaimplementowaliśmy ten algorytm równolegle, korzystając ze standardu MPI do komunikacji między procesami działającymi na różnych procesorach. W tej pracy przedstawiamy algorytm równoległy i wyniki eksperymentów.
EN
The linguistic summaries have the associated truth value so they can be used as predicates. We use summaries of the form ”most objects in population P are similar to oi” to find typical values in population P. Then typical values are used in fuzzy clustering algorithm. Disadvantage of this algorithm is its complexity. For the purpose of processing the huge number of data, we decided to use parallel computing mechanism to implement this algorithm, and run it on the cluster machine. We use MPI (Message Passing Interface) to communicate between processes, which work on different processors. This paper presents this parallel algorithm and some results of experiments.
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.
20
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 / 2 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ć.