Author_Institution :
Community Grids Lab., Indiana Univ., IN, USA
Abstract :
The author considers software development methodologies, emphasizing those relevant to large-scale scientific computing. Many projects aim to improve the scientific computing environment, including scientific code preparation, execution, and debugging. But a scientific programming environment must address some of the key features that differentiate it from commodity or business computing for which many good tools exist. These special features include: floating-point arithmetic; performance and support for scalable parallel implementations; specific scientific data structures and utilities (such as mesh generation); and integrating simulations with distributed data. This last area is focused upon, discussing technologies needed for software integration, which is part of the overall struggle to develop self-contained modules that link together to create larger applications. Subroutines, methods, libraries, objects, components, distributed objects, and services are different ways of packaging software for greater reusability. We look at the service model for software modules.
Keywords :
distributed processing; natural sciences computing; programming environments; software engineering; distributed data; large-scale scientific computing; millisecond software; scientific code preparation; scientific computing environment; scientific programming environment; self-contained modules; service model; software development methodologies; software integration; software modules; software reusability; Algorithms; Application software; Computational modeling; Data structures; Debugging; Floating-point arithmetic; Large-scale systems; Mesh generation; Programming environments; Scientific computing;