RePhrase





What user need or pain point is your project addressing?

The focus of the RePhrase project is on producing new software engineering tools, techniques and methodologies for developing data-intensive applications in C++, targeting heterogeneous multicore/manycore systems that combine CPUs and GPUs into a coherent parallel platform. Data-intensive applications are one of the most important and commonly encountered classes of industrial application. Such applications are often potentially highly parallel and are a clear match to emerging heterogeneous parallel architectures. However, exploiting this potential effectively can be difficult: it is even harder to obtain good performance for parallel data-intensive applications than for compute- intensive applications, since many additional issues related to data management need to be taken into account. These include structuring the data to make it efficient to access and to process, placement/migration/replication of the data to allow fast parallel access, ensuring data consistency etc. The RePhrase project tackles these issues directly.


Project's major results: 

The RePhrase project aims to produce new software engineering tools, techniques and methodologies for developing data-intensive applications in C++, targeting heterogeneous multicore/manycore systems that combine CPUs and GPUs into a coherent parallel platform.


Target stakeholders: 

Start-ups & microfirms, Small & medium enterprises, Open Source developers, Large companies, Technology providers, Research institutions.



Project Start: 
01/04/2015
Project End: 
31/03/2018


How will your solution/service benefit the end-user?

(Near-)future data-intensive applications will need to consider large-scale parallelism as an essential part of their design and development process. RePhrase aims to dramatically simplify this process over the state-of-the-art using a flexible semi-automated development approach that will be built around emerging pattern-based parallel programming technology. Pattern-based programming enables abstraction over low-level parallelism details, including thread creation, communication, synchronisation, and scheduling; and also over data placement, access, migration and replication. This makes it ideal to address the intrinsic complexity of data-intensive applications with respect to parallelism and data management. It will be supplemented by advanced refactoring, program analysis, testing, verification, dynamic adaptivity mechanisms and performance monitoring/measurement tools as part of a coherent development methodology. We will evaluate our work using applications taken from a number of domains, to demonstrate improvements in productivity, reliability, robustness and resilience.


Potential exploitation strategy: 
RePhrase will provide a significant productivity increase in the development, testing, verification, deployment and maintenance of parallel systems.
RePhrase will impact availability and market take-up of innovative tools directly, through the production of new and innovative tools for parallel systems.
RePhrase will provide evidence of potential for productivity gains in the production of parallel, data-intensive software.
 
The impact of the project will be enhanced by the inclusion of a major software development company (IBM), by the involvement of 2 SMEs (Programming Research Ltd and EvoPro) and an industrially-focused research organisation (SCCH), by engagement with leading standards bodies (e.g. the C++ committee and MISRA), and by the inclusion of leading relevant European experts on parallelism and software engineering.

Vertical Market: 

Digital health, Smart cities, Energy, Engineering & manufacturing, Media, Finance & insurance.