# Clock-Driven Automatic Distribution of Lustre Programs

Alain Girault and Xavier Nicollin

3^{rd} International Conference on Embedded Software

Philadelphia, USA, October 2003

## 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.

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

## BibTeX entry

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

© Springer Verlag

Send comments to Alain Girault at Alain.Girault@inrialpes.fr.