Verifying Speculative Multithreading In An Application
AssigneeInternational Business Machines Corporation
InventorMitchell D. Felton
Life of this patent
Estimating the term…
Abstract
Verifying speculative multithreading in an application executing in a computing system, including: executing one or more test instructions serially thereby producing a serial result, including insuring that all data dependencies among the test instructions are satisfied; executing the test instructions speculatively in a plurality of threads thereby producing a speculative result; and determining whether a speculative multithreading error exists including: comparing the serial result to the speculative result and, if the serial result does not match the speculative result, determining that a speculative multithreading error exists.
Claims15
1-6. (canceled)
An apparatus for verifying speculative multithreading in an application executing in a computing system, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
- executing one or more test instructions serially thereby producing a serial result, including insuring that all data dependencies among the test instructions are satisfied;
- executing the test instructions speculatively in a plurality of threads thereby producing a speculative result;
- and
- determining whether a speculative multithreading error exists including:
- comparing the serial result to the speculative result and, if the serial result does not match the speculative result, determining that a speculative multithreading error exists.
The apparatus of claim 10 wherein the test instructions further comprise sums of floating point values.
A computer program product for verifying speculative multithreading in an application executing in a computing system, the computer program product disposed upon a computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
- executing one or more test instructions serially thereby producing a serial result, including insuring that all data dependencies among the test instructions are satisfied;
- executing the test instructions speculatively in a plurality of threads thereby producing a speculative result;
- and
- determining whether a speculative multithreading error exists including:
- comparing the serial result to the speculative result and, if the serial result does not match the speculative result, determining that a speculative multithreading error exists.
Dependencies are inferred from the claim text.