REPARA – Reengineering and Enabling Performance and poweR of Applications

REPARA – Reengineering and Enabling Performance and poweR of Applications (Booth: EP 8)

Contact: Imre Pechan (evopro Innovation Kft.)

evopro Innovation Kft.
2 Hauszmann Alajos Street
Budapest 1116

Tel: +36 1 279 3970

REPARA – Reengineering and Enabling Performance and poweR of Applications


In recent years, traditional processors have not been able to translate the advances of silicon fabrication technology into corresponding performance gain due to physical constraints and weaknesses of the sequential programming model. These difficulties have forced a shift from CPU-based homogeneous machines to heterogeneous architectures combining different kinds of computing devices, programmed in a highly parallel fashion yet poorly optimizing the available resources towards performance and low energy consumption.
The REPARA project aims to help the transformation and deployment of new and legacy applications in parallel heterogeneous computing architectures while maintaining a balance between application performance, energy efficiency and source code maintainability. The REPARA framework consists of a set of tools assisting the developer in the course of transforming and deploying the source code on heterogeneous platforms, supporting multicore CPU, GPU, DSP as well as reconfigurable FPGA devices. The framework relies on a REPARA-specific abstract representation of the source code allowing automatic code analysis and transformation. Hot spots of the code are identified and annotated as kernel candidates automatically. Selected kernels are mapped to computing devices considering performance and/or energy, relying on predictive models. Kernel code is transformed to specific programming models associated with the target device(s) automatically. The toolchain is based on a run-time system that provides means for coordination and scheduling. Initial evaluation of the framework shows that considerable performance and energy efficiency improvement can be achieved with low developer intervention for real-world industrial use case applications.