Skip to main content

Abstract

Embedded computing is characterised by the limited availability of computing resources. Further, embedded systems are often used in safety-critical applications with real-time constraints. Thus, the software development has to follow rigorous procedures to minimise the risk of system failures. However, besides the inherent application complexities, there is also an increased technology-based complexity due to the shift to concurrent programming of multi-core systems. For such systems it is quite challenging to develop safe and resource-efficient systems.

In this paper we give a plea for the need of better software development tools to cope with this challenge. For example, we outline how compilers can help to simplify the writing of fault-tolerant and robust software, which keeps the application code more compact, comprehensive, and maintainable. We take a rather extreme stand by promoting a functional programming approach. This functional programming paradigm reduces the complexity of program analysis and thus allows for more efficient and powerful techniques. We will implement an almost transparent support for robustness within the SaC research compiler, which accepts a C-like functional program as input. Compared to conventional approaches in the field of automatic software-controlled resilience, our functional setting will allow for lower overhead, making the approach interesting for embedded computing as well as for high-performance computing.

The research leading to these results has received funding from the IST FP-7 research project ”Asynchronous and Dynamic Virtualization through performance ANalysis to support Concurrency Engineering (ADVANCE)”.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Avižienis, A., Laprie, J.C., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing 1(1), 11–33 (2004)

    Article  Google Scholar 

  2. Mikolasek, V.: Dependability and robustness: State of the art and challenges. In: Proc. Workshop on Software Technologies for Future Dependable Distributed Systems, Tokyo, Japan (March 2009)

    Google Scholar 

  3. RTCA: Software considerations in airborne systems and equipment certification. RTCA/DO-178B (1992)

    Google Scholar 

  4. ISO/DIS: Road vehicles – functional safety. ISO/DIS standard 26262

    Google Scholar 

  5. Treaster, M.: A survey of fault-tolerance and fault-recovery techniques in parallel systems. ACM Computing Research Repository (CoRR) abs/cs/0501002 (2005)

    Google Scholar 

  6. Reis, G.A., Chang, J., Vachharajani, N., Rangan, R., August, D.I.: SWIFT: Software implemented fault tolerance. In: Proc. 3rd International Symposium on Code Generation and Optimization (CGO) (March 2005)

    Google Scholar 

  7. Chang, J., Reis, G.A., August, D.I.: Automatic instruction-level software-only recovery. IEEE Micro 27(1), 36–47 (2007)

    Article  Google Scholar 

  8. Grelck, C., Scholz, S.B.: SAC: A functional array language for efficient multithreaded execution. International Journal of Parallel Programming 34(4), 383–427 (2006)

    Article  MATH  Google Scholar 

  9. Grelck, C.: Shared memory multiprocessor support for functional array processing in SAC. Journal of Functional Programming 15(3), 353–401 (2005)

    Article  MATH  Google Scholar 

  10. Ademaj, A.: Slightly-off-specification failures in the time-triggered architecture. In: Proc. 7th IEEE International Workshop on High Level Design Validation and Test, Cannes, France, pp. 7–12 (October 2002)

    Google Scholar 

  11. Mikolasek, V.: Robustness in complex systems - state of the art report. Research Report 26/2008, Technische Universität Wien, Institut für Technische Informatik, Treitlstr. 1-3/182-1, 1040 Vienna, Austria (2008)

    Google Scholar 

  12. Obermaisser, R., Kopetz, H.: From ARTEMIS requirements to a cross-domain embedded system architecture. In: Proc. Embedded Real Time Software and Systems, Toulouse, France (May 2010)

    Google Scholar 

  13. Horvitz, E.J.: Reasoning about beliefs and actions under computation resource constraints. In: Proc. Workshop on Uncertainty in Artificial Intelligence, Seattle, Washington (1987)

    Google Scholar 

  14. Boddy, M., Dean, T.: Solving time-dependent planning problems. In: Proc. 11th International Joint Conference on Artificial Intelligence (August 1989)

    Google Scholar 

  15. Grelck, C., Scholz, S.B., Shafarenko, A.: A Gentle Introduction to S-Net: Typed Stream Processing and Declarative Coordination of Asynchronous Components. Parallel Processing Letters 18(2), 221–237 (2008)

    Article  MathSciNet  Google Scholar 

  16. Shafarenko, A., Scholz, S.B., Grelck, C.: Streaming networks for coordinating data-parallel programs. In: Virbitskaite, I., Voronkov, A. (eds.) PSI 2006. LNCS, vol. 4378, pp. 451–455. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  17. Kirner, R., Scholz, S.B., Penczek, F., Shafarenko, A.: PS-NET - a predictable typed coordination language for stream processing in resource-constrained environments. In: Proc. 1st Int’l Conference on Computational Logics, Algebras, Programming, Tools, and Benchmarking (submitted, November 2010)

    Google Scholar 

  18. Vallee, G., Engelmann, C., Tikotekar, A., Naughton, T., Charoenpornwattana, K., Leangsuksun, C., Scott, S.L.: A framework for proactive fault tolerance. In: Proc. 3rd Int’l Converence of Availability, Reliability and Security, Barcelona, Spain, pp. 659–664 (May 2008)

    Google Scholar 

  19. Lee, C., Lee, D., Koo, J., Chung, J.: Proactive fault detection schema for enterprise information system using statistical process control. In: Proc. Conference on Symposium on Human Interface 2009, pp. 113–122. Springer, Heidelberg (2009)

    Google Scholar 

  20. Wang, C., Mueller, F., Engelmann, C., Scott, S.L.: Proactive process-level live migration in hpc environments. In: Proc. ACM/IEEE conference on Supercomputing (SC 2008), Piscataway, NJ, USA. IEEE Press, Los Alamitos (2008)

    Google Scholar 

  21. Elnozahy, E.N.M., Alvisi, L., Wang, Y.M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Compututing Surveys 34(3), 375–408 (2002)

    Article  Google Scholar 

  22. Choi, S.E., Deitz, S.J.: Compiler support for automatic checkpointing. In: Proc. 16th Annual International Symposium on High Performance Computing Systems and Applications, Washington, DC, USA, p. 213. IEEE Computer Society, Los Alamitos (2002)

    Chapter  Google Scholar 

  23. Dinan, J., Singri, A., Sadayappan, P., Krishnamoorthy, S.: Selective recovery from failures in a task parallel programming model. In: Proc. IEEE International Symposium on Cluster Computing and the Grid, pp. 709–714. IEEE Computer Society, Los Alamitos (2010)

    Google Scholar 

  24. Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: Proc. 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 48–60. ACM, New York (2005)

    Google Scholar 

  25. Ramkumar, B., Strumpen, V.: Portable checkpointing for heterogeneous archtitectures. In: Proc. 27th International Symposium on Fault-Tolerant Computing (FTCS 1997), Washington, DC, USA, p. 58. IEEE Computer Society, Los Alamitos (1997)

    Chapter  Google Scholar 

  26. Hinze, R.: A new approach to generic functional programming. In: Proc. 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 119–132. ACM Press, New York (2000)

    Google Scholar 

  27. Scholz, S.B.: Single Assignment C — efficient support for high-level array operations in a functional setting. Journal of Functional Programming 13(6), 1005–1059 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  28. Choi, S.E., Deitz, S.J.: Compiler support for automatic checkpointing. In: HPCS 2002: Proceedings of the 16th Annual International Symposium on High Performance Computing Systems and Applications, Washington, DC, USA, p. 213. IEEE Computer Society, Los Alamitos (2002)

    Chapter  Google Scholar 

  29. Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP 2005: Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 48–60. ACM, New York (2005)

    Google Scholar 

  30. Grelck, C., van Deurzen, T., Herhut, S., Scholz, S.B.: An Adaptive Compilation Framework for Generic Data-Parallel Array Programming. In: 15th Workshop on Compilers for Parallel Computing (CPC 2010), Vienna University of Technology, Vienna, Austria (2010)

    Google Scholar 

  31. Patai, G., Hanák, P.: Embedded functional programming in Hume. In: IASTED on Software Engineering, Innsbruck, Austria, pp. 328–333. ACTA Press (2007)

    Google Scholar 

  32. Hammond, K., Michaelson, G.: The design of Hume: A high-level language for the real-time embedded systems domain. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 127–142. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  33. Hammond, K., Michaelson, G.: Hume: A domain-specific language for real-time embedded systems. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 37–56. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  34. MISRA, T.M.I.S.R.A.: MISRA-C 2004: Guidelines for the Use of the C Language in Critical Systems. MISRA (October 2004), ISBN: 0-9524156-4-X (pdf version)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kirner, R., Herhut, S., Scholz, SB. (2010). Compiler-Support for Robust Multi-core Computing. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification, and Validation. ISoLA 2010. Lecture Notes in Computer Science, vol 6415. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16558-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-16558-0_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-16557-3

  • Online ISBN: 978-3-642-16558-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics