The continuous quest for more power has seen our computers evolve from machines with a single processing component to complex architectures combining the likes of CPUs with multiple cores, GPUs and DSPs. However, it is common knowledge that these technologies have much room for improvement when it comes to performance and energy consumption.
The REPARA project, which ends this month, has been focused on this objective since 2013. Grouping experts in software engineering, development tools and computer hardware, it originally aimed to achieve a unified programming model for heterogeneous computers, that is, a transformation of existing source code so that it can be run with multiple graphic cards and reconfigurable hardware. They have recently published some of their advances in the International Journal of Parallel Programming.
‘We’ve made significant improvements in both performance and energy efficiency, comparable to those that can be made with a manual development process,’ said the project’s coordinator José Daniel García, an associate professor in UC3M’s Computer Science department. ‘The difference is that with a manual development process, we need months of engineering, while with our semiautomatic process we can do the same tasks in a few days.’
Their work consisted, amongst other things, in source code ‘refactoring’, a technique used in software engineering to improve the internal structure of a programme without altering its observable behaviour. Three fundamental properties of the original source code were improved: performance (helping increase the speed of execution), energy efficiency (reducing energy consumption), and maintainability.
‘These software products can help developers to offer engineering services to third parties by simplifying the development process. We can also reduce the time that the engineers need to fine-tune a software product in a parallel heterogeneous environment, which will significantly reduce development costs and increase software development industry competitiveness,’ said Prof. García. A large panel of markets, including health, transportation, robotics and industry – for the analysis of defects in manufactured parts – are set to benefit from this innovation, and use cases have already been used for each of these sectors.
Cevelop – an integrated development environment for C/C++ developers – and Fastflow – a C++ parallel programming framework advocating high-level, pattern-based parallel programming – are two notable development tools created by the seven-strong consortium. These tools are available for download on their respective websites.