Patents by Inventor Martin Vechev
Martin Vechev has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9766950Abstract: There are provided methods for single-owner multi-consumer work queues for repeatable tasks. A method includes permitting a single owner thread of a single owner, multi-consumer, work queue to access the work queue using atomic instructions limited to only a single access and using non-atomic operations. The method further includes restricting the single owner thread from accessing the work queue using atomic instructions involving more than one access. The method also includes synchronizing amongst other threads with respect to their respective accesses to the work queue.Type: GrantFiled: September 11, 2015Date of Patent: September 19, 2017Assignee: International Business Machines CorporationInventors: Maged M. Michael, Vijay Anand Saraswat, Martin Vechev
-
Patent number: 9292446Abstract: A profiler may identify potentially-independent remote data accesses in a program. A remote data access is independent if value returned from said remote data access is not computed from another value returned from another remote data access appearing logically earlier in the program. A program rewriter may generate a program-specific prefetcher that preserves the behavior of the program, based on profiling information including the potentially-independent remote data accesses identified by the profiler. An execution engine may execute the prefetcher and the program concurrently. The execution engine may automatically decide which of said potentially-independent remote data accesses should be executed in parallel speculatively. A shared memory shared by the program and the prefetcher stores returned data from a data source as a result of issuing the remote data accesses.Type: GrantFiled: October 4, 2012Date of Patent: March 22, 2016Assignee: International Business Machines CorporationInventors: Arun Raman, Martin Vechev, Mark N. Wegman, Eran Yahav, Greta Yorsh
-
Publication number: 20160004572Abstract: There are provided methods for single-owner multi-consumer work queues for repeatable tasks. A method includes permitting a single owner thread of a single owner, multi-consumer, work queue to access the work queue using atomic instructions limited to only a single access and using non-atomic operations. The method further includes restricting the single owner thread from accessing the work queue using atomic instructions involving more than one access. The method also includes synchronizing amongst other threads with respect to their respective accesses to the work queue.Type: ApplicationFiled: September 11, 2015Publication date: January 7, 2016Inventors: Maged M. MICHAEL, Vijay Anand SARASWAT, Martin VECHEV
-
Patent number: 9135083Abstract: There are provided methods for single-owner multi-consumer work queues for repeatable tasks. A method includes permitting a single owner thread of a single owner, multi-consumer, work queue to access the work queue using atomic instructions limited to only a single access and using non-atomic operations. The method further includes restricting the single owner thread from accessing the work queue using atomic instructions involving more than one access. The method also includes synchronizing amongst other threads with respect to their respective accesses to the work queue.Type: GrantFiled: April 20, 2012Date of Patent: September 15, 2015Assignee: International Business Machines CorporationInventors: Maged M. Michael, Vijay Anand Saraswat, Martin Vechev
-
Patent number: 9110658Abstract: Techniques are provided for automatic verification and inference of memory fences in concurrent programs that can bound the store buffers that are used to model relaxed memory models. A method is provided for determining whether a program employing a relaxed memory model satisfies a safety specification. An abstract memory model is obtained of the relaxed memory model. The abstract memory model represents concrete program states of the program as a finite number of abstract states. The safety specification is evaluated for the program on the abstract memory model having the finite number of abstract states. Fence positions at one or more locations can be determined to ensure that the safety specification is satisfied.Type: GrantFiled: April 29, 2011Date of Patent: August 18, 2015Assignee: International Business Machines CorporationInventors: Michael Kuperstein, Martin Vechev, Eran Yahav
-
Patent number: 9092569Abstract: Given a program P, a specification S, and an abstraction function ?, verification determines whether P satisfies the specification S under the abstraction ?. If not, a trace T that violate the specification is selected, and either the abstraction ? is refined or a constraint that avoids the trace T is computed and added to a set of constraints. The set of constraints are used to modify the program P.Type: GrantFiled: June 4, 2013Date of Patent: July 28, 2015Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Martin Vechev, Eran Yahav, Greta Yorsh
-
Patent number: 9069893Abstract: Automatic verification of determinism in structured parallel programs includes sequentially establishing whether code for each of a plurality of tasks of the structured parallel program is independent, outputting sequential proofs corresponding to the independence of the code for each of the plurality of tasks and determining whether all memory locations accessed by parallel tasks of the plurality of tasks are independent based on the sequential proofs.Type: GrantFiled: March 23, 2011Date of Patent: June 30, 2015Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Martin Vechev, Eran Yahav, Raghavan Raman, Vivek Sarkar
-
Patent number: 8839248Abstract: A framework is provided for automatic inference of memory fences in concurrent programs. A method is provided for generating a set of ordering constraints that prevent executions of a program violating a specification. One or more incoming avoidable transitions are identified for a state and one or more ordering constraints are refined for the state. The set of ordering constraints are generated by taking a conjunction of ordering constraints for all states that violate the specification. One or more fence locations can optionally be selected based on the generated set of ordering constraints.Type: GrantFiled: May 28, 2010Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventors: Michael Kuperstein, Martin Vechev, Eran Yahav
-
Publication number: 20140101278Abstract: A profiler may identify potentially-independent remote data accesses in a program. A remote data access is independent if value returned from said remote data access is not computed from another value returned from another remote data access appearing logically earlier in the program. A program rewriter may generate a program-specific prefetcher that preserves the behavior of the program, based on profiling information including the potentially-independent remote data accesses identified by the profiler. An execution engine may execute the prefetcher and the program concurrently. The execution engine may automatically decide which of said potentially-independent remote data accesses should be executed in parallel speculatively. A shared memory shared by the program and the prefetcher stores returned data from a data source as a result of issuing the remote data accesses.Type: ApplicationFiled: October 4, 2012Publication date: April 10, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Arun Raman, Martin Vechev, Mark N. Wegman, Eran Yahav, Greta Yorsh
-
Patent number: 8646088Abstract: A method is disclosed that includes tracking untrusted inputs through an executing program into a sink, the tracking including maintaining context of the sink as strings based on the untrusted inputs flow into the sink. The method also includes, while tracking, in response to a string based on an untrusted input being about to flow into the sink and a determination the string could lead to an attack if the string flows into a current context of the sink, endorsing the string using an endorser selected based at least on the current context of the sink, and providing the endorsed string to the sink. Computer program products and apparatus are also disclosed.Type: GrantFiled: January 3, 2011Date of Patent: February 4, 2014Assignee: International Business Machines CorporationInventors: Marco Pistoia, Omer Tripp, Martin Vechev, Eran Yahav
-
Patent number: 8645917Abstract: A programming language support for debugging heap related errors includes one or more queries for determining one or more global properties associated with use of the area by the program. The one or more queries may be executed in parallel or concurrently and dynamically utilize available number of cores.Type: GrantFiled: October 14, 2009Date of Patent: February 4, 2014Assignee: International Business Machines CorporationInventors: Matthew R. Arnold, Martin Vechev, Eran Yahav
-
Publication number: 20130275951Abstract: A method of executing a rendering engine including executing a web application including at least two operations a single thread of execution, generating an auxiliary map for instrumentation accesses of the web application, and detecting and reporting concurrent memory accesses of the web application as a race.Type: ApplicationFiled: April 16, 2012Publication date: October 17, 2013Applicant: International Business Machines CorporationInventors: Julian Dolby, Boris Petrov, Manu Sridharan, Martin Vechev
-
Publication number: 20130268918Abstract: Given a program P, a specification S, and an abstraction function ?, verification determines whether P satisfies the specification S under the abstraction ?. If not, a trace T that violate the specification is selected, and either the abstraction ? is refined or a constraint that avoids the trace T is computed and added to a set of constraints. The set of constraints are used to modify the program P.Type: ApplicationFiled: June 4, 2013Publication date: October 10, 2013Inventors: Martin Vechev, Eran Yahav, Greta Yorsh
-
Patent number: 8548966Abstract: A snapshot of an application executing on a processor is taken in response to detecting an assertion in a running application. The assertion is evaluated based on the snapshot asynchronously while allowing the application to continue executing. The results of the assertion evaluation are returned to the application.Type: GrantFiled: January 11, 2011Date of Patent: October 1, 2013Assignee: International Business Machines CorporationInventors: Martin Vechev, Eran Yahav
-
Publication number: 20130247001Abstract: Dynamic synthesis includes receiving a program P and a specification S that describes desired properties of P. The dynamic synthesis also includes initializing a constraint C to true, enumerating schedules up to a defined limit that satisfy C, and executing a schedule of P. The dynamic synthesis further includes determining whether execution of the schedule violates S. In response to determining that the execution violates S, the dynamic synthesis includes determining whether to avoid future executions of the schedule. In response to determining that future executions of the schedule should be avoided, the dynamic synthesis includes computing a constraint that avoids the future execution, and adding the constraint to C; otherwise, the dynamic synthesis includes selecting another schedule for execution. In response to determining that the execution of the schedule does not violate S, the dynamic synthesis includes selecting another schedule for execution.Type: ApplicationFiled: July 27, 2012Publication date: September 19, 2013Applicant: INTERNATIONAL BUSINESS MACHINE CORPORATIONInventors: Martin Vechev, Eran Yahav
-
Publication number: 20130247000Abstract: Dynamic synthesis includes receiving a program P and a specification S that describes desired properties of P. The dynamic synthesis also includes initializing a constraint C to true, enumerating schedules up to a defined limit that satisfy C, and executing a schedule of P. The dynamic synthesis further includes determining whether execution of the schedule violates S. In response to determining that the execution violates S, the dynamic synthesis includes determining whether to avoid future executions of the schedule. In response to determining that future executions of the schedule should be avoided, the dynamic synthesis includes computing a constraint that avoids the future execution, and adding the constraint to C; otherwise, the dynamic synthesis includes selecting another schedule for execution. In response to determining that the execution of the schedule does not violate S, the dynamic synthesis includes selecting another schedule for execution.Type: ApplicationFiled: March 13, 2012Publication date: September 19, 2013Applicant: INTERNATIONAL BUSINESS MACHINE CORPORATIONInventors: Martin Vechev, Eran Yahav
-
Patent number: 8495588Abstract: Given a program P, a specification S, and an abstraction function ?, verification determines whether P satisfies the specification S under the abstraction ?. If not, a trace T that violate the specification is selected, and either the abstraction ? is refined or a constraint that avoids the trace T is computed and added to a set of constraints. The set of constraints are used to modify the program P.Type: GrantFiled: April 16, 2010Date of Patent: July 23, 2013Assignee: International Business Machines CorporationInventors: Martin Vechev, Eran Yahav, Greta Yorsh
-
Patent number: 8495427Abstract: Detecting defects in deployed systems, in one aspect, identify one or more monitoring agents used in a computer program. Total execution metric of the computer program and execution metric associated with the one or more monitoring agents are measured and the measure execution metric is compared with a specified overhead criteria. The execution of the one or more monitoring agents is adjusted based on the comparing step while the computer program is executing to meet the specified overhead criteria.Type: GrantFiled: October 14, 2009Date of Patent: July 23, 2013Assignee: International Business Machines CorporationInventors: Matthew R. Arnold, Martin Vechev, Eran Yahav
-
Patent number: 8374978Abstract: Methods and apparatus are provided for a context-sensitive dynamic bloat detection system. A profiling tool is disclosed that selects an appropriate collection implementation for a given application. The disclosed profiling tool uses semantic profiling together with a set of collection selection rules to make an informed choice. A collection implementation, such as an abstract data entity, is selected for a given program by obtaining collection usage statistics from the program. The collection implementation is selected based on the collection usage statistics using a set of collection selection rules. The collection implementation is one of a plurality of interchangeable collection implementations having a substantially similar logical behavior for substantially all collection types. The collection usage statistics indicate how the collection implementation is used in the given program. One or more suggestions can be generated for improving the collection allocated at a particular allocation context.Type: GrantFiled: May 28, 2010Date of Patent: February 12, 2013Assignee: International Business Machines CorporationInventors: Ohad Shacham, Martin Vechev, Eran Yahav
-
Publication number: 20120278792Abstract: Techniques are provided for automatic verification and inference of memory fences in concurrent programs that can bound the store buffers that are used to model relaxed memory models. A method is provided for determining whether a program employing a relaxed memory model satisfies a safety specification. An abstract memory model is obtained of the relaxed memory model. The abstract memory model represents concrete program states of the program as a finite number of abstract states. The safety specification is evaluated for the program on the abstract memory model having the finite number of abstract states. Fence positions at one or more locations can be determined to ensure that the safety specification is satisfied.Type: ApplicationFiled: April 29, 2011Publication date: November 1, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael Kuperstein, Martin Vechev, Eran Yahav