摘要:
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.
摘要:
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.
摘要:
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.
摘要:
Automatic verification of deteiminism 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 deteimining whether all memory locations accessed by parallel tasks of the plurality of tasks are independent based on the sequential proofs.
摘要:
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.
摘要:
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.
摘要:
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.