ABSTRACT
The design of high-performance stream-processing systems is a fast growing domain, driven by markets such like high-end TV, gaming, 3D animation and medical imaging. It is also a surprisingly demanding task, with respect to the algorithmic and conceptual simplicity of streaming applications. It needs the close cooperation between numerical analysts, parallel programming experts, real-time control experts and computer architects, and incurs a very high level of quality insurance and optimization.In search for improved productivity, we propose a programming model and language dedicated to high-performance stream processing. This language builds on the synchronous programming model and on domain knowledge -- the periodic evolution of streams -- to allow correct-by-construction properties to be proven by the compiler. These properties include resource requirements and delays between input and output streams. Automating this task avoids tedious and error-prone engineering, due to the combinatorics of the composition of filters with multiple data rates and formats. Correctness of the implementation is also difficult to assess with traditional (asynchronous, simulation-based) approaches. This language is thus provided with a relaxed notion of synchronous composition, called n-synchrony: two processes are n-synchronous if they can communicate in the ordinary (0-)synchronous model with a FIFO buffer of size n.Technically, we extend a core synchronous data-flow language with a notion of periodic clocks, and design a relaxed clock calculus (a type system for clocks) to allow non strictly synchronous processes to be composed or correlated. This relaxation is associated with two sub-typing rules in the clock calculus. Delay, buffer insertion and control code for these buffers are automatically inferred from the clock types through a systematic transformation into a standard synchronous program. We formally define the semantics of the language and prove the soundness and completeness of its clock calculus and synchronization transformation. Finally, the language is compared with existing formalisms.
- A. Aiken and E. L. Wimmers. Type inclusion constraints and type inference. In Functional Programming Languages and Computer Architecture, pages 31--41, 1993. Google Scholar
Digital Library
- A. Benveniste, P. Caspi, S. Edwards, N. Halbwachs, P. Le Guernic, and R. de Simone. The Synchronous Languages Twelve Years Later. Proceedings of the IEEE, 91(1):64--83, 2003.Google Scholar
Cross Ref
- A. Benveniste, P. Le Guernic, and C. Jacquemot. Synchronous programming with events and relations: the signal language and its semantics. Sci. Comput. Program., 16(2):103--149, 1991. Google Scholar
Digital Library
- G. Berry. The Foundations of Esterel. MIT Press, 2000.Google Scholar
Digital Library
- J.-Y. Brunel, W. M. Kruijtzer, H. J. H. N. Kenter, F. Pétrot, L. Pasquier, E. A. de Kock, and W. J. M. Smits. COSY communication IP's. In 37th Design Automation Conference (DAC'00), pages 406--409, Los Angeles, California, June 2000. Google Scholar
Digital Library
- J. Buck, S. Ha, E. A. Lee, and D. G. Messerschmitt. Ptolemy: A framework for simulating and prototyping heterogenous systems. Int. Journal in Computer Simulation, 4(2):155--182, 1994.Google Scholar
- P. Caspi. Embedded control: From asynchrony to synchrony and back. In EMSOFT'01, volume 2211 of LNCS, Lake Tahoe, October 2001. Springer-Verlag. Google Scholar
Digital Library
- P. Caspi and M. Pouzet. Synchronous Kahn networks. In ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming, pages 226--238. ACM Press, 1996. Google Scholar
Digital Library
- Z.S. Chamski, M. Duranton, A. Cohen, C. Eisenbeis, P. Feautrier, and D. Genius. Application-domain-driven system design for pervasive video processing. Ambient intelligence: impact on embedded system design, pages 251--270, 2003. Google Scholar
Digital Library
- D. M. Chapiro. Globally-Asynchronous Locally-Synchronous Systems. PhD thesis, Stanford University, October 1984. Google Scholar
Digital Library
- A. Cohen, M. Duranton, C. Eisenbeis, C. Pagetti, F. Plateau, and M. Pouzet. Synchronization of periodic clocks. In ACM Conf. on Embedded Software (EMSOFT'05), Jersey City, New York, September 2005. Google Scholar
Digital Library
- J.-L. Colaço, A. Girault, G. Hamon, and M. Pouzet. Towards a Higher-order Synchronous Data-flow Language. In EMSOFT'04, Pisa, Italy, september 2004. Google Scholar
Digital Library
- J.-L. Colaço and M. Pouzet. Clocks as first class abstract types. In Rajeev Alur and Insup Lee, editors, EMSOFT'03, volume 2855 of Lecture Notes in Computer Science, pages 134--155. Springer, 2003.Google Scholar
- E. A. de Kock, G. Essink, W. J. M. Smits, P. van der Wolf, J.-Y. Brunel, W. M. Kruijtzer, P. Lieverse, and K. A. Vissers. Yapi: Application modeling for signal processing systems. In 37th Design Automation Conference, Los Angeles, CA, june 2000. ACM Press. Google Scholar
Digital Library
- D. G. Messerschmitt E. A. Lee. Static scheduling of synchronous data flow programs for digital signal processing. IEEE Trans. Computers, 36(1):24--25, 1987. Google Scholar
Digital Library
- K. Goossens, G. Prakash, J. Röver, and A. P. Niranjan. Interconnect and memory organization in SOCs for advanced set-top boxes and TV -- evolution, analysis, and trends. In Jari Nurmi, Hannu Tenhunen, Jouni Isoaho, and Axel Jantsch, editors, Interconnect-Centric Design for Advanced SoC and NoC, chapter 15, pages 399--423. Kluwer, April 2004.Google Scholar
- N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language lustre. Proceedings of the IEEE, 79(9):1305--1320, September 1991.Google Scholar
Cross Ref
- G. Kahn. The semantics of a simple language for parallel programming. In J. L. Rosenfeld, editor, Information processing, pages 471--475, Stockholm, Sweden, Aug 1974. North Holland, Amsterdam.Google Scholar
- P. Le Guernic, J.-P. Talpin, and J.-C. Le Lann. Polychrony for system design. Journal for Circuits, Systems and Computers, Special Issue on Application Specific Hardware Design, April 2003.Google Scholar
- C. E. Leiserson and J. B. Saxe. Retiming synchronous circuitry. Algorithmica, 6(1), 1991.Google Scholar
- A.J.M. Moonen, M. Bekooij, and J. van Meerbergen. Timing analysis model for network based multiprocessor systems. In proceedings of ProRISC, 15th annual Workshop of Circuits, System and Signal Processing, pages pages 91--99, Veldhoven, The Netherlands, November 2004. ISBN: 90-73461-43-X.Google Scholar
- B. C. Pierce. Types and Programming Languages. MIT Press, 2002. Google Scholar
Digital Library
- F. Pottier. Simplifying subtyping constraints. In ACM Intl. Conf. on Functional Programming (ICFP'96), volume 31(6), pages 122--133, 1996. Google Scholar
Digital Library
- W. Thies, M. Karczmarek, and S. Amarasinghe. StreamIt: A language for streaming applications. In International Conference on Compiler Construction, Grenoble, France, April 2002. Google Scholar
Digital Library
- J. E. Vuillemin. On circuits and numbers. IEEE Trans. Comput., 43(8):868--879, 1994. Google Scholar
Digital Library
Index Terms
N-synchronous Kahn networks: a relaxed model of synchrony for real-time systems
Recommendations
N-synchronous Kahn networks: a relaxed model of synchrony for real-time systems
Proceedings of the 2006 POPL ConferenceThe design of high-performance stream-processing systems is a fast growing domain, driven by markets such like high-end TV, gaming, 3D animation and medical imaging. It is also a surprisingly demanding task, with respect to the algorithmic and ...
The polychronous model of computation and Kahn process networks
AbstractIn 1974, Gilles Khan defined a seminal semantic model for asynchronous dataflow programming that would then be called as the eponymous Kahn process networks (KPN) and instantiated in as many models of the so-called DPN hierarchy as ...
Synchronous objects with scheduling policies: introducing safe shared memory in lustre
LCTES '09: Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsThis paper addresses the problem of designing and implementing complex control systems for real-time embedded software. Typical applications involve different control laws corresponding to different phases or modes, e.g., take-off, full flight and ...







Comments