首页 | 本学科首页   官方微博 | 高级检索  
     


Modular static scheduling of synchronous data-flow networks
Authors:Marc Pouzet  Pascal Raymond
Affiliation:1.Laboratoire de l’Ecole Normale Supérieure,Université Pierre et Marie Curie,Paris cedex 05,France;2.Laboratoire VERIMAG,Centre National de la Recherche Scientifique,Gières,France
Abstract:This paper addresses the question of producing modular sequential imperative code from synchronous data-flow networks. Precisely, given a system with several input and output flows, how to decompose it into a minimal number of classes executed atomically and statically scheduled without restricting possible feedback loops between input and output?Though this question has been identified by Raymond in the early years of Lustre, it has almost been left aside until the recent work of Lublinerman, Szegedy and Tripakis. The problem is proven to be intractable, in the sense that it belongs to the family of optimization problems where the corresponding decision problem—there exists a solution with size c—is NP-complete. Then, the authors derive an iterative algorithm looking for solutions for c=1,2,… where each step is encoded as a satisfiability (SAT) problem.Despite the apparent intractability of the problem, our experience is that real programs do not exhibit such a complexity. Based on earlier work by Raymond, the current paper presents a new encoding of the problem in terms of input/output relations. This encoding simplifies the problem, in the sense that it rejects some solutions, while keeping all the optimal ones. It allows, in polynomial time, (1) to identify nodes for which several schedules are feasible and thus are possible sources of combinatorial explosion; (2) to obtain solutions which in some cases are already optimal; (3) otherwise, to get a non trivial lower bound for c to start an iterative combinatorial search. The method has been validated on several industrial examples.The solution applies to a large class of block-diagram formalisms based on atomic computations and a delay operator, ranging from synchronous languages such as Lustre or Scade to modeling tools such as Simulink.
Keywords:
本文献已被 SpringerLink 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号