Clock-Driven Automatic Distribution of Lustre Programs

Alain Girault and Xavier Nicollin
3rd International Conference on Embedded Software
Philadelphia, USA, October 2003


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.

Our algorithm is implemented in the tool ocrep that distributes automatically Lustre programs.

BibTeX entry

  author =	 {A. Girault and X. Nicollin},
  title =	 {Clock-Driven Automatic Distribution of {Lustre} Programs},
  booktitle =	 {3rd International Conference on Embedded Software,
  pages =	 {206--222},
  year =	 2003,
  editor =	 {R. Alur and I. Lee},
  volume =	 2855,
  series =	 {LNCS},
  address =	 {Philadelphia, USA},
  month =	 oct,
  publisher =	 {Springer-Verlag}

[PDF] [Postscript]
© Springer Verlag

Send comments to Alain Girault at