Welcome to the new version of CaltechAUTHORS. Login is currently restricted to library staff. If you notice any issues, please email coda@library.caltech.edu
Published October 7, 2005 | public
Journal Article

An investigation into design for performance and code maintainability in high performance computing

Abstract

Maintaining and adapting scientific applications software is an ongoing issue for many researchers and communities, especially in domains such as geophysics, where community codes are constantly evolving to adopt new solution methods and constitutive laws. Traditional high performance computing code is written in C or Fortran, which offer high performance but are notoriously difficult to evolve and maintain. Object-oriented and interpretive programming languages (such as C++, Java, and Python) offer better support for code evolution and maintenance, but have not been widely adopted for scientific programming, for reasons including their performance and/ or complexity. This paper describes our approach to developing scientific codes in C that provides the flexibility of interpreted object oriented environments with the performance of traditional C programming, through techniques including entry points, plug-ins, and coarse grained objects. This approach has been used to implement two very differently formulated scientific codes in active use and development by the geophysics scientific community.

Additional Information

© 2005 Austral. Mathematical Soc. Received 29 October 2004; revised 12 September 2005. Published October 7, 2005. The VPAC Computational Software Development team members, who are supported by: ACcESS, http://www.access.edu.au, GeoFramework, http://www.geoframework.org, APAC, http://www.apac.edu.au. And our project collaborators: Snark: Louis Moresi, David May, Dave Stegman, Robert Turnbull at the University of Monash; Snac: Mike Gurnis, Michael Aivazis, Eun-seo Choi, Puruv Thouriddey, Eh Tan at the California Institute of Technology. Luc Lavier at the University of Texas.

Additional details

Created:
August 19, 2023
Modified:
October 20, 2023