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.
People |
ORCID iD |
Alastair Donaldson (Principal Investigator) |
Publications
Donaldson A
(2010)
Type inference and strong static type checking for Promela
in Science of Computer Programming
Donaldson A
(2011)
SCRATCH
Donaldson A
(2010)
Tools and Algorithms for the Construction and Analysis of Systems
Donaldson A
(2011)
Computer Aided Verification
Donaldson A
(2012)
Formal Methods for Components and Objects
Donaldson A
(2011)
Static Analysis
Donaldson A
(2012)
Counterexample-guided abstraction refinement for symmetric concurrent programs
in Formal Methods in System Design
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 | 04/2013 |
End | 04/2016 |