Clock-Driven Automatic Distribution of Lustre Programs

  • Alain Girault
  • Xavier Nicollin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2855)


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.


Automatic distribution synchronous abstraction data-flow languages clocks long duration tasks reactive systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)Google Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Benveniste, A., Caillaud, B., Le Guernic, P.: Compositionality in dataflow synchronous languages: Specification and distributed code generation. Information and Computation 163, 125–171 (2000)CrossRefMathSciNetzbMATHGoogle Scholar
  4. 4.
    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 systemsGoogle Scholar
  5. 5.
    Berry, G., Gonthier, G.: The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming 19(2), 87–152 (1992)CrossRefzbMATHGoogle Scholar
  6. 6.
    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 2341Google Scholar
  7. 7.
    Caspi, P.: Clocks in data-flow languages. Theoretical Computer Science 94, 125–140 (1992)CrossRefMathSciNetzbMATHGoogle Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    Caspi, P., Pouzet, M.: Lucid synchrone: une extension fonctionnelle de Lustre. In: Journées Francophones des Langages Applicatifs (JFLA), Morzine, France (February 1999); Inria Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Gupta, R., Pande, S., Psarris, K., Sarkar, V.: Compilation techniques for parallel systems. Parallel Computing 25(13), 1741–1783 (1999)CrossRefGoogle Scholar
  14. 14.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language Lustre. Proceedings of the IEEE 79(9), 1305–1320 (1991)CrossRefGoogle Scholar
  15. 15.
    Harel, D., Pnueli, A.: On the development of reactive systems. In: Logic and Models of Concurrent Systems, NATO, Springer, Heidelberg (1985)Google Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Liu, C.L., Layland, J.W.: Scheduling algorithms for multiprogramming in hard real-time environnement. Journal of the ACM 20(1), 46–61 (1973)CrossRefMathSciNetzbMATHGoogle Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Paris, J.-P.: Exécution de tâches asynchrones depuis Esterel. PhD Thesis, University of Nice, Nice, France (1992)Google Scholar
  20. 20.
    Plaice, J.A., Saint, J.-B.: The Lustre-Esterel Portable Format. Inria, Sophia- Antipolis, France (1987) (unpublished report)Google Scholar
  21. 21.
    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)Google Scholar
  22. 22.
    Sha, L., Rajkumar, R., Lehoczky, J.P.: Priority inheritance protocols: An approach to real-time synchronization. IEEE Trans. on Computers 39, 1175–1185 (1990)CrossRefMathSciNetGoogle Scholar
  23. 23.
    The MathWorks, Inc. Real-Time Workshop User’s Guide, Version 3 (January 1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Alain Girault
    • 1
  • Xavier Nicollin
    • 2
  1. 1.Inria Rhône-Alpes, Pop Art projectFrance
  2. 2.INPG/VerimagFrance

Personalised recommendations