EPSRC logo

Details of Grant 

EPSRC Reference: EP/M008991/1
Title: CONSEQUENCER: Sequentialization-based Verification of Concurrent Programs with FIFO channels
Principal Investigator: Parlato, Dr G
Other Investigators:
Researcher Co-Investigators:
Project Partners:
Department: Electronics and Computer Science
Organisation: University of Southampton
Scheme: First Grant - Revised 2009
Starts: 01 March 2015 Ends: 31 August 2016 Value (£): 98,969
EPSRC Research Topic Classifications:
Fundamentals of Computing
EPSRC Industrial Sector Classifications:
No relevance to Underpinning Sectors
Related Grants:
Panel History:
Panel DatePanel NameOutcome
20 Oct 2014 EPSRC ICT Prioritisation Panel - Oct 2014 Announced
Summary on Grant Application Form
The steady exponential increase in processor performance

has reached the inevitable turning point, at which it is no longer feasible to

increase the clock speeds of individual processors. To achieve

higher performance, processors now contain several cores that work in parallel.

Consequently, concurrency has become an important aspect across many

areas within computer science, such as algorithms, data structures, programming

languages, software engineering, testing, and verification.

Concurrent programs consist of several computations or threads that are

active at the same time and communicate through some control mechanism, such as

locks and shared variables, or message passing. Concurrent programming is difficult:

programmers do not only have to guarantee the correctness

of the sequential execution of each individual thread, they must also consider

nondeterministic interferences from other threads. Due to these complex

interactions, considerable resources are spent to repair buggy concurrent

software.

Testing remains

the most used (and often the only known) paradigm in industry to find errors,

even though the inherently nondeterministic nature of the concurrent

schedules causes errors that manifest rarely and are difficult to reproduce and repair.

Testing is not effective in detecting such concurrency errors, as all

possible executions of the programs have to be explored explicitly.

Consequently, testing needs to be complemented by automated verification tools that

enable detection of errors without explicitly (i.e. symbolically) exploring executions.

On the other hand, the state of the art for concurrent program verification lags behind that for sequential programs.

Here, researchers have successfully explored a wide range of techniques and

tools to analyse real-world sequential software.

A recently proposed approach for symbolic verification of concurrent programs

called sequentialization, consists in translating the concurrent program

into an equivalent sequential program so that

verification techniques or tools that were originally designed for

sequential programs can be reused without any changes.

This technique has been successfully used to discover bugs in existing software

and has been implemented in several tools (e.g., Corral by Microsoft Research).

However, existing sequentialization schemas do not support weak memory models,

or distributed programs that use message passing.

In this proposal we address these weaknesses and plan the development of automated verification tools that enable detection of errors in concurrent programs in a systematic and symbolic way. More specifically, we will develop the theory, models and algorithms that underpin sequentialization of concurrent programs that use FIFO channels. This will enable us to capture within a single framework (1) concurrent programs that communicate through shared memory, for the variety of (weak) memory models that are implemented in today's computer architectures, and (2) distributed programs which use a message-passing communication style (i.e., the two most commonly used programming models for concurrency).

A key deliverable of this project will be a set of automatic code-to-code translators, called ConSequencer, for C programs that use Pthread (for shared variables) and MPI (for distributed programs). This will serve as a concurrency plugin for any program verification tool designed for sequential programs. We will evaluate our solutions on publicly available benchmarks using a range of robust sequential verification tools for the C language.
Key Findings
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Potential use in non-academic contexts
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Impacts
Description This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Summary
Date Materialised
Sectors submitted by the Researcher
This information can now be found on Gateway to Research (GtR) http://gtr.rcuk.ac.uk
Project URL:  
Further Information:  
Organisation Website: http://www.soton.ac.uk