433c1eda5bd7f1d1.tex
1: \begin{abstract}
2: \textbf{Abstract:} Concurrent programs are typically designed to ensure that simultaneous access to data is handled consistently. A typical requirement is that actions of the program are executed atomically. 
3: Consistency violation faults (\cvf{s}) refer to the case when an action execution is not atomic because the process reads inconsistent values of shared data. 
4: Permitting and tolerating \cvf{s} obviates the need for any synchronization mechanism thereby providing a potential for faster execution. At the same time, a \cvf can perturb the program execution and can increase the number of steps needed to perform its task. 
5: 
6: In this work, we focus on identifying this tradeoff quantitatively in stabilizing programs, i.e., programs that converge to their goal states from arbitrary initial state. 
7: To this end, we define the notion of a rank for a program state. Intuitively, this rank identifies how far it is from converging to the goal state(s). Due to the property of stabilization, the rank of any state is guaranteed to be finite.  We characterize rank changes by program transitions and \cvf{s}. Empirically, with three case studies, we find that the rank change for \cvf{s}  has an exponential distribution. This means that most \cvf{s} do not affect the convergence whereas a very small number of \cvf{s} can disrupt the convergence substantially. 
8: By comparing the rank change distribution of program and \cvf transitions, we determine whether a program is likely to converge in the presence of \cvf{s} and what is the number of steps it would require to converge. We validate these results via simulation. 
9: 
10: \end{abstract}
11: