Refactoring Parallel Heterogeneous Applications
Context and motivation
Heterogeneous multicore/manycore systems are becoming ubiquitous. Such systems combine CPUs, GPUs etc. into coherent highly-parallel, and energy-efficient, systems. Data-intensive applications are one of the most important and commonly encountered classes of industrial application. They are often potentially highly parallel and are a clear match to emerging heterogeneous parallel systems. Near-future data-intensive applications will thus need to consider large-scale parallelism as an essential part of their design and development. RePhrase aims to dramatically simplify this process over the state-of-the-art using a flexible semi-automated approach that will be built around emerging pattern-based parallel programming technology.
Typical state-of-the-art development methodologies treat parallelism as an after-thought, deploying, for example, inappropriate concurrency techniques that are tedious, error-prone and lacking scalability or portability to new computer architectures. Developing parallel software is still seen as a specialist activity, and strong software engineering principles are rarely applied. What is needed is a new software development approach that is simple enough to be followed by applications developers, but which is flexible and robust enough to deal with highly complex parallel hardware and systems, as required for e.g. data-intensive applications.
In order to resolve the challenges of software development for heterogeneous parallel systems, a number of key technical problems must be addressed.
- We must develop an effective software engineering methodology for parallel data-intensive programming that enables the programmer to “think parallel”.
- We must support this methodology with good inter-operable tools that expose the programmer to the necessary issues related to parallelism, but that do not unnecessarily overload them with complexity.
- We must develop ways to help with the identification and structuring of parallelism, and with the necessary modifications of sequential code that allow parallelism to be introduced.
- We must provide ways to map parallel software to the target hardware platforms.
- We must provide mechanisms that allow parallel software to be modified/re-engineered to support software evolution and new hardware platforms.
- We must provide mechanisms that support automatic adaptation in the presence of multiple applications and changing hardware availability.
- We must provide mechanisms to significantly ease or even automate the discovery of typical bugs that are encountered in programming parallel data-intensive systems.
- We must identify standards for pattern-based parallel programming, and develop tools that automatically check the code for compliance with these standards
Key to this is the RePhrase software development methodology, which will:
- develop a new requirements capture process;
- exploit emerging pattern-based parallel programming and refactoring technology for parallel programming, so addressing key issues in design and implementation;
- develop adaptivity mechanisms to deal with issues of deployment on heterogeneous platforms; and
- develop new parallel testing, verification and debugging techniques to deal with correctness and extra-functional concerns.
The RePhrase project directly targets the expected impacts for ICT-09-2014 as follows:
- 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 3 SMEs (Programming Research Ltd, EvoPro and the research organization 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.
AT A GLANCE
Refactoring Parallel Heterogeneous Applications – a Software Engineering Approach
Professor Kevin Hammond, University of St Andrews, UK
UK: University of St Andrews; Programming Research Ltd
Spain: University Carlos III, Madrid; CIBERSAM, Madrid
Italy: University of Pisa
Austria: Software Competence Center Hagenberg (SCCH)
Hungary: EvoPro Ltd
Israel: IBM Research, Haifa