Abstract
Several performance-driven approaches to selectively enforce interface contracts for scientific components are investigated. The goal is to facilitate debugging deployed applications built from plug-and-play components while keeping the cost of enforcement within acceptable overhead limits.
This paper describes a study of global enforcement using a priori execution cost estimates obtained from traces. Thirteen trials are formed from five, single-component programs. Enforcement experiments conducted using twenty-three enforcement policies are used to determine the nature of exercised contracts and the impact of a variety of sampling strategies. Performance-driven enforcement appears to be best suited to programs that exercise moderately expensive contracts.
This research was funded under the auspices of the U.S. Department of Energy’s Center for Technology for Advanced Scientific Component Software (TASCS) [1] of the Scientific Discovery through Advanced Computing (SciDAC) [2] program by the University of California Lawrence Livermore National Laboratory under contract number W-7405-Eng-48. UCRL-CONF-228332.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
United States Department of Energy: TASCS Initiative: http://www.scidac.gov/compsci/TASCS.html
United States Department of Energy: SciDAC Initiative. http://www.osti.gov/scidac/
Meyer, B.: The grand challenge of trusted components. In: ICSE ‘03. Proceedings of the 25th International Conference on Software Engineering, Portland, OR, May 3-10, 2003, pp. 660–667 (2003)
McIlroy, M.D.: Mass produced software components. In: Proceedings of the NATO Software Engineering Conference, October 1968, pp. 138–155 (1968), Also available at http://cm.bell-labs.com/cm/who/doug/components.txt
Alexeev, Y., et al.: Component-based software for high-performance scientific computing. In: SciDAC 2005. Proceedings of Scientific Discovery through Advanced Computing, San Francisco, CA, June 26-30, 2005 (2005)
Armstrong, R., Beholden, D.E., Dahlgren, T., Elswasif, W.R., Kumfert, G., McInnes, L.C., Nieplocha, J., Norris, B.: High end computing component technology (white paper). In: Workshop on the Road Map for the Revitalization of High End Computing, Washington, DC (2003)
Bernholdt, D.E., et al.: A component architecture for high-performance scientific computing. International Journal of High-Performance Computing Applications, ACTS Collection special issue (2005)
Common Component Architecture (CCA) Forum: Cca, http://www.cca-forum.org/
610.12-1990, I.S.: IEEE Standard Glossary of Software Engineering Terminology. The Institute of Electrical and Electronics Engineers, Inc., 345 East 47th Street, New York, NY 10017, USA (September 1990)
Lawrence Livermore National Laboratory: Babel. http://www.llnl.gov/CASC/components/babel.html
Dahlgren, T.L., Devanbu, P.T.: Adaptable assertion checking for scientific software components. In: Proceedings of the Workshop on Software Engineering for High Performance Computing System Applications, Edinburgh, Scotland, May 24, 2004, pp. 64–69 (2004)
Dahlgren, T.L., Devanbu, P.T.: Improving scientific software component quality through assertions. In: Proceedings of the Second International Workshop on Software Engineering for High Performance Computing System Applications, St. Louis, Missouri, May 2005, pp. 73–77 (2005)
Brown, D., Freitag, L., Glimm, J.: Creating interoperable meshing and discretization technology: The terascale simulation tools and technologies center. In: Proceedings of the 8th International Conference on Numerical Grid Generation in Computational Field Simulations, Honolulu, HI, June 3-6, 2002, pp. 57–61 (2002)
Ollivier-Gooch, C., Chand, K., Dahlgren, T., Diachin, L.F., Fix, B., Kraftcheck, J., Li, X., Seol, E., Shephard, M., Tautges, T., Trease, H.: The TSTT mesh interface. In: Proceedings of the 44th AIAA Aerospace Sciences Meeting and Exhibit, Reno, NV (January 2006)
GRUMMP — Generation and Refinement of Unstructured, Mixed-Element Meshes in Parallel. http://tetra.mech.ubc.ca/GRUMMP/ .
Hoare, C.A.R.: The emperor’s old clothes. Communications of the ACM 24(2), 75–83 (1981)
Floyd, R.W.: Assigning meanings to programs. In: Proceedings of the Symposia in Applied Mathematics, Mathematical aspects of Computer Science. American Mathematical Society, vol. 19, pp. 19–32 (1967)
Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580, 583 (1969)
Adams, J.M., Armstrong, J., Smartt, M.: Assertional checking and symbolic execution: An effective combination for debugging. In: Proceedings of the 1979 annual conference, pp. 152–156 (1979)
Chen, W.T., Ho, J.P., Wen, C.H.: Dynamic validation of programs using assertion checking facilities. In: The IEEE Computer Society’s 2nd International Computer Software and Applications Conference, November 13-16, 1978, pp. 533–538. IEEE Computer Society Press, Los Alamitos (1978)
Saib, S.H.: Executable assertions — an aid to reliable software. In: Proceedings of the 11th Asilomar Conference on Circuits, Systems and Computers, November 7-9, 1977, pp. 277–281 (1977)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)
Bronsard, F., Bryan, D., Kozaczynski, W.V., Liongosari, E.S., Ning, J.Q., Ólafsson, A., Wetterstrand, J.W.: Toward software plug-and-play. In: SSR 1997. Proceedings of the 1997 Symposium on Software Reusability, Boston, MA, May 17-20, 1997, pp. 19–29 (1997)
Kozaczynski, W.V., Ning, J.D.: Concern-driven design for a specification language supporting component-based software engineering. In: Proceedings of the 8th International Workshop on Software Specification and Design, pp. 150–154 (1996)
Object Management Group: CORBA basics. http://www.omg.org/gettingstarted/corbafaq.htm
Sankar, S., Hayes, R.: ADL — an interface definition language for specifying and testing software. ACM SIGPLAN Notices, IDL Workshop 29(8), 13–21 (1994)
Hamie, A.: Enhancing the object constraint language for more expressive specifications. In: APSEC 1999. Proceedings of the 6th Asia-Pacific Software Engineering Conference, December 7-10, 1999, pp. 376–383 (1999)
Verheecke, B., Straeten, R.V.D.: Specifying and implementing the operational use of constraints in object-oriented applications. In: TOOLS Pacific 2002. Proceedings of the 40th International Conference on Technology of Object-Oriented Languages and Systems, Sydney, Australia, February 2002, pp. 23–32 (2002)
Collet, P., Ozanne, A., Rivierre, N.: Enforcing different contracts in hierarchical component-based systems. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 50–65. Springer, Heidelberg (2006)
Leavens, G.T., Rustan, K., Leino, M., Poll, E., Ruby, C., Jacobs, B.: JML: notations and tools supporting detailed design in Java. Technical Report TR 00-15, Iowa State University, Ames, Iowa (August 2000)
Edwards, S.H.: Making the case for assertion checking wrappers. In: Proceedings of the RESOLVE Workshop, Also available as Virgina Tech Technical Report TR-02-11(June 2002)
Heineman, G.T.: Integrating interface assertion checkers into component models. In: Proceedings of the 6th ICSE Workshop on Component-Based Software Engineering: Automated Reasoning and Prediction, Portland, OR, May 3-4, 2003 (2003)
Liblit, B., Aiken, A., Zen, A.X., Jordan, M.I.: Bug isolation via remote program sampling. In: PLDI 2003. Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, San Diego, CA, June 9-11, 2003, pp. 141–154. ACM Press, New York (2003)
Liblit, B., Aiken, A., Zheng, A.X., Jordan, M.I.: Sampling user executions for bug isolation. In: RAMSS 2003. Proceedings of the 1st Workshop on Remote Analysis and Measurement of Software Systems, Portland, OR, May 2003, pp. 3–6 (2003)
Chilimbi, T.M., Hauswirth, M.: Low-overhead memory leak detection using adaptive statistical profiling. In: Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems, Boston, MA, October 9-13, 2004, pp. 156–164 (2004)
Collet, P., Rousseau, R.: Towards efficient support for executing the object contraint language. In: TOOLS 30. Proceedings of the Technology of Object-Oriented Languages and Systems, Santa Barbara, CA, August 1-5, 1999, pp. 399–408 (1999)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dahlgren, T.L. (2007). Performance-Driven Interface Contract Enforcement for Scientific Components. In: Schmidt, H.W., Crnkovic, I., Heineman, G.T., Stafford, J.A. (eds) Component-Based Software Engineering. CBSE 2007. Lecture Notes in Computer Science, vol 4608. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73551-9_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-73551-9_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-73550-2
Online ISBN: 978-3-540-73551-9
eBook Packages: Computer ScienceComputer Science (R0)