Refactoring parallel heterogeneous resource-aware applications  - a software engineering approach
The RePhrase project directly meets the challenge of ICT-09-2014, by studying the critically important issue of improving software development practice for parallel data-intensive applications. Data-intensive applications are among the most important and commonly encountered kinds of industrial application, and are increasingly important with
the emergence of ""big data"" problems. Emerging heterogeneous parallel architectures form ideal platforms to exploit the
massive-scale inherent parallelism that is usually implicit in such applications, but which is often difficult to extract in practice. 
Solving this problem will bring major economic benefits to the software industry.
To address this challenge, RePhrase brings together a team of leading industrial and academic researchers, software engineers, systems developers, parallelism experts and domain experts from large companies, SMEs and leading universities. It aims to develop a novel software engineering methodology for developing complex, large-scale parallel data-intensive applications, supported by a very high-level programming model. We will exploit advanced pattern-based programming, refactoring, testing, debugging, verification and adaptive-scheduling technologies to build an interoperable tool-chain supporting our methodology, based on but significantly extending existing industrial and research tools. These tools will significantly ease, and even automate, all phases of typical software development, from design and implementation to long-term maintenance and software evolution. The generality of our approach will be ensured by targeting C++ and the most popular low-level parallel programming models, such as the C++11/14/17 standards, pthreads, OpenMP, Intel TBB, OpenCL and CUDA.  We will demonstrate our approach on a range of large-scale data-intensive applications, taken from different domains, including bio-medical image processing, data analysis, machine learning, computer vision and railway diagnosis.