skip to main content
10.1145/1808954.1808963acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Enabling multi-core based monitoring and fault tolerance in C++/Java

Published: 01 May 2010 Publication History

Abstract

Monitoring and fault tolerance are important approaches to give high confidence in long-running online software systems. But these approaches will certainly cause high overhead cost, i.e. the loss of efficiency. Multi-core platforms can make such cost acceptable because of the parallel performance advantage. For allowing ordinary software developers without any knowledge of multi-core platforms to handle such programming tasks more efficiently, we propose an approach to enable multi-core based monitoring and fault tolerance in C++/Java. First, the preliminary principles of multi-core based monitoring and fault tolerance are presented. Based on these principles, monitoring and fault tolerance tasks are designed and implemented via multi-process/thread programming, i.e. each monitoring and fault tolerance module is designed and implemented as a separate process/thread. Then, we introduce a group of special annotations for ordinary software developers to specify a simple and virtual multi-core based design. Finally, according to these annotations, an automatic mapping to a given runtime platform is established via a prototype tool McC++/Java. Our approach is suitable for wide range of software developers, which can hide the programming details on multi-core platforms from them and reduce their work load.

References

[1]
M. R. Lyu, editor. Software Fault Tolerance. Wiley, 1995.
[2]
D. B. Skillicorn and D. Talia. Models and languages for parallel computation. ACM Computing Surveys, 30(2):123--169, 1998.
[3]
J. Dongarra et al. The Sourcebook of Parallel Computing. Morgan Kaufmann, 2002.
[4]
W. Gropp, E. Lusk, and A. Skjellum. Using MPI: portable parallel programming with the message-passing interface. MIT Press, 1994.
[5]
C. H. Koebel, D. B. Loveman, R. S. Schrieber, G. L. Steele, and M. E. Zosel. The High Performance Fortran Handbook. MIT Press, Cambridge, Massachusetts, 1994.
[6]
D. R. Butenhof. Programming with POSIX Threads. Addison-Wesley, 1997.
[7]
L. Dagum and R. Menon. OpenMP: an industry standard api for shared-memory programming. Computational Science & Engineering, 5:46--55, 1998.
[8]
K. A. Yelick et al. Titanium: A high-performance Java dialect. Concurrency - Practice and Experience, 10(11--13):825--836, 1998.
[9]
R. W. Numrich and J. Reid. Co-array Fortran for parallel programming. SIGPLAN Fortran Forum, 17(2):1--31, 1998.
[10]
T. El-Ghazawi, W. Carlson, and J. Draper. UPC language specification (version 1.1.1). Technical report, George Washington University, 2003.
[11]
V. Saraswat. Report on the experimental language X10 (version 1.01). Technical report, IBM Research, 2006.
[12]
E. Allen et al. The Fortress language specification (version 1.0 beta). Technical report, Sun Microsystems, Inc., 2007.
[13]
Cray. The Chapel language specification (version 0.775). Technical report, Cray Inc., 2008.
[14]
F. Chen and G. Rosu. Java-MOP: A monitoring oriented programming environment for Java. In Proceedings of the 11th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'05), pages 546--550, Edinburgh, UK, 2005.
[15]
F. Chen and G. Rosu. MOP: An efficient and generic runtime verification framework. In R. P. Gabriel, D. F. Bacon, C. V. Lopes, and G. L. S. Jr., editors, Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'07), pages 569--588, Montreal, Quebec, Canada, October 2007. ACM.
[16]
M. Kim, S. Kannan, I. Lee, O. Sokolsky, and M. Viswanathan. Java-MaC: a run-time assurance tool for Java programs. Electronic Notes in Theoretical Computer Science, 55(2), 2001.
[17]
K. Havelund and G. Rosu. An overview of the runtime verification tool Java PathExplorer. Formal Methods in System Design, 24(2):189--215, 2004.
[18]
M. d'Amorim and K. Havelund. Event-based runtime verification of java programs. ACM SIGSOFT Software Engineering Notes, 30(4):1--7, 2005.
[19]
K. Havelund and G. Rosu. Monitoring Java programs with Java PathExplorer. Electronic Notes in Theoretical Computer Science, 55(2), 2001.
[20]
H. Barringer, A. Goldberg, K. Havelund, and K. Sen. Rule-based runtime verification. In B. Steffen and G. Levi, editors, Proceedings of the 5th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'04), volume 2937 of Lecture Notes in Computer Science, pages 44--57, Venice, January 2004. Springer.
[21]
V. Nagarajan and R. Gupta. Runtime monitoring on multicores via OASES. SIGOPS Operating Systems Review, 43(2):15--24, 2009.
[22]
G. J. Holzmann and D. Bosnacki. The design of a multicore extension of the SPIN model checker. IEEE Transactions on Software Engineering, 33(10):659--674, 2007.
[23]
J. Barnat, L. Brim, and P. Rockai. Scalable multi-core LTL model-checking. In Proceedings of the 14th International SPIN Workshop on Model Checking Software (SPIN'07), pages 187--203, Berlin, Germany, 2007.
[24]
L. Yang, J. Tang, J. Zhao, and X. Li. A case study for monitoring-oriented programming in multi-core architecture. In Proceedings of the 1st international workshop on Multicore software engineering (IWMSE'08), pages 47--52, Leipzig, Germany, 2008. Sheridan Press in the ACM and IEEE Digital Libraries.
[25]
L. Yang, Z. Cui, and X. Li. A case study for fault tolerance oriented programming in multi-core architecture. In Proceedings of the international workshop on Multicore and Multithreaded Architectures and Programming (MMAP'09), pages 630--635, Seoul, Korea, 2009. IEEE CS Press.
[26]
L. Yang, L. Yu, J. Tang, L. Wang, J. Zhao, and X. Li. McC++/Java: Enabling multi-core architecture based monitoring and fault tolerance in C++/Java. Technical Report, Department of Computer Science and Technology, Nanjing University, 2009. http://seg.nju.edu.cn/McC++Java/. A poster paper to appear in Proceedings of the 15th International Conference on Engineering of Complex Computer Systems (ICECCS'10).

Cited By

View all
  • (2011)An Instrumentation Tool for Program Dynamic Analysis in JavaProceedings of the 2011 Fifth International Conference on Secure Software Integration and Reliability Improvement - Companion10.1109/SSIRI-C.2011.20(60-67)Online publication date: 27-Jun-2011
  • (2010)Extending Ada to support multi-core based monitoring and fault toleranceACM SIGAda Ada Letters10.1145/1879097.187907930:3(53-62)Online publication date: 24-Oct-2010
  • (2010)Extending Ada to support multi-core based monitoring and fault toleranceProceedings of the ACM SIGAda annual international conference on SIGAda10.1145/1879063.1879079(53-62)Online publication date: 24-Oct-2010
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IWMSE '10: Proceedings of the 3rd International Workshop on Multicore Software Engineering
May 2010
72 pages
ISBN:9781605589640
DOI:10.1145/1808954
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. fault tolerance
  2. multi-core
  3. runtime monitoring

Qualifiers

  • Research-article

Funding Sources

Conference

ICSE '10
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2011)An Instrumentation Tool for Program Dynamic Analysis in JavaProceedings of the 2011 Fifth International Conference on Secure Software Integration and Reliability Improvement - Companion10.1109/SSIRI-C.2011.20(60-67)Online publication date: 27-Jun-2011
  • (2010)Extending Ada to support multi-core based monitoring and fault toleranceACM SIGAda Ada Letters10.1145/1879097.187907930:3(53-62)Online publication date: 24-Oct-2010
  • (2010)Extending Ada to support multi-core based monitoring and fault toleranceProceedings of the ACM SIGAda annual international conference on SIGAda10.1145/1879063.1879079(53-62)Online publication date: 24-Oct-2010
  • (2010)New Horizons in Multicore Software EngineeringProceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 210.1145/1810295.1810414(431-432)Online publication date: 1-May-2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media