IP Library Granted Patent US 8,504,330
Granted Patent B2
US 8,504,330 · App. 12/236,684 · Granted Aug 6, 2013

Parallelizing bounded model checking using tunnels over a distributed framework

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,504,330
App. No.
12/236,684
Granted
Aug 6, 2013
Kind
B2
Abstract

A system and method for bounded model checking of computer programs includes decomposing a program having at least one reachable property node for bounded model checking (BMC) into sub-problems by employing a tunneling and slicing-based (TSR) BMC reduction method. The sub-problems of the TSR method are partitioned in a distributed environment, where the distributed environment includes at least one master processing unit and at least one client unit. The sub-problems are solved by each client independently of other clients to reduce communication overhead and provide scalability.

Claims (46)

1. A method for bounded model checking of computer programs, the method comprising:

decomposing a program having at least one reachable property node for bounded model checking (BMC) into sub-problems by employing a tunneling and slicing-based (TSR) BMC reduction method by:

assigning the sub-problems of the TSR method in a distributed environment, where the distributed environment includes at least one master processing unit and at least one client unit; and

solving the sub-problems by each client independently of other clients to reduce communication overhead and provide scalability,

wherein decomposing includes:

creating at least one tunnel based on disjunctive control paths through the program;

obtaining a reduced BMC sub-problem using BMC unrolling, while using path constraints imposed by the at least one tunnel;

for the reachable property node, determining a quantifier-free formula (QFP) in a decidable subset of first order logic; and

checking satisfiability of the QFP, independently and individually, to determine whether the QFP is satisfiable for the sub-problem.

2. The method as recited in claim 1 , further comprising:

continuing the decomposing until a BMC bound is reached.

3. The method as recited in claim 1 , wherein the at least one master controls activity of the at least one client and the method further comprises dynamically adjusting an available pool of clients based on client responses.

4. The method as recited in claim 3 , wherein dynamically adjusting includes removing clients that do not respond in accordance with a synchronization schedule and adding these clients back when these clients tender a response.

5. The method as recited in claim 1 , wherein the at least one master and the at least one client are arranged for communication such that the clients communicate only with the at least one master.

6. The method as recited in claim 1 , further comprising:

disjunctive partitioning,

wherein independent sub-problems are created deterministically by clients, and solving includes statically solving an exclusive subset of sub-problems by clients.

7. The method as recited in claim 1 , further comprising:

assigning a sub-problem by notifying a client of a partition identifier and a corresponding BMC depth.

8. A method for bounded model checking of computer programs, the method comprising:

decomposing a program having at least one reachable property node for bounded model checking (BMC) into sub-problems by employing a tunneling and slicing-based (TSR) BMC reduction method by:

assigning sub-problems by a master controller to one or more clients controllers;

partitioning the sub-problems of the TSR method by a client controller or the master controller in response to a first message from the master controller; and

solving the sub-problems by a respective client corresponding to a second message from the master controller, where solving is performed independently of other clients to reduce communication overhead and provide scalability.

9. The method as recited in claim 8 , wherein decomposing includes:

creating at least one tunnel based on disjunctive control paths through the program;

obtaining a reduced BMC sub-problem using BMC unrolling, while using path constraints imposed by the at least one tunnel;

for the reachable property node, determining a quantifier-free formula (QFP) in a decidable subset of first order logic; and

checking satisfiability of the QFP, independently and individually, to determine whether the QFP is satisfiable for the sub-problem.

10. The method as recited in claim 8 , further comprising:

continuing the decomposing until a BMC bound is reached.

11. The method as recited in claim 8 , wherein the master controller controls activity of the one or more clients and the method further comprises dynamically adjusting an available pool of clients based on client responses.

12. The method as recited in claim 11 , wherein dynamically adjusting includes removing clients that do not respond in accordance with a synchronization schedule and adding these clients back when these clients tender a response.

13. The method as recited in claim 8 , wherein the master controller and the client controller are arranged for communication such that the clients communicate only with the master controller.

14. The method as recited in claim 8 ,

wherein partitioning includes disjunctive partitioning, and

wherein independent sub-problems are created deterministically by clients, and solving includes statically solving an exclusive subset of sub-problems by clients.

15. The method as recited in claim 8 , further comprising:

assigning a sub-problem by notifying a client of a partition depth and a corresponding BMC depth.

16. A system for bounded model checking of computer programs, the system comprising:

a master controller configured to control communication with one or more client controllers; and

a tunneling and slicing-based (TSR) BMC reduction method configured to decompose a computer program into sub-problems, the computer program having at least one reachable property node for bounded model checking (BMC),

wherein the one or more client controllers are configured to partition the sub-problems of the TSR method and solve the sub-problems independently of other clients to reduce communication overhead and provide scalability.

17. The system as recited in claim 16 , wherein the master controller controls activity of the client controllers by dynamically adjusting an available pool of clients based on client responses, removing clients that do not respond in accordance with a synchronization schedule and adding these clients back when these clients tender a response.

18. The system as recited in claim 16 , wherein the master controller and the client controllers are arranged in a star topology such that the client controllers communicate only with the master controller.

19. The system as recited in claim 16 , wherein the one or more client controllers disjunctively partition independent sub-problems deterministically and solve an exclusive subset of the sub-problems statically.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE 8538896 AND ADD 8583896 PREVIOUSLY RECORDED ON REEL 031998 FRAME 0667. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 30, 2017
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 042754/0703 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2014
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 031998/0667 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2008
From: GANAI, MALAY
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 021844/0873 →