Modeling of parallel program synchronization primitives

Saved in:
Bibliographic Details
Title: Modeling of parallel program synchronization primitives
Authors: Oleg S. Kryukov, Anna G. Voloshko, Alexey N. Ivutin
Source: Modeling and Analysis of Information Systems. 32:150-171
Publisher Information: P.G. Demidov Yaroslavl State University, 2025.
Publication Year: 2025
Description: This article is devoted to the problem of verifying parallel programs that may contain special types of errors associated with the synchronization of parallel executed threads and access to shared memory. Such errors include deadlocks and data races. There is a division of parallel program verification methods into static and dynamic. The second ones require running the code and allow to check only the current implementation of the program for races, which, if there are a large number of branches, can lead to missing races. Among static methods, analytical methods (for example, based on deductive analysis) and model checking methods are most widely used. However, they are difficult to implement, and model checking still require a significant amount of manual work from the programmer to build such a model. In this regard, it is necessary to use models that can be built automatically. Previously, the authors developed a model based on an extension of Petri nets, which allows automatic creation based on sequential code and its conversion into parallel code. Automatic creation of a model of a parallel program introduces new, previously unused requirements related to the interaction of parallel threads. Thus, this article discusses the features of modeling using extended Petri nets with semantic relations of the main synchronization primitives implemented in most languages and parallel programming technologies for shared memory systems. In the future, these models will be used to search for data races and deadlocks in parallel programs.
Document Type: Article
ISSN: 2313-5417
1818-1015
DOI: 10.18255/1818-1015-2025-2-150-171
Rights: URL: https://www.mais-journal.ru/jour/about/editorialPolicies#openAccessPolicy
Accession Number: edsair.doi...........aeca96ec6859c5fffcef4a607be60cb8
Database: OpenAIRE
Description
Abstract:This article is devoted to the problem of verifying parallel programs that may contain special types of errors associated with the synchronization of parallel executed threads and access to shared memory. Such errors include deadlocks and data races. There is a division of parallel program verification methods into static and dynamic. The second ones require running the code and allow to check only the current implementation of the program for races, which, if there are a large number of branches, can lead to missing races. Among static methods, analytical methods (for example, based on deductive analysis) and model checking methods are most widely used. However, they are difficult to implement, and model checking still require a significant amount of manual work from the programmer to build such a model. In this regard, it is necessary to use models that can be built automatically. Previously, the authors developed a model based on an extension of Petri nets, which allows automatic creation based on sequential code and its conversion into parallel code. Automatic creation of a model of a parallel program introduces new, previously unused requirements related to the interaction of parallel threads. Thus, this article discusses the features of modeling using extended Petri nets with semantic relations of the main synchronization primitives implemented in most languages and parallel programming technologies for shared memory systems. In the future, these models will be used to search for data races and deadlocks in parallel programs.
ISSN:23135417
18181015
DOI:10.18255/1818-1015-2025-2-150-171