Abstract
Data-flow programming languages use clocks as powerful control structures to manipulate data, and clocks are a form of temporal types. The clock of a flow defines the sequence of logical instants where it bears a value. This is the case of the synchronous language Lustre. We propose a solution for distributing Lustre programs, such that the distribution is driven by the clocks of the source program. The motivation is to take into account long duration tasks inside Lustre programs: these are tasks whose execution time is long compared to the other computations in the application, and whose maximal execution rate is known and bounded. Such a long duration task could be given a slow clock, but this would violate the synchronous abstraction. Distributing Lustre programs can solve this problem: the user gives a partition of the set of clocks into as many subsets as he desires computing locations, and our distribution algorithm produces one program for each such computing location. Each program only computes the flows whose clock belongs to it, therefore giving time to each long duration task to complete.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
André, C., Boulanger, F., Girault, A.: Software implementation of synchronous programs. In: International Conference on Application of Concurrency to System Design, ICACSD 2001, Newcastle, UK, pp. 133–142. IEEE, Los Alamitos (2001)
Aubry, P., Le Guernic, P., Machard, S.: Synchronous distributions of Signal programs. In: 29th Hawaii International Conference on System Sciences, HICSS-29, Honolulu, USA, pp. 656–665. IEEE Computer Society Press, Los Alamitos (1996)
Benveniste, A., Caillaud, B., Le Guernic, P.: Compositionality in dataflow synchronous languages: Specification and distributed code generation. Information and Computation 163, 125–171 (2000)
Benveniste, A., Caspi, P., Edwards, S., Halbwachs, N., Le Guernic, P., de Simone, R.: The synchronous languages twelve years later. Proceedings of the IEEE (2002); Special issue on embedded systems
Berry, G., Gonthier, G.: The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming 19(2), 87–152 (1992)
Caillaud, B., Caspi, P., Girault, A., Jard, C.: Distributing automata for asynchronous networks of processors. European Journal of Automation (RAIRO-APIIJESA) 31(3), 503–524 (1997); Research report Inria 2341
Caspi, P.: Clocks in data-flow languages. Theoretical Computer Science 94, 125–140 (1992)
Caspi, P., Fernandez, J.-C., Girault, A.: An algorithm for reducing binary branchings. In: Thiagarajan, P.S. (ed.) FSTTCS 1995. LNCS, vol. 1026, Springer, Heidelberg (1995)
Caspi, P., Girault, A.: Execution of distributed reactive systems. In: Haridi, S., Ali, K., Magnusson, P. (eds.) Euro-Par 1995. LNCS, vol. 966, pp. 15–26. Springer, Heidelberg (1995)
Caspi, P., Girault, A., Pilaud, D.: Automatic distribution of reactive systems for asynchronous networks of processors. IEEE Trans. on Software Engineering 25(3), 416–427 (1999)
Caspi, P., Pouzet, M.: Lucid synchrone: une extension fonctionnelle de Lustre. In: Journées Francophones des Langages Applicatifs (JFLA), Morzine, France (February 1999); Inria
Le Guernic, P., Gautier, T., Le Borgne, M., Lemaire, C.: Programming real-time applications with Signal. Proceedings of the IEEE 79(9), 1321–1336 (1991)
Gupta, R., Pande, S., Psarris, K., Sarkar, V.: Compilation techniques for parallel systems. Parallel Computing 25(13), 1741–1783 (1999)
Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language Lustre. Proceedings of the IEEE 79(9), 1305–1320 (1991)
Harel, D., Pnueli, A.: On the development of reactive systems. In: Logic and Models of Concurrent Systems, NATO, Springer, Heidelberg (1985)
Henzinger, T.A., Horowitz, B., Kirsch, C.M.: Giotto: A time-triggered language for embedded programming. In: Henzinger, T.A., Kirsch, C.M. (eds.) EMSOFT 2001. LNCS, vol. 2211, p. 166. Springer, Heidelberg (2001)
Liu, C.L., Layland, J.W.: Scheduling algorithms for multiprogramming in hard real-time environnement. Journal of the ACM 20(1), 46–61 (1973)
Maffeïs, O.: Ordonnancements de graphes de flots synchrones; Application à la mise en œuvre de Signal. PhD Thesis, University of Rennes I, Rennes, France (January 1993)
Paris, J.-P.: Exécution de tâches asynchrones depuis Esterel. PhD Thesis, University of Nice, Nice, France (1992)
Plaice, J.A., Saint, J.-B.: The Lustre-Esterel Portable Format. Inria, Sophia- Antipolis, France (1987) (unpublished report)
Salpétrier, F.: Interface graphique utilisateur pour la répartition de programmes Lustre dirigée par les horloges. Master’s thesis, ESISAR, Valence, France (June 2002)
Sha, L., Rajkumar, R., Lehoczky, J.P.: Priority inheritance protocols: An approach to real-time synchronization. IEEE Trans. on Computers 39, 1175–1185 (1990)
The MathWorks, Inc. Real-Time Workshop User’s Guide, Version 3 (January 1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Girault, A., Nicollin, X. (2003). Clock-Driven Automatic Distribution of Lustre Programs. In: Alur, R., Lee, I. (eds) Embedded Software. EMSOFT 2003. Lecture Notes in Computer Science, vol 2855. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45212-6_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-45212-6_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20223-3
Online ISBN: 978-3-540-45212-6
eBook Packages: Springer Book Archive