Abstract— In this paper we present a performance evaluation of interpreted and centralized implementation techniques of Petri nets. These implementation techniques allow the translation of a system model expressed by a Petri net to an actual system with the same behaviour as the model. It has been used in different application fields such as programmable logic controllers. Four techniques have been analysed: Brute Force, Enabled Transitions, Static Representing Places and Dynamic Representing Places. The analysis has been carried out over a Petri net library composed by well know models which can be scaled using a parameter. The analysis of results shows that the performance of the algorithms depends on the Petri net behaviour (concurrency v.s. effective conflicts). However, it is also showed that Brute Force technique can be discarded and that the Static Representing Places performs better that the dynamic version when the selection of representing places is done based on behavioural information. I. INTRODUCTION etri nets (PN) are a formalism which is well suited for modelling concurrent discrete event systems: it has been satisfactorily applied in fields such as communication networks, computer systems, discrete part manufacturing systems, etc. Net models are often regarded as self documented specifications, because their graphical nature facilitates communication among designers and users. Petri Nets have a strong mathematical foundation which allows the validation and verification of a wide set of correctness and liveness properties. Moreover, these models are executable and can be used to animate and simulate the behaviour of the system and can also be used for monitoring purposes once the system is readily working. The final system can be derived from a Petri net model by means of hardware and software (code generation) implementation techniques. In other words, they can be used all along in the life cycle of a system. In this paper we assume that the reader knows the basic concepts of Petri Nets[1]. The implementation of Petri Nets has received considerable attention from researchers over the last twenty five years. The implementation is the translation of a system model expressed by a Petri net to an actual system with the same behaviour as the model. It has been studied in numerous application fields such as programmable logic controllers, digital hardware, simulation, robotic systems and other concurrent software applications. This work was funded by the NERO project DPI2006-07928 of the Spanish Ministry of Science and Technology. A Petri net implementation can be hardware or software. However we are interested in the second approach, the software implementation. A software implementation is a program which fires the net transitions, observing marking evolution rules, i.e., plays the “token game”. An implementation is composed of a control part and an operational part. The control part corresponds to the structure, marking and evolution rules of the Petri net. On the other hand, the operational part is the set of actions and/or codes of the application, associated with the net elements. According to different criteria, a Petri net implementation can be mainly classified as compiled or interpreted, as sequential or concurrent and as centralized or decentralized. An implementation is interpreted if the net structure and the marking are codified as data structures. These data structures are used by one or more tasks called interpreters to make the net evolve. The interpreters do not depend on the implemented net. A compiled implementation is based on the generation of one or more tasks whose control flow corresponds to net evolutions. A sequential implementation is composed of only one task, even in nets with concurrency. This kind of implementation is common in applications whose operational part is composed by impulsional actions without significant execution time. This is the case of programmable logic controllers, see for example [2] or [3]. The research effort in this field produced an important result, the Grafcet [4], a standardized language for programmable logic controllers. A concurrent implementation is composed by a set of tasks whose number is equal to or greater than the actual concurrency of the net. Examples of concurrent implementations can be seen in [5] or in [6]. In a centralized implementation the full control part is executed by just one task, commonly called token player or coordinator. The operational part of the implementation can be distributed in a set of tasks to guarantee the concurrence expressed by the net (see for example [5]). Thus, the coordinator acts as the operating system kernel of a multitasking application. To characterize a centralized implementation, the algorithm is important to determine which transitions are enabled and can fire. Apart of the simple exhaustive test of all transitions, there are various solutions to reduce the costs of the enabling test. The main objective of the current paper is to evaluate the current interpreted and centralized implementation techniques of Petri nets from the point of view of the overload introduced for the control part. For this reason we have implemented different PN execution algorithms which will be Performance Evaluation of Petri Nets Execution Algorithms Ramón Piedrafita Moreno, José Luis Villarroel Salcedo Aragón Institute for Engineering Research (I3A), University of Zaragoza, Maria de Luna, 1. 50018, Zaragoza, Spain {piedrafi,jlvilla}@unizar.es P 1400 1-4244-0991-8/07/$25.00/©2007 IEEE Authorized licensed use limited to: Universidad de Zaragoza. Downloaded on March 20, 2009 at 06:28 from IEEE Xplore. Restrictions apply.