The European research project REPARA, which is nearing completion under the coordination of Universidad Carlos III de Madrid, has worked toward improving parallel computing applications for reducing costs, increasing performance, and improving energy efficiency, in addition to facilitating the maintenance of the source code. Credit: uc3m Heterogeneous parallel computing combines various processing elements with different characteristics that share a single memory system. Normally multiple cores (like the 'multicores' in some smart phones or personal computers) are combined with graphic cards and other components to process large quantities of data.
"We hope to help transform code so that it can be run in heterogeneous parallel platforms with multiple graphic cards and reconfigurable hardware," explains the project's coordinator, José Daniel García, an associate professor in UC3M's Computer Science department. "We've made significant improvements in both performance and energy efficiency, comparable to those that can be made with a manual development process; 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."
These computation tasks can be applied to a variety of sectors, such as health (protein docking prediction), transportation (monitoring of railways systems), robotics (stereoscopic vision and navigation), and industry (analysis of defects in parts manufacturing).
The REPARA project aims to make the energy and performance benefits of these computer systems available to users without the enormous development efforts that this type of complex architecture requires. The key to accomplish this challenge lies in, among other things, source code "refactoring", a technique used in software engineering to improve the internal structure of a program without altering its observable behavior. This is similar to modify the distribution of pipes and pumps in a building, so water flows in a faster, cleaner, and more ecological way. By doing this, three fundamental properties are improved: the applications' performance (helping increase the speed of execution), energy efficiency (reducing energy consumption), and the ease maintainability of the source code.
The researchers, who have published some of these advances in the International Journal of Parallel Programming, have developed and registered three technological products that they may commercialize with an European company that has shown interest. "These software products can help developers to offer engineering services to third parties by simplifying the development process," comments Professor José Daniel García.
The REPARA project (Reengineering and Enabling Performance and poweR of Applications), which began in September of 2013 and finishes in August 2016, gathers experts in parallel and heterogeneous computing systems working in academic and industrial areas of five different European countries. The project has a budget of 3.6 million Euros, over 2.6 million of which come from the Seventh Framework Programme for Research and Technological Development, the European Union's main instrument for funding research. In all, six academic institutions are participating: HSR Rapperswil (Switzerland), Universidad Carlos III de Madrid (Spain), University of Pisa (Italy), University of Szeged (Hungary), Technical University of Darmstadt (Germany) and University of Turin (Italy). In addition, the project has two partners from the industrial sector: Ixion Industry & Aerospace (Spain) and Evopro Innovation (Hungary). UC3M is the coordinating institution of the REPARA project and participates through the ARCOS research group, which brings its experience in high performance computing and embedded systems to the project.
Explore further: Information technology needs fundamental shift to continue rapid advances in computing
More information: R. Sotomayor, L. M. Sanchez, J.G. Blas, J. Fernandez, and J. D. Garcia. Automatic CPU/GPU generation of multi-versioned OpenCL kernels for C++ scientific applications. International Journal of Parallel Programming, 2016