Title
Cross-Entropy-Based Replay of Concurrent Programs
Abstract
Replay is an important technique in program analysis, allowing to reproduce bugs, to track changes, and to repeat executions for better understanding of the results. Unfortunately, since re-executing a concurrent program does not necessarily produce the same ordering of events, replay of such programs becomes a difficult task. The most common approach to replay of concurrent programs is based on analyzing the logical dependencies among concurrent events and requires a complete recording of the execution we are trying to replay as well as a complete control over the program's scheduler. In realistic settings, we usually have only a partial recording of the execution and only partial control over the scheduling decisions, thus such an analysis is often impossible. In this paper, we present an approach for replay in the presence of partial information and partial control. Our approach is based on a novel application of the cross-entropy method, and it does not require any logical analysis of dependencies among concurrent events. Roughly speaking, given a partial recording R of an execution, we define a performance function on executions, which reaches its maximum on R (or any other execution that coincides with R on the recorded events). Then, the program is executed many times in iterations, on each iteration adjusting the probabilistic scheduling decisions so that the performance function is maximized. Our method is also applicable to debugging of concurrent programs, in which the program is changed before it replayed in order to increase the information from its execution. We implemented our replay method on concurrent Java programs and we show that it consistently achieves a close replay in presence of incomplete information and incomplete control, as well as when the program is changed before it is replayed.
Year
DOI
Venue
2009
10.1007/978-3-642-00593-0_14
FASE
Keywords
Field
DocType
cross-entropy-based replay,partial control,program analysis,concurrent program,replay method,partial recording,close replay,concurrent programs,partial information,concurrent java program,performance function,concurrent event,incomplete information,cross entropy method,cross entropy
Cross entropy,Programming language,Probabilistic scheduling,Computer science,Scheduling (computing),Theoretical computer science,Program analysis,Java,Complete information,Logical analysis,Debugging
Conference
Volume
ISSN
Citations 
5503
0302-9743
3
PageRank 
References 
Authors
0.41
17
4
Name
Order
Citations
PageRank
Hana Chockler148238.31
Eitan Farchi259046.38
Benny Godlin31839.14
Sergey Novikov4405.61