Abstract
Classic methods to overcome software faults include design diversity that involves creating multiple versions of an application. However, design diverse techniques typically require a staggering investment of time and manpower. There is also no guarantee that the multiple versions are correct or equivalent. This paper presents a novel approach that addresses the above problems, by automatically producing multiple, semantically equivalent copies for a given array/loop-based application. The copies, when used within the framework of common design diverse techniques, provide a high degree of software fault tolerance at practically no additional cost. In this paper, we also apply our automated version generation approach to detect the occurrence of soft errors during the execution of an application.
This work is supported in part by NSF grants # 0720645 , # 0702519 and support from the Gigascale Systems Research Focus Center, one of the five research centers funded under SRCs Focus Center Research Program. The authors would like to thank the anonymous reviewers for their helpful remarks. The authors would like to thank Seung Woo Son and Shiva Prasad Kasiviswanathan for their suggestions. Finally, the authors would like to thank, our shepherd, Dr. Erhard Plödereder who helped finalize the paper.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Avizienis, A.: On the implementation of nversion programming for software fault tolerance during execution. Proceedings of the IEEE 66(10), 1109–1125 (1978)
Elmendorf, W.: Fault-tolerant programming. In: FTCS-2, pp. 79–83 (1972)
Randell, B.: System structure for software fault tolerance. IEEE Trans. on Software Engineering SE-1(2), 220–232 (1975)
Horning, J.J., et al.: A program structure for error detection and recovery. In: Operating Systems, Proceedings of an Int. Symposium, pp. 171–187. Springer, Heidelberg (1974)
Pullum, L.: A new adjudicator for fault tolerant software applications correctly resulting in multiple solutions. In: Digital Avionics Systems Conference, pp. 147–152 (1993)
Pullum, L.L.: Software Fault Tolerance Techniques and Implementation. Artech House (2001)
Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley, Reading (1996)
Wolfe, M.J.: Optimizing Supercompilers for Supercomputers. MIT Press, Cambridge (1990)
Kodukula, I., et al.: Data-centric multi-level blocking. In: PLDI, pp. 346–357 (1997)
Kadayif, I., Kandemir, M.: Data space-oriented tiling for enhancing locality. Trans. on Embedded Computing Sys. 4(2), 388–414 (2005)
Michalak, S., Harris, K., Hengartner, N., Takala, B., Wender, S.: Predicting the number of fatal soft errors in los alamos national laboratory’s asc q supercomputer. IEEE Transactions on Device and Materials Reliability 5(3), 329–335 (2005)
Wang, N., Quek, J., Rafacz, T.: patel, S.: Characterizing the effects of transient faults on a high-performance processor pipeline. In: DSN 2004: Proceedings of the 2004 International Conference on Dependable Systems and Networks, p. 61 (2004)
Patel, J.: Characterization of soft errors caused by single event upsets in cmos processes. IEEE Trans. Dependable Secur. Comput. 1(2), 128–143 (2004)
Degalahal, V., Ramanarayanan, R., Vijaykrishnan, N., Xie, Y., Irwin, M.J.: The effect of threshold voltages on the soft error rate. In: International Symposium on Quality Electronic Design, pp. 503–508 (2004)
Kelly, W., et al.: The omega calculator and library v1.1.0. Technical report, Dept. of CS, Univ. of Maryland (1996)
Kreisel, G., Krivine, J.L.: Elements of mathematical logic. North-Holland Pub. Co., Amsterdam (1967)
Reinhardt, S., Mukherjee, S.: Transient fault detection via simultaneous multithreading. SIGARCH Comput. Archit. News 28(2), 25–36 (2000)
Chen, C., Hsiao, M.: Error-correcting codes for semiconductor memory applications: a state of the art review. Reliable Computer Systems - Design and Evaluation, 771–786 (1992)
Pradhan, D.K. (ed.): Fault-tolerant computer system design (1996)
Kelly, W., et al.: Code generation for multiple mappings. Technical report, Dept. of CS, Univ. of Maryland (1994)
Gurumurthi, S., Parashar, A., Sivasubramaniam, A.: Sos: Using speculation for memory error detection. In: Workshop on High Performance Computing Reliability Issues (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Narayanan, S.H.K., Kandemir, M. (2008). A Systematic Approach to Automatically Generate Multiple Semantically Equivalent Program Versions. In: Kordon, F., Vardanega, T. (eds) Reliable Software Technologies – Ada-Europe 2008. Ada-Europe 2008. Lecture Notes in Computer Science, vol 5026. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68624-8_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-68624-8_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-68621-7
Online ISBN: 978-3-540-68624-8
eBook Packages: Computer ScienceComputer Science (R0)