Conchord: Analysis of Concurrent Programs


About

The Conchord project is investigating scalable techniques and tools for testing, debugging, and verifying concurrent programs. The focus is on checking lightweight concurrency correctness properties like datarace freedom, deadlock freedom, and atomicity for large, real-world, multi-threaded programs.


Papers
Benchmarks

Most of the concurrent Java benchmarks used in the above papers are available in the SVN repository hosted here.


Software

Implementations of various static and dynamic concurrency analyses for detecting dataraces, deadlocks, and atomicity violations in Java programs, including those in the above PLDI'06, ICSE'09, and FSE'10 papers, are publicly available in the Chord distribution. See the below information for more details. You will need to download Chord; see the Chord project website for more details.

  • Static Datarace Checker: The datarace checker from our PLDI'06 paper.

    Getting Started: Run the datarace checker on the example Java program in directory main/examples/datarace_test/ of the Chord 2.0 distribution by following the instructions in the README file in that directory.

    Upon successful completion, the checker should produce files dataraces_by_fld.html and dataraces_by_obj.html.

    Configuration: Read the section titled ``Static Datarace Analysis" in the chapter on Predefined Analyses in Chord's user guide for how to configure aspects of the datarace checker that affect its performance, precision, and soundness.

    Experimental Results: Details of the experimental evaluation from our PLDI'06 paper are available here.

  • Static Deadlock Checker: The deadlock checker from our ICSE'09 paper.

    Getting Started: Run the deadlock checker on the example Java program in directory main/examples/deadlock_test/ of the Chord 2.0 distribution by following the instructions in the README file in that directory.

    Upon successful completion, the checker should produce file deadlocks.html.

    Configuration: Read the section titled ``Static Deadlock Analysis" in the chapter on Predefined Analyses in Chord's user guide for how to configure aspects of the deadlock checker that affect its performance, precision, and soundness.

    Experimental Results: Details of the experimental evaluation from our ICSE'09 paper are available here.