Skip to main content

A Systematic Approach to Automatically Generate Multiple Semantically Equivalent Program Versions

  • Conference paper
  • 335 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5026))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Avizienis, A.: On the implementation of nversion programming for software fault tolerance during execution. Proceedings of the IEEE 66(10), 1109–1125 (1978)

    Article  Google Scholar 

  2. Elmendorf, W.: Fault-tolerant programming. In: FTCS-2, pp. 79–83 (1972)

    Google Scholar 

  3. Randell, B.: System structure for software fault tolerance. IEEE Trans. on Software Engineering SE-1(2), 220–232 (1975)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Pullum, L.: A new adjudicator for fault tolerant software applications correctly resulting in multiple solutions. In: Digital Avionics Systems Conference, pp. 147–152 (1993)

    Google Scholar 

  6. Pullum, L.L.: Software Fault Tolerance Techniques and Implementation. Artech House (2001)

    Google Scholar 

  7. Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  8. Wolfe, M.J.: Optimizing Supercompilers for Supercomputers. MIT Press, Cambridge (1990)

    Google Scholar 

  9. Kodukula, I., et al.: Data-centric multi-level blocking. In: PLDI, pp. 346–357 (1997)

    Google Scholar 

  10. Kadayif, I., Kandemir, M.: Data space-oriented tiling for enhancing locality. Trans. on Embedded Computing Sys. 4(2), 388–414 (2005)

    Article  Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. 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)

    Google Scholar 

  13. Patel, J.: Characterization of soft errors caused by single event upsets in cmos processes. IEEE Trans. Dependable Secur. Comput. 1(2), 128–143 (2004)

    Article  Google Scholar 

  14. 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)

    Google Scholar 

  15. Kelly, W., et al.: The omega calculator and library v1.1.0. Technical report, Dept. of CS, Univ. of Maryland (1996)

    Google Scholar 

  16. Kreisel, G., Krivine, J.L.: Elements of mathematical logic. North-Holland Pub. Co., Amsterdam (1967)

    MATH  Google Scholar 

  17. Reinhardt, S., Mukherjee, S.: Transient fault detection via simultaneous multithreading. SIGARCH Comput. Archit. News 28(2), 25–36 (2000)

    Article  Google Scholar 

  18. 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)

    Google Scholar 

  19. Pradhan, D.K. (ed.): Fault-tolerant computer system design (1996)

    Google Scholar 

  20. Kelly, W., et al.: Code generation for multiple mappings. Technical report, Dept. of CS, Univ. of Maryland (1994)

    Google Scholar 

  21. Gurumurthi, S., Parashar, A., Sivasubramaniam, A.: Sos: Using speculation for memory error detection. In: Workshop on High Performance Computing Reliability Issues (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Fabrice Kordon Tullio Vardanega

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics