SYSTEM AND METHOD FOR DEMONSTRATING THE CORRECTNESS OF AN EXECUTION TRACE IN CONCURRENT PROCESSING ENVIRONMENTS
First Claim
1. A method, performed by a computing device, of verifying the correctness of an execution history that includes operations executed in parallel to a data structure, said method comprising:
- defining a rule set that includes an operation rule set, that defines operation behavior on the data structure, a new state rule set and an obsolete state rule set;
reading the execution history from a storage device;
building an event set that includes a start event and an end event for each operation included in the execution history, where each event includes a timestamp according to the respective start time and end time of each operation;
processing each event in the event set sequentially, according to the timestamps of each respective event;
building a state set, in response to said processing, where a new state is added to the state set when processing an event creates a new state according to a new state rule included the new state rule set, and removing an obsolete state in the state set when processing an event removes an obsolete state according to a obsolete state rule included in the obsolete state rule set; and
when the state set is empty, outputting a incorrect result to at least one of a storage device or a display device;
wherein,when every event has been processed and the state set includes at least one state outputting a correct result to at least one of a storage device or a display device.
4 Assignments
0 Petitions
Accused Products
Abstract
Since multi-core processors have become the standard architecture for general purpose machines, programmers are required to write software optimized for parallelism. Verification of correctness is an important issue for parallel code because of its complexity. There are still tools missing that provide verification for complex code, such as testing the execution of code provides. Consequently, described herein are systems and methods to evaluate the correctness of program traces. Furthermore, the systems and methods described herein do not demand excessive computational requirements and the size of the program trace being evaluated increases.
44 Citations
24 Claims
-
1. A method, performed by a computing device, of verifying the correctness of an execution history that includes operations executed in parallel to a data structure, said method comprising:
-
defining a rule set that includes an operation rule set, that defines operation behavior on the data structure, a new state rule set and an obsolete state rule set; reading the execution history from a storage device; building an event set that includes a start event and an end event for each operation included in the execution history, where each event includes a timestamp according to the respective start time and end time of each operation; processing each event in the event set sequentially, according to the timestamps of each respective event; building a state set, in response to said processing, where a new state is added to the state set when processing an event creates a new state according to a new state rule included the new state rule set, and removing an obsolete state in the state set when processing an event removes an obsolete state according to a obsolete state rule included in the obsolete state rule set; and when the state set is empty, outputting a incorrect result to at least one of a storage device or a display device;
wherein,when every event has been processed and the state set includes at least one state outputting a correct result to at least one of a storage device or a display device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system of verifying the correctness of an execution history that includes operations to a data structure executed in parallel on a computing device, comprising:
-
means, implemented on a computing device, for defining a rule set that includes an operation rule set, that defines operation behavior on the data structure, a new state rule set and an obsolete state rule set; means implemented on a computing device, for reading the execution history from a storage device; means, implemented on a computing device, for building an event set that includes a start event and an end event for each operation included in the execution history, where each event includes a timestamp according to the respective start time and end time of each operation; means, implemented on a computing device, for processing each event in the event set sequentially, according to the timestamps of each respective event, means, implemented on a computing device, for building a state set, in response to said processing, where a new state is added to the state set when processing an event creates a new state according to a new state rule included the new state rule set, and removing an obsolete state in the state set when processing an event removes an obsolete state according to a obsolete state rule included in the obsolete state rule set; when the state set is empty, means, implemented on a computing device, for outputting a negative result to at least one of a storage device or a display device; when every event has been processed and the state set includes at least one state, means, implemented on a computing device, for outputting a positive result to at least one of a storage device or a display device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium, embodying computer-executable program code, when executed by a computing device, adapts said computing device to perform a method of verifying the correctness of an execution history that includes operations executed in parallel to a data structure, said method comprising:
-
defining a rule set that includes an operation rule set, that defines operation behavior on the data structure, a new state rule set and an obsolete state rule set; reading the execution history from a storage device; building an event set that includes a start event and an end event for each operation included in the execution history, where each event includes a timestamp according to the respective start time and end time of each operation; processing each event in the event set sequentially, according to the timestamps of each respective event; building a state set, in response to said processing, where a new state is added to the state set when processing an event creates a new state according to a new state rule included the new state rule set, and removing an obsolete state in the state set when processing an event removes an obsolete state according to a obsolete state rule included in the obsolete state rule set; and when the state set is empty, outputting a incorrect result to at least one of a storage device or a display device;
wherein,when every event has been processed and the state set includes at least one state, outputting a correct result to at least one of a storage device or a display device. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification