Title :
Developing scientific applications using Generative Programming
Author :
Arora, Ritu ; Bangalore, Purushotham ; Mernik, Marjan
Author_Institution :
Dept. of Comput. & Inf. Sci., Univ. of Alabama at Birmingham, Birmingham, AL
Abstract :
Scientific applications usually involve large number of distributed and dynamic resources and huge datasets. A mechanism like checkpointing is essential to make these applications resilient to failures. Using checkpointing as an example, this paper presents an approach for integrating the latest software engineering techniques with the development of scientific software. Generative programming is used in this research to achieve the goals of non-intrusive reengineering of existing applications to insert the checkpointing mechanism and to decouple the checkpointing-specifications from its actual implementation. The end-user specifies the checkpointing details at a higher level of abstraction, using which the necessary code is generated and woven into the application. The lessons learned and the implementation approach presented in this paper can be applied to the development of scientific applications in general. The paper also demonstrates that the generated code does not introduce any inaccuracies and its performance is comparable to the manually inserted code.
Keywords :
checkpointing; formal specification; natural sciences computing; systems re-engineering; checkpointing specification; distributed resource; dynamic resource; generative programming; non intrusive reengineering; scientific application development; software engineering; Application software; Checkpointing; Distributed computing; Dynamic programming; Parallel programming; Productivity; Programming profession; Scientific computing; Software engineering; Writing;
Conference_Titel :
Software Engineering for Computational Science and Engineering, 2009. SECSE '09. ICSE Workshop on
Conference_Location :
Vancouver, BC
Print_ISBN :
978-1-4244-3737-5
DOI :
10.1109/SECSE.2009.5069162