Advanced Formal Verification Techniques for Heterogeneous Multi-core Programming

Lead Research Organisation: University of Oxford
Department Name: Computer Science

Abstract

Heterogeneous multi-core processors are key to complex computational problems such as real-time medical imaging, financial analysis and high-definition video, because of the increased processing power they make available. The reliability and probity of such applications is of critical importance, yet heterogeneous multi-core processors are notoriously difficult to program correctly. There is a need for analysis and verification techniques to help detect and fix errors early in the design of multi-core software. The development of such techniques is the aim of the proposed Fellowship research.The research will involve extending the capabilities of existing theoretical computer science techniques based on typechecking and model checking. Typechecking is a commonly used lightweight method for eliminating errors in computer programs: a basic typechecker will reject an invalid expression such as Hello + 1. More complex typechecking, based on session types , can allow a protocol between two parties in a system to be automatically checked. One part of the Fellowship research will involve extending the notion of session types to be applicable to heterogeneous multi-core processors. New typechecking methods will also be developed to help programmers deal with complex issues arising from the management of separate memory spaces in multi-core systems.Model checking is a technique for verifying hardware and software systems which attempts to find system bugs by checking an abstract model of the system. Model checking is less widely used than typechecking, but model checking techniques have recently been incorporated in software products from major vendors such as Microsoft. A major part of the fellowship research will involve developing advanced model checking techniques to help find errors associated with the dynamic behaviour of software for heterogeneous multi-core processors.Part of the research will involve developing a set of open-source tools based on the novel formal analysis techniques. Experience has shown that developers interested in multi-core programming are reluctant to adopt new languages and formalisms, and will only consider new techniques if they are easy and intuitive to use, and can be integrated into an existing development tool-chain. To increase the potential for eventual adoption by industry, the new techniques developed during the Fellowship research will involve regular input and advice from Codeplay Software Ltd., a UK based company specialising in development tools for multi-core processors.

Publications

10 25 50
 
Description During the Fellowship I developed:
- Automatic methods for analysing software that uses "scratchpad" memory (for instance, software for the Cell Broadband Engine processor)
- An extension of "k-induction", a popular method for hardware verification, to the software realm
- A method for applying "predicate abstraction" to concurrent programs
All these techniques were implemented in software tools that can be used by the research community.
Exploitation Route All of the techniques developed during the Fellowship are avaialble as open source software tools, which can be used by industry and by other researchers.

The publications arising fom the Fellowship, at high profile conferences, also allow the work to be taken forward by the research community.
Sectors Digital/Communication/Information Technologies (including Software),Education

 
Description FP7
Amount € 600,000 (EUR)
Funding ID 287767 
Organisation European Commission 
Sector Public
Country European Union (EU)
Start 11/2011 
End 02/2015
 
Description Intel Research Office
Amount $271,400 (USD)
Organisation Intel Corporation 
Sector Private
Country United States
Start 05/2013 
End 04/2016