Petri Nets for Concurrent Programming
Marshall Rawson, Michael Rawson

TL;DR
This paper demonstrates how Petri nets can model, analyze, and optimize concurrent programs to prevent errors like deadlocks, introducing a generalized Petri net model and an open-source framework for practical use.
Contribution
It introduces a novel nondeterministic Petri net model for concurrent programming and provides an algorithm and software framework for error detection and optimization.
Findings
Petri nets can effectively model concurrent systems.
The generalized Petri net allows for compact program representation.
Automated optimization maximizes concurrency before execution.
Abstract
Concurrent programming is used in all large and complex computer systems. However, concurrency errors and system failures (ex: crashes and deadlocks) are common. We find that Petri nets can be used to model concurrent systems and find and remove errors ahead of time. We introduce a novel generalization of Petri nets with nondeterministic transition nodes to match real systems. These allow for a compact way to construct, optimize, and prove computer programs at the concurrency level. Petri net programs can also be optimized by automatically solving for maximal concurrency, where the maximum number of valid threads is determined by the structure of the Petri net prior to execution. We discuss an algorithm to compute the state graph of a given Petri net start state pair. We introduce our open source software framework which implements this theory as a general purpose concurrency focused…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsPetri Nets in System Modeling · Service-Oriented Architecture and Web Services · Business Process Modeling and Analysis
