Managing Scientific Software Complexity with Bocca and CCA

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...

Full description

Bibliographic Details
Main Authors: Benjamin A. Allan, Boyana Norris, Wael R. Elwasif, Robert C. Armstrong
Format: Article
Language:English
Published: Hindawi Limited 2008-01-01
Series:Scientific Programming
Online Access:http://dx.doi.org/10.3233/SPR-2008-0270
id doaj-28dae0d3e25640159c39bd136141b926
record_format Article
spelling doaj-28dae0d3e25640159c39bd136141b9262021-07-02T02:46:16ZengHindawi LimitedScientific Programming1058-92441875-919X2008-01-0116431532710.3233/SPR-2008-0270Managing Scientific Software Complexity with Bocca and CCABenjamin A. Allan0Boyana Norris1Wael R. Elwasif2Robert C. Armstrong3Sandia National Laboratories, Livermore, CA, USAArgonne National Laboratory, Argonne, IL, USAOak Ridge National Laboratories, Oak Ridge, TN, USASandia National Laboratories, Livermore, CA, USAIn 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.http://dx.doi.org/10.3233/SPR-2008-0270
collection DOAJ
language English
format Article
sources DOAJ
author Benjamin A. Allan
Boyana Norris
Wael R. Elwasif
Robert C. Armstrong
spellingShingle Benjamin A. Allan
Boyana Norris
Wael R. Elwasif
Robert C. Armstrong
Managing Scientific Software Complexity with Bocca and CCA
Scientific Programming
author_facet Benjamin A. Allan
Boyana Norris
Wael R. Elwasif
Robert C. Armstrong
author_sort Benjamin A. Allan
title Managing Scientific Software Complexity with Bocca and CCA
title_short Managing Scientific Software Complexity with Bocca and CCA
title_full Managing Scientific Software Complexity with Bocca and CCA
title_fullStr Managing Scientific Software Complexity with Bocca and CCA
title_full_unstemmed Managing Scientific Software Complexity with Bocca and CCA
title_sort managing scientific software complexity with bocca and cca
publisher Hindawi Limited
series Scientific Programming
issn 1058-9244
1875-919X
publishDate 2008-01-01
description 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.
url http://dx.doi.org/10.3233/SPR-2008-0270
work_keys_str_mv AT benjaminaallan managingscientificsoftwarecomplexitywithboccaandcca
AT boyananorris managingscientificsoftwarecomplexitywithboccaandcca
AT waelrelwasif managingscientificsoftwarecomplexitywithboccaandcca
AT robertcarmstrong managingscientificsoftwarecomplexitywithboccaandcca
_version_ 1721342768541859840