Language interoperability for high-performance parallel scientific components
Abstract
With the increasing complexity and interdisciplinary nature of scientific applications, code reuse is becoming increasingly important in scientific computing. One method for facilitating code reuse is the use of components technologies, which have been used widely in industry. However, components have only recently worked their way into scientific computing. Language interoperability is an important underlying technology for these component architectures. In this paper, we present an approach to language interoperability for a high-performance parallel, component architecture being developed by the Common Component Architecture (CCA) group. Our approach is based on Interface Definition Language (IDL) techniques. We have developed a Scientific Interface Definition Language (SIDL), as well as bindings to C and Fortran. We have also developed a SIDL compiler and run-time library support for reference counting, reflection, object management, and exception handling (Babel). Results from using Babel to call a standard numerical solver library (written in C) from C and Fortran show that the cost of using Babel is minimal, where as the savings in development time and the benefits of object-oriented development support for C and Fortran far outweigh the costs.
- Authors:
- Publication Date:
- Research Org.:
- Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
- Sponsoring Org.:
- USDOE Office of Defense Programs (DP) (US)
- OSTI Identifier:
- 14301
- Report Number(s):
- UCRL-JC-134260; YN0100000; 99-ERD-078
YN0100000; 99-ERD-078; TRN: AH200136%%443
- DOE Contract Number:
- W-7405-ENG-48
- Resource Type:
- Conference
- Resource Relation:
- Conference: International Symposium on Computing in Object-Oriented Parallel Environments, San Francisco, CA (US), 09/29/1999--10/02/1999; Other Information: PBD: 18 May 1999
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 99 GENERAL AND MISCELLANEOUS//MATHEMATICS, COMPUTING, AND INFORMATION SCIENCE; COMPUTER ARCHITECTURE; PROGRAMMING LANGUAGES; PARALLEL PROCESSING; IMPLEMENTATION; COST
Citation Formats
Elliot, N, Kohn, S, and Smolinski, B. Language interoperability for high-performance parallel scientific components. United States: N. p., 1999.
Web.
Elliot, N, Kohn, S, & Smolinski, B. Language interoperability for high-performance parallel scientific components. United States.
Elliot, N, Kohn, S, and Smolinski, B. 1999.
"Language interoperability for high-performance parallel scientific components". United States. https://www.osti.gov/servlets/purl/14301.
@article{osti_14301,
title = {Language interoperability for high-performance parallel scientific components},
author = {Elliot, N and Kohn, S and Smolinski, B},
abstractNote = {With the increasing complexity and interdisciplinary nature of scientific applications, code reuse is becoming increasingly important in scientific computing. One method for facilitating code reuse is the use of components technologies, which have been used widely in industry. However, components have only recently worked their way into scientific computing. Language interoperability is an important underlying technology for these component architectures. In this paper, we present an approach to language interoperability for a high-performance parallel, component architecture being developed by the Common Component Architecture (CCA) group. Our approach is based on Interface Definition Language (IDL) techniques. We have developed a Scientific Interface Definition Language (SIDL), as well as bindings to C and Fortran. We have also developed a SIDL compiler and run-time library support for reference counting, reflection, object management, and exception handling (Babel). Results from using Babel to call a standard numerical solver library (written in C) from C and Fortran show that the cost of using Babel is minimal, where as the savings in development time and the benefits of object-oriented development support for C and Fortran far outweigh the costs.},
doi = {},
url = {https://www.osti.gov/biblio/14301},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Tue May 18 00:00:00 EDT 1999},
month = {Tue May 18 00:00:00 EDT 1999}
}