RePhrase: Refactoring Parallel Heterogeneous Resource-Aware. Applications-a Software Engineering Approach Projects uri icon



  • European Research Project


  • 644235

date/time interval

  • April 1, 2015 - March 31, 2018


  • 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 dataintensive
    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


  • data-intensive applications; parallel patterns; heterogeneous architectures; just-in-time compilation; dynamic adaptivity; software refactoring; quality assurance analysis; verification