Methods, systems, and media for providing determinism in multithreaded programs
First Claim
Patent Images
1. A method for providing determinism in a multithreaded program, comprising:
- instrumenting the multithreaded program executed by a hardware processor with;
a proxy that;
receives first inputs to the multithreaded program; and
determines whether a schedule of execution of a plurality of threads in the multithreaded program corresponding to a set of input constraints satisfied by the first inputs has been memoized, wherein the set of input constraints is satisfied by a plurality of inputs to the multithreaded program including the first inputs and second inputs, wherein the second inputs are different than the first inputs; and
a replayer that;
if it is determined that the schedule corresponding to the set of input constraints satisfied by the first inputs has been memoized, processes the first inputs by the multithreaded program according to the schedule.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and media for providing determinism in multithreaded programs are provided. In some embodiments, methods for providing determinism in multithreaded programs are provided, the methods comprising: instrumenting a program with: a proxy that: receives inputs to the program; and determines whether a schedule corresponding to a set of input constraints satisfied by the inputs has been memoized; and a replayer that: if it is determined that a schedule corresponding to a set of input constraints satisfied by the inputs has been memoized, processes the inputs by the program according to the schedule.
24 Citations
20 Claims
-
1. A method for providing determinism in a multithreaded program, comprising:
instrumenting the multithreaded program executed by a hardware processor with; a proxy that; receives first inputs to the multithreaded program; and determines whether a schedule of execution of a plurality of threads in the multithreaded program corresponding to a set of input constraints satisfied by the first inputs has been memoized, wherein the set of input constraints is satisfied by a plurality of inputs to the multithreaded program including the first inputs and second inputs, wherein the second inputs are different than the first inputs; and a replayer that; if it is determined that the schedule corresponding to the set of input constraints satisfied by the first inputs has been memoized, processes the first inputs by the multithreaded program according to the schedule. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
20. A method for providing determinism in a multithreaded program, comprising:
-
receiving first inputs to the multithreaded program; determining whether a schedule of execution of a plurality of threads in the multithreaded program corresponding to a set of input constraints satisfied by the first inputs has been memoized, wherein the set of input constraints is satisfied by a plurality of inputs to the multithreaded program including the first inputs and second inputs, wherein the second inputs are different than the first inputs; and if it is determined that the schedule corresponding to the set of input constraints satisfied by the first inputs has been memoized, processing the first inputs by the multithreaded program according to the schedule.
-
Specification