DOE PAGES title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Managing Scientific Software Complexity with Bocca and CCA

Abstract

In high-performance scientific software development, the emphasis is often on short time to first solution. Even when the development of new components mostly reuses existing components or libraries and only small amounts of new code must be created, dealing with the component glue code and software build processes to obtain complete applications is still tedious and error-prone. Component-based software meant to reduce complexity at the application level increases complexity to the extent that the user must learn and remember the interfaces and conventions of the component model itself. To address these needs, we introduce Bocca, the first tool to enable application developers to perform rapid component prototyping while maintaining robust software-engineering practices suitable to HPC environments. Bocca provides project management and a comprehensive build environment for creating and managing applications composed of Common Component Architecture components. Of critical importance for high-performance computing (HPC) applications, Bocca is designed to operate in a language-agnostic way, simultaneously handling components written in any of the languages commonly used in scientific applications: C, C++, Fortran, Python and Java. Bocca automates the tasks related to the component glue code, freeing the user to focus on the scientific aspects of the application. Bocca embraces the philosophy pioneeredmore » by Ruby on Rails for web applications: start with something that works, and evolve it to the user's purpose.« less

Authors:
 [1];  [2];  [3];  [1]
  1. Sandia National Laboratories, Livermore, CA, USA
  2. Argonne National Laboratory, Argonne, IL, USA
  3. Oak Ridge National Laboratories, Oak Ridge, TN, USA
Publication Date:
Sponsoring Org.:
USDOE
OSTI Identifier:
1197989
Grant/Contract Number:  
AC02-06CH11357; AC05-00OR22725; AC04-94AL85000
Resource Type:
Published Article
Journal Name:
Scientific Programming
Additional Journal Information:
Journal Name: Scientific Programming Journal Volume: 16 Journal Issue: 4; Journal ID: ISSN 1058-9244
Publisher:
Hindawi Publishing Corporation
Country of Publication:
Egypt
Language:
English

Citation Formats

Allan, Benjamin A., Norris, Boyana, Elwasif, Wael R., and Armstrong, Robert C.. Managing Scientific Software Complexity with Bocca and CCA. Egypt: N. p., 2008. Web. doi:10.1155/2008/417946.
Allan, Benjamin A., Norris, Boyana, Elwasif, Wael R., & Armstrong, Robert C.. Managing Scientific Software Complexity with Bocca and CCA. Egypt. https://doi.org/10.1155/2008/417946
Allan, Benjamin A., Norris, Boyana, Elwasif, Wael R., and Armstrong, Robert C.. Tue . "Managing Scientific Software Complexity with Bocca and CCA". Egypt. https://doi.org/10.1155/2008/417946.
@article{osti_1197989,
title = {Managing Scientific Software Complexity with Bocca and CCA},
author = {Allan, Benjamin A. and Norris, Boyana and Elwasif, Wael R. and Armstrong, Robert C.},
abstractNote = {In high-performance scientific software development, the emphasis is often on short time to first solution. Even when the development of new components mostly reuses existing components or libraries and only small amounts of new code must be created, dealing with the component glue code and software build processes to obtain complete applications is still tedious and error-prone. Component-based software meant to reduce complexity at the application level increases complexity to the extent that the user must learn and remember the interfaces and conventions of the component model itself. To address these needs, we introduce Bocca, the first tool to enable application developers to perform rapid component prototyping while maintaining robust software-engineering practices suitable to HPC environments. Bocca provides project management and a comprehensive build environment for creating and managing applications composed of Common Component Architecture components. Of critical importance for high-performance computing (HPC) applications, Bocca is designed to operate in a language-agnostic way, simultaneously handling components written in any of the languages commonly used in scientific applications: C, C++, Fortran, Python and Java. Bocca automates the tasks related to the component glue code, freeing the user to focus on the scientific aspects of the application. Bocca embraces the philosophy pioneered by Ruby on Rails for web applications: start with something that works, and evolve it to the user's purpose.},
doi = {10.1155/2008/417946},
journal = {Scientific Programming},
number = 4,
volume = 16,
place = {Egypt},
year = {Tue Jan 01 00:00:00 EST 2008},
month = {Tue Jan 01 00:00:00 EST 2008}
}

Journal Article:
Free Publicly Available Full Text
Publisher's Version of Record
https://doi.org/10.1155/2008/417946

Citation Metrics:
Cited by: 3 works
Citation information provided by
Web of Science

Save / Share: