Our Aims and Objectives
Future and near 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, ac- cess, 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. The specific aims of the project are:
- Aim 1: To develop a coherent and flexible software engineering methodology that is tailored to the needs of parallel data-intensive program development, and that covers the entire software lifecycle;
- Aim 2: To develop inter-operable tools, methods and techniques that support this methodology, and that help to ensure the development of robust, reliable, resilient and adaptive parallel data-intensive software;
- Aim 3: To show that the methodology is capable of supporting a variety of software development methods for data-intensive applications and on multiple heterogeneous computing platforms;
- Aim 4: To ensure that there is adequate scope for widespread take-up of the RePhrase technologies.
- Objective 1: To provide a new methodology for developing data-intensive applications on (possibly heterogeneous) multicore/manycore systems, which will significantly reduce the effort required for all of phases of the parallel software development. This fulfils part of Aim 1.
- Objective 2: To develop a set of inter-operable tools and techniques to support all stages of the RePhrase software development methodology. This fulfils part of Aim 2.
- Objective 3: To show that the RePhrase software development methodology works effectively at all stages of the software lifecycle, including evaluating its use for requirements capture, design, implementation, testing and verification, systems deployment, maintenance and software evolution, as applied to the development of complex data-intensive software. This fulfils part of Aim 1.
- Objective 4: To demonstrate the robustness, reliability, resilience, adaptivity and integrity of the software produced by the RePhrase methodology against that of typical existing software, using accepted software engineering metrics as described in Table 1. This fulfils part of Aim 2.
- Objective 5: To demonstrate that the RePhrase methodology fits commonly used software development methods, and to provide sample use-cases for developing complex parallel data-intensive code. This fulfils part of Aim 1 and part of Aim 3.
- Objective 6: To demonstrate the use of the RePhrase methodology for a number of real-world applications, taken from different application domains. This fulfils part of Aim 1 and part of Aim 3.
- Objective 7: To deploy an effective dissemination model where the RePhrase research outputs (including both software and scientific publications) will be released in a timely fashion to a wider audience in order to boost European competitiveness. This fulfils Aim 4.