Probabilistic Interval Analysis of Unreliable Programs
<|reference_start|>Probabilistic Interval Analysis of Unreliable Programs: Advancement of chip technology will make future computer chips faster. Power consumption of such chips shall also decrease. But this speed gain shall not come free of cost, there is going to be a trade-off between speed and efficiency, i.e accuracy of the computation. In order to achieve this extra speed we will simply have to let our computers make more mistakes in computations. Consequently, systems built with these type of chips will possess an innate unreliability lying within. Programs written for these systems will also have to incorporate this unreliability. Researchers have already started developing programming frameworks for unreliable architectures as such.   In the present work, we use a restricted version of C-type languages to model the programs written for unreliable architectures. We propose a technique for statically analyzing codes written for these kind of architectures. Our technique, which primarily focuses on Interval/Range Analysis of this type of programs, uses the well established theory of abstract interpretation. While discussing unreliability of hardware, there comes scope of failure of the hardware components implicitly. There are two types of failure models, namely: 1) permanent failure model, where the hardware stops execution on failure and 2) transient failure model, where on failure, the hardware continues subsequent operations with wrong operand values. In this paper, we've only taken transient failure model into consideration. The goal of this analysis is to predict the probability with which a program variable assumes values from a given range at a given program point.<|reference_end|>
@article{das2024probabilistic,
    title={Probabilistic Interval Analysis of Unreliable Programs},
    author={Dibyendu Das and Soumyajit Dey},
    journal={arXiv preprint arXiv:2404.16997},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.16997},
    primaryClass={cs.PL cs.DM}
}