POLYTRACE is an Inria exploratory action which involves:
– Christophe Alias, principal investigator, Inria
– Keiji Kimura, Professor, Waseda University, Japan
Compilers must restructure the application to use as best as possible computing and storage resources. In general, runtimes do a better job than compilers, as the availability of dynamic informations (variable values, tests, loop iterations) make possible to make the right decisions. However, runtimes come with an overhead, which push them to coarse-grain task scheduling, while compilers are usually in charge of mapping the tasks to computation units (GPU, FPGA, etc) and then to extract fine-grain parallelism. We focus on programs from the polyhedral model, where the operations of the execution trace depends only on input size and where the compilation schemes are affine functions (schedule, resource allocation, etc). We believe this will make possible to obtain levels of optimizations out-of-reach by a purely static compilation.
In this project, we focus in the inference of high-performance computing compilation schemes thanks to dynamic analysis on a selection of execution traces. We plan to revisit the key ingredients of parallel/optimizing compilers: data placement, computation scheduling and partitionning and code generation. In particular, we will investigate how to select execution traces to ensure code coverage and how to extrapolate the results of dynamic analysis to polyhedral compilation mappings.
Compiler inference, dynamic analysis, polyhedral model
CAPESA is an Inria “Associated Team”,
- Principal investigator (Inria): Laure Gonnord, CASH.
- Principal investigator (Partner institution): Sébastien Mosser, Département d’informatique, UQAM (Canada)
- Other participants:] Ludovic Henrio (CNRS, CASH, LIP), Matthieu Moy (University Claude Bernard Lyon 1, CASH, LIP), Jean Privat (UQAM, Canada)
In this project we propose to study code transformation in terms of
“semantic diff”. This notion will be defined thanks to code
intermediate representations such as Abstract Syntax Trees (AST) or
the control flow graph, not by textual representation. The objective
is not only to compute but also to manipulate these “diffs” in several
contexts: being able to reapply a diff on another program than the one
it comes from, quantify the interference between two diffs, and more
generally to study the composability of several diffs. The approach
will be experimentally validated on problems coming from the domain of
expertise of both teams of the cooperation: compiler pass analyses
(expertise of CASH), and git commits (expertise of UQAM). The
complementarity of the analysis and compilation approaches of the CASH
team and the expertise on software engineering of the UQAM member will
ensure the success and the originality of the project.
static analysis, compilation, software engineering, software
evolution, code transformation, semantics
(funded by the National French Agency, 2018-2022, PI: Laure Gonnord)
The context of the proposal is the increasing need for methods and tools that are able to deal with the massive parallelism now faced by the programmers. So far, methods and tools based on the polyhedral model (a powerful representation for capturing the flow and the data of a program at the same time) suffer from their lack of expressivity.
The objective of the proposal is to invent a way to reason about more general programs and data structures (e.g., trees). We will explore adapting and extending the existing efficient scheduling techniques that have
been developed since the advent of the polyhedral model. The ambition is to develop a new framework with new ideas that may come from other communities such as abstract interpretation, and rewriting systems.
The website of the project is: http://codas.ens-lyon.fr