IP Library Granted Patent US 8,769,499
Granted Patent B2
US 8,769,499 · App. 12/907,409 · Granted Jul 1, 2014

Universal causality graphs for bug detection in concurrent programs

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,769,499
App. No.
12/907,409
Granted
Jul 1, 2014
Kind
B2
Abstract

A system and method for predictive analysis includes generating an execution trace on an instrumented version of source code for a multithreaded computer program. Interleavings which potentially lead to a violation in the program are statically generated by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that might lead to an error. The UCG includes a unified happens-before model for the concurrent program and a property being analyzed. The interleavings are symbolically checked to determine errors in the program.

Claims (29)

1. A method for predictive analysis, comprising:

generating an execution trace on an instrumented version of source code for a multithreaded computer program stored on computer readable storage media;

statically generating interleavings which lead to a violation in the program by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that lead to an error, the UCG being a unified happens-before model for the concurrent program and a property being analyzed;

symbolically checking the interleavings to determine errors in the program; and

decomposing lengths of computations of the UCG into smaller segments, which are lock-free and there does not exist a wait/notify seed edge, a fork join seed edge or a property seed edge with endpoints along the segments,

wherein the UCG is configured to capture, as happens-before constraints, a set of all interleavings that are possible under scheduling constraints imposed by synchronization primitives that lead to violations of the property, and

wherein the Universal Causality Graph incorporates happens-before constraints arising from the concurrent program and a correctness property.

2. The method as recited in claim 1 , wherein the static predictive analysis using a Universal Causality Graph (UCG) is performed to isolate locations that violate the correctness property being checked.

3. The method as recited in claim 1 , wherein decomposing the UCG increases scalability of the predictive analysis.

4. The method as recited in claim 1 , wherein the UCG handles all standard synchronization primitives in threads.

5. A non-transitory computer readable storage medium comprising a computer readable program for predictive analysis, wherein the computer readable program when executed on a computer causes the computer to perform the steps of:

generating an execution trace on an instrumented version of source code for a multithreaded computer program;

statically generating interleavings which lead to a violation in the program by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that lead to an error, the UCG being a unified happens-before model for the concurrent program and a property being analyzed;

symbolically checking the interleavings to determine errors in the program; and

decomposing lengths of computations of the UCG into smaller segments, which are lock-free and there does not exist a wait/notify seed edge, a fork join seed edge or a property seed edge with endpoints along the segments,

wherein the UCG is configured to capture, as happens-before constraints, a set of all interleavings that are possible under scheduling constraints imposed by synchronization primitives that lead to violations of the property, and

wherein the Universal Causality Graph incorporates happens-before constraints arising from the concurrent program and a correctness property.

6. The non-transitory computer readable storage medium as recited in claim 5 , wherein a static predictive analysis using a Universal Causality Graph (UCG) is performed to isolate locations that violate the correctness property being checked.

7. The non-transitory computer readable storage medium as recited in claim 5 , wherein decomposing the UCG increases scalability of the predictive analysis.

8. The non-transitory computer readable storage medium as recited in claim 5 , wherein the UCG handles all standard synchronization primitives in threads.

9. A system for predictive analysis, comprising:

a source code instrumentation module stored on non-transitory computer readable storage media and configured to generate an instrumented version of source code for a multithreaded computer program;

a predictive analysis module configured to statically generate interleavings which lead to a violation in an execution trace of the program by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that lead to an error, the UCG being a unified happens-before model for the program and a property being analyzed; and

a symbolic checker to check the interleavings to determine errors in the program,

wherein lengths of computations of the UCG are decomposable into smaller segments, which are lock-free and do not have a wait/notify seed edge, a fork join seed edge or a property seed edge with endpoints along the segments,

wherein the UCG is configured to capture, as happens-before constraints, a set of all interleavings that are possible under scheduling constraints imposed by synchronization primitives that lead to violations of the property, and

wherein the Universal Causality Graph incorporates happens-before constraints arising from the concurrent program and a correctness property.

10. The system as recited in claim 9 , wherein the decomposable segments increase scalability of the predictive analysis.

11. The system as recited in claim 9 , wherein the UCG handles all standard synchronization primitives.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2015
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 034765/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2010
From: KAHLON, VINEET; WANG, CHAO
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 025159/0648 →