Artykuł zawiera zestawienie reprezentacji graficznych, do których możliwa jest transformacja kodu źródłowego aplikacji wielowątkowych. Zestawienie powszechnie wykorzystywanych reprezentacji, jakimi są Control Flow Graph i Sieci Petriego, pozwoliło na analizę tych reprezentacji, pod kątem przydatności do znajdywania popularnych i niepożądanych zjawisk w aplikacjach wielowątkowych. Jako alternatywa dla Control Flow Graph i Sieci Petriego przedstawiono reprezentację Systemów Współbieżnych Procesów. Wszystkie trzy reprezentacje zostały wykorzystane do reprezentacji przykładowej aplikacji napisanej w języku C, zawierającej zjawisko race condition. W podsumowaniu dokonana została ocena, która zależała od tego czy dana reprezentacja pozwoli odnaleźć wspomniane zjawisko.
EN
The article contains a list of graphical representations to which it is possible to transform the source code of multithreaded applications. Comparison of commonly used representations, such as Control Flow Graph and Petri Network, allowed to analyze these representations in terms of their usefulness in finding popular and undesirable phenomena in multithreaded applications. As an alternative to Control Flow Graph and Petri Network, the representation of Concurrent Processing Systems is presented. All three representations were used to represent a sample Clanguage application containing race condition. In conclusion, an assessment was made, which depended on whether the representation would allow to find the phenomenon.
This article contains a brief description of existing graphical methods for presenting multithreaded applications, i.e. Control Flow Graph and Petri nets. These methods will be discussed, and then a way to represent multithreaded applications using the concurrent process system model will be presented. All these methods will be used to present the idea of a multithreaded application that includes the race condition phenomenon. In the summary, all three methods will be compared and subjected to the evaluation, which will depend on whether the given representation will allow to find the mentioned phenomenon.
High energy physic experiments conducted in modern accelerators or fusion reactors require to store and process enormous amount of information. For such systems it is extremely important to correctly design and implement software to maximally utilize computation power offered by available hardware. Overhead limitations introduced by factors like task scheduling, thread synchronization, dynamic memory allocation, data distribution or incorrect hardware use must be limited to minimum. The paper presents several potential source of efficiency limitation that should be taken into consideration during development process of software for data acquisition systems in order to maximally utilize throughput of the offered hardware. Additionally, methods to minimize impacts of such problems and experimental results of proposed improvements are presented.
PL
Eksperymenty przeprowadzane we współczesnych akceleratorach lub reaktorach fuzyjnych wymagają systemów komputerowych pozwalających na przechowywanie i przetwarzanie ogromnych ilości danych. Proces projektowania i implementacji dla takich systemów wymaga specyficznego podejścia, aby móc maksymalnie wykorzystać dostępne zasoby sprzętowe. Szczególnie istotnym staje się minimalizacja lub eliminacja takich czynników wpływających na wydajność pracy jak przełączanie zadań, synchronizacja pomiędzy wieloma wątkami, dynamiczna alokacja pamięci, przekazywanie danych w systemie oraz inne, w tym również związane z używaną platformą sprzętową. W artykule przedstawiono wybrane źródła ograniczeń wydajności dla takich systemów, które w szczególności należy wziąć pod uwagę podczas projektowania systemów o wysokiej wydajności. Ponadto przedstawiono zastosowane rozwiązania, które ograniczają wpływ wymienionych czynników na wydajność systemu i zaprezentowano uzyskane wyniki.
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ć.