Programming Ruby: the pragmatic programmer's guide
Programming Ruby: the pragmatic programmer's guide
An open graph visualization system and its applications to software engineering
Software—Practice & Experience - Special issue on discrete algorithm engineering
GNU Autoconf, Automake and Libtool
GNU Autoconf, Automake and Libtool
A Component Architecture for High-Performance Scientific Computing
International Journal of High Performance Computing Applications
Agile Web Development with Rails
Agile Web Development with Rails
Hardware-accelerated components for hybrid computing systems
Proceedings of the 2008 compFrame/HPC-GECO workshop on Component based high performance
Managing scientific software complexity with Bocca and CCA
Scientific Programming - Complexity in Scalable Computing
A HPC sparse solver interface for scalable multilevel methods
SpringSim '09 Proceedings of the 2009 Spring Simulation Multiconference
OnRamp: enabling a new component-based development paradigm
Proceedings of the 2009 Workshop on Component-Based High Performance Computing
Coupling multi-level component interfaces for parallel sparse linear system solvers
Proceedings of the 2009 Workshop on Component-Based High Performance Computing
A feature model of coupling technologies for Earth System Models
Computers & Geosciences
Hi-index | 0.00 |
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 with the attendant glue code. 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 CommonComponent Architecture components. Of critical importance for 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, Fortran77, 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 Rails for web applications: Start with something that works and evolve it to the user's purpose.