Technical Report: Using Static Analysis to Compute Benefit of Tolerating Consistency

Abstract

Synchronization is the Achilles heel of concurrent programs. Synchronization requirement is often used to ensure that the execution of the concurrent program can be serialized. Without synchronization requirement, a program suffers from consistency violations. Recently, it was shown that if programs are designed to tolerate such consistency violation faults (s) then one can obtain substantial performance gain. Previous efforts to analyze the effect of -tolerance are limited to run-time analysis of the program to determine if tolerating s can improve the performance. Such run-time analysis is very expensive and provides limited insight. In this work, we consider the question, `Can static analysis of the program predict the benefit of -tolerance?' We find that the answer to this question is affirmative. Specifically, we use static analysis to evaluate the cost of a and demonstrate that it can be used to predict the benefit of -tolerance. We also find that when faced with a large state space, partial analysis of the state space (via sampling) also provides the required information to predict the benefit of -tolerance. Furthermore, we observe that the -cost distribution is exponential in nature, i.e., the probability that a has a cost of c is A.B-c, where A and B are constants, i.e., most s cause no/low perturbation whereas a small number of s cause a large perturbation. This opens up new aveneus to evaluate the benefit of -tolerance.

0

Discussion (0)

Sign in to join the discussion.

Loading comments…