Project-Team : compsys
Section: Scientific Foundations
Federating Polyhedral Tools
Participants: Fabrice Baray, Alain Darte, Antoine Fraboulet, Paul Feautrier, Tanguy Risset.Present-day tools for embedded system design have trouble handling loops. This is particularly true for logic synthesis systems, where loops are systematically unrolled (or considered as sequential) before synthesis. An efficient treatment of loops needs the polyhedral model. This is where past results from the automatic parallelization community are useful. The French community is leading in this field, mainly as one of the long term results of the C3 cooperative research program.
The polyhedral model is now widely accepted (Inria projects Cosi and A3, PIPS at Ecole des Mines de Paris, Suif from Stanford University, Compaan at Berkeley and Leiden, PiCo from the hp-labs, the dtse methodology at Imec, etc.). Most of these are research projects, but the increased involvement of industry (Hewlett Packard, Philips) is a favorable factor. Polyhedra are also used in test and certification projects (Verimag, Lande, Vertecs). A very recent development is the interest shown by several compiler groups for polyhedral methods (the gcc group, Reservoir Labs in the USA).
Two basic tools that have emerged from this period are Pip [18] and the Polylib [37]. They are currently the only available tools since maintenance has stopped on Omega. Their functionalities are parametric integer programming and manipulations of unions of polyhedra. Granting that the showroom effect is important for us (these tools are used in many foreign laboratories), we nevertheless think that maintaining, improving, and extending these tools is a proper research activity. One of our goals must be the design of new tools for new scheduling techniques.
In the following, we distinguish the development of existing tools, and the conception and implementation of new tools. These tasks are nevertheless strongly related. We anticipate that most of the new techniques will be evolutions of the present day tools rather than revolutionary developments.
Developing and Distributing the Polyhedral Tools
Recently, we have greatly increased the software quality of Pip and the Polylib. Both tools can now use exact arithmetic. A cvs archive has been created for cooperative development. The availability for one year of an odl software engineer has greatly improved the Polylib code. A bridge for combined use of the two tools has been created by Cédric Bastoul. These tools have been the core of new code generation tools [16] [33] widely used in prototyping compilers. Paul Feautrier is the main developer of Pip, while Tanguy Risset has been in charge of coordinating the development of the Polylib for several years. Other participants are in Irisa (Rennes) and ICPS (Strasbourg), and also in Lyon and Leiden. In the near future, we contemplate the following actions:
For Pip, algorithmic techniques for better control of the size of intermediate values; comparison with commercial tools like Cplex, for the non-parametric component of the tool.
For the Polylib, a better handling of
-polyhedra used to
target loops with non unit increments.For higher-level tools, Cédric Bastoul (a student of Paul Feautrier) has developed CLooG, an improved loop generation tool along the lines of Fabien Quilleré's system, which is now available on the Web and is being incorporated in experimental compilers.
For all these tools, we want to strengthen the user community by participating in the Polylib forum and organizing meetings for all interested parties.
New Models
Industry is now conscious of the need for special programming models for embedded systems. Scholars from the University of Berkeley have proposed new models (process networks, sdl, etc.). This has culminated in the use of Kahn process networks, for which a complete overhaul of parallelization techniques is necessary (see Section 3.4.2 above). Optimizations for memory reduction are also very important. We are developing a tool, based on operations on integral lattices (including Minkowski's successive minima), named Clak, that can be used to derive affine mappings with modulos for memory reuse (see more details in Section 5.6).
Besides, our community has focused its attention on linear programming tools. For embedded systems, the multi-criteria aspect is pervasive, and this might necessitate the use of more sophisticated optimization techniques (non-linear methods, constraint satisfaction techniques, ``pareto-optimal'' solutions).
Here again, our contributions in these areas will be facilitated by our leadership in polyhedral tools. We nevertheless expect that, as in the past, the methods we need have already been invented in other fields like operational research, combinatorial optimization, or constraint satisfaction programming, and that our contribution will be in the selection and adaptation (and possibly the implementation) of the relevant tools.