We present a scheduling policy for complete, bounded execution of Kahn process network programs. A program is a set of processes that communicate through a network of first-in first-out queues. In a complete execution, the program terminates if and only if all processes block attempting to consume data from empty communication channels. We are primarily interested in programs that operate on infinite streams of data and never terminate. In a bounded execution, the number of data elements buffered in each of the communication channels remains bounded.The Kahn process network model of computation is powerful enough that the questions of termination and bounded buffering are undecidable. No finite-time algorithm can decide these questions for all Kahn process network programs. Fortunately, because we are interested in programs that never terminate, our scheduler has infinite time and can guarantee that programs execute forever with bounded buffering whenever possible. Our scheduling policy has been implemented using Ptolemy, an object-oriented simulation and prototyping environment.
Cited By
- Gautier T, Le Guernic P, Besnard L and Talpin J (2023). The polychronous model of computation and Kahn process networks, Science of Computer Programming, 228:C, Online publication date: 1-Jun-2023.
- Schneider K Translating structured sequential programs to dataflow graphs Proceedings of the 19th ACM-IEEE International Conference on Formal Methods and Models for System Design, (66-77)
- Edwards S, Townsend R, Barker M and Kim M (2019). Compositional Dataflow Circuits, ACM Transactions on Embedded Computing Systems, 18:1, (1-27), Online publication date: 31-Jan-2019.
- Millo J, Kofman E and Simone R (2015). Modeling and Analyzing Dataflow Applications on NoC-Based Many-Core Architectures, ACM Transactions on Embedded Computing Systems, 14:3, (1-25), Online publication date: 21-May-2015.
- Fradet P, Girault A and Poplavko P SPDF Proceedings of the Conference on Design, Automation and Test in Europe, (769-774)
- Theelen B, Katoen J and Wu H Model checking of scenario-aware dataflow with CADP Proceedings of the Conference on Design, Automation and Test in Europe, (653-658)
- Castrillon J, Tretter A, Leupers R and Ascheid G Communication-aware mapping of KPN applications onto heterogeneous MPSoCs Proceedings of the 49th Annual Design Automation Conference, (1266-1271)
- Nita I, Costachioiu T and Lazarescu V Speed-Up of gis processing using multicore architectures Proceedings of the 2011 international conference on Computational science and its applications - Volume Part II, (293-302)
- Leupers R and Castrillon J MPSoC programming using the MAPS compiler Proceedings of the 2010 Asia and South Pacific Design Automation Conference, (897-902)
- Castrillon J, Velasquez R, Stulova A, Sheng W, Ceng J, Leupers R, Ascheid G and Meyr H Trace-based KPN composability analysis for mapping simultaneous applications to MPSoC platforms Proceedings of the Conference on Design, Automation and Test in Europe, (753-758)
- Li P, Agrawal K, Buhler J and Chamberlain R Deadlock avoidance for streaming computations with filtering Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures, (243-252)
- Deniélou P and Yoshida N Buffered communication analysis in distributed multiparty sessions Proceedings of the 21st international conference on Concurrency theory, (343-357)
- Mandel L, Plateau F and Pouzet M Lucy-n Proceedings of the 10th international conference on Mathematics of program construction, (288-309)
- Bader K, Eißler T, Evans N, GauthierDickey C, Grothoff C, Grothoff K, Keene J, Meier H, Ritzdorf C and Rutherford M Distributed stream processing with DUP Proceedings of the 2010 IFIP international conference on Network and parallel computing, (232-246)
- Carpenter P, Ramirez A and Ayguadé E Buffer sizing for self-timed stream programs on heterogeneous distributed memory multiprocessors Proceedings of the 5th international conference on High Performance Embedded Architectures and Compilers, (96-110)
- Walker E, Xu W and Chandar V Composing and executing parallel data-flow graphs with shell pipes Proceedings of the 4th Workshop on Workflows in Support of Large-Scale Science, (1-10)
- Liu W, Gu Z, Xu J, Wang Y and Yuan M An efficient technique for analysis of minimal buffer requirements of synchronous dataflow graphs with model checking Proceedings of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis, (61-70)
- Bengtsson J and Svensson B (2009). A domain-specific approach for software development on Manycore platforms, ACM SIGARCH Computer Architecture News, 36:5, (2-10), Online publication date: 20-Dec-2008.
- Bekooij M, Wiggers M and van Meerbergen J Efficient buffer capacity and scheduler setting computation for soft real-time stream processing applications Proceedingsof the 10th international workshop on Software & compilers for embedded systems, (1-10)
- Turjan A, Kienhuis B and Deprettere E (2007). Classifying interprocess communication in process network representation of nested-loop programs, ACM Transactions on Embedded Computing Systems, 6:2, (13-es), Online publication date: 1-May-2007.
- Arumí P, García D and Amatriain X A dataflow pattern catalog for sound and music computing Proceedings of the 2006 conference on Pattern languages of programs, (1-23)
- Tardieu O and Edwards S Scheduling-independent threads and exceptions in SHIM Proceedings of the 6th ACM & IEEE International conference on Embedded software, (142-151)
- Edwards S and Tardieu O SHIM Proceedings of the 5th ACM international conference on Embedded software, (264-272)
- Turjan A, Kienhuis B and Deprettere E Translating affine nested-loop programs to process networks Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems, (220-229)
- Geilen M and Basten T Reactive process networks Proceedings of the 4th ACM international conference on Embedded software, (137-146)
- Dwivedi B, Kumar A and Balakrishnan M Automatic synthesis of system on chip multiprocessor architectures for process networks Proceedings of the 2nd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, (60-65)
- Geilen M and Basten T Requirements on the execution of Kahn process networks Proceedings of the 12th European conference on Programming, (319-334)
- Markovskiy Y, Caspi E, Huang R, Yeh J, Chu M, Wawrzynek J and DeHon A Analysis of quasi-static scheduling techniques in a virtualized reconfigurable machine Proceedings of the 2002 ACM/SIGDA tenth international symposium on Field-programmable gate arrays, (196-205)
- Edwards S, Lavagno L, Lee E and Sangiovanni-Vincentelli A Design of embedded systems Readings in hardware/software co-design, (86-107)
- Hommais D, Pétrot F and Augé I A Tool Box to Map System Level Communications on HW/SW Architectures Proceedings of the 12th International Workshop on Rapid System Prototyping
- Strehl K and Thiele L Symbolic model checking of process networks using interval diagram techniques Proceedings of the 1998 IEEE/ACM international conference on Computer-aided design, (686-692)
- Stevens R The Processing Graph Method Tool (PGMT) Proceedings of the IEEE International Conference on Application-Specific Systems, Architectures and Processors
- Kienhuis B, Deprettere E, Vissers K and van der Wolf P An Approach for Quantitative Analysis of Application-Specific Dataflow Architectures Proceedings of the IEEE International Conference on Application-Specific Systems, Architectures and Processors
Index Terms
- Bounded scheduling of process networks
Recommendations
Optimal algorithms for online scheduling with bounded rearrangement at the end
In this paper, we consider an online non-preemptive scheduling problem on two related machines, where at most K jobs are allowed to be rearranged, but only after all jobs have been revealed and (temporarily) scheduled. We minimize the makespan, and we ...
Process-Aware Interrupt Scheduling and Accounting
RTSS '06: Proceedings of the 27th IEEE International Real-Time Systems SymposiumIn most operating systems, the handling of interrupts is typically performed within the address space of the kernel. Moreover, interrupt handlers are invoked asynchronously during the execution of arbitrary processes. Unfortunately, this allows for a ...
Deterministic receptive processes are Kahn processes
MEMOCODE '05: Proceedings of the 2nd ACM/IEEE International Conference on Formal Methods and Models for Co-DesignDeterministic asynchronous concurrent formalisms are valuable because determinism greatly simplifies the design and validation of such systems and most concurrent formalisms are nondeterministic. This paper connects two of the more successful ...