Project : popart
Section: New Results
Implementations of synchronous programs
We have adapted the code distribution method of ocrep to desynchronize Lustre programs in order to handle long duration tasks. Such tasks, whose worst case execution time and maximal execution rates are known and bounded, violate intrinsically the synchrony abstraction of Lustre. Our distribution method is clock-driven, meaning that the program is partitioned according to its clocks, and then desynchronized such that each computing location is scheduled at a different rate, hence allowing long duration tasks to complete without slowing the fast computations .
In this field, our work is more precisely aimed at generating a static schedule of a given data-flow graph of tasks onto a distributed heterogeneous architecture, taking into account the execution characteristics of the tasks (resp. data-dependencies) on the processors (resp. communication links) of the architecture. We have worked in three directions:
On the tolerance of processor failures, we have designed and implemented a new heuristics for SynDEx, which distributes a data-flow graph of tasks onto an heterogeneous architecture such that the obtained schedule tolerates a given number of processor failures. It performs significantly better than other comparable heuristics found in the literature  .
On the tolerance of communication media failures, we have conducted a bibliographical study and are now envisioning three research directions depending on the type of communication links (point-to-point or bus) and on the level of replication of the communications (active or hybrid active/passive).
On the generation of reliable schedules, we have designed and implemented an original bi-criteria heuristics for SynDEx, aiming at both minimizing the critical path of the distributed schedule, and maximizing its reliability w.r.t. the characteristics of the target heterogeneous architecture .
We have also worked on fully distributed algorithms to find multiple disjoint paths in networks of processors, from a given source node to a given destination node. The goal is that whenever a path will fail, a spare one will be available immediately. Here, the difficulty arises because no node knows the complete topology of the network, but only its immediate neighbors. We are currently implementing our distributed algorithm in NS (Network Simulator( http://www.isi.edu/nsnam/ns)).