Maintainable and reusable scientific software adaptation: democratizing scientific software adaptation

Pilsung Kang, E. Tilevich, S. Varadarajan, Naren Ramakrishnan
{"title":"Maintainable and reusable scientific software adaptation: democratizing scientific software adaptation","authors":"Pilsung Kang, E. Tilevich, S. Varadarajan, Naren Ramakrishnan","doi":"10.1145/1960275.1960296","DOIUrl":null,"url":null,"abstract":"Scientific software must be adapted for different execution environments, problem sets, and available resources to ensure its efficiency and reliability. Although adaptation patterns can be found in a sizable percentage of recent scientific applications, the traditional scientific software stack lacks the adequate adaptation abstractions and tools. As a result, scientific programmers manually implement ad-hoc solutions that are hard to maintain and reuse. In this paper, we present a novel approach to adapting scientific software written in Fortran. Our approach leverages the binary object code compatibility between stack-based imperative programming languages. This compatibility makes it possible to apply a C++ Aspect-Oriented Programming (AOP) extension to Fortran programs. Our approach expresses the adaptive functionality as abstract aspects that implement known adaptation patterns and can be reused across multiple scientific applications. Application-specific code is systematically expressed through inheritance. The resulting adaptive functionality can be maintained by any programmer familiar with AOP, which has become a staple of modern software development. We validated the expressive power of our approach by refactoring the hand-coded adaptive functionality of a real-world computational fluid dynamics application suite. The refactored code expresses the adaptive functionality in 27% fewer ULOC on average by removing duplication and leveraging aspect inheritance.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"41 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Aspect-Oriented Software Development","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1960275.1960296","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

Abstract

Scientific software must be adapted for different execution environments, problem sets, and available resources to ensure its efficiency and reliability. Although adaptation patterns can be found in a sizable percentage of recent scientific applications, the traditional scientific software stack lacks the adequate adaptation abstractions and tools. As a result, scientific programmers manually implement ad-hoc solutions that are hard to maintain and reuse. In this paper, we present a novel approach to adapting scientific software written in Fortran. Our approach leverages the binary object code compatibility between stack-based imperative programming languages. This compatibility makes it possible to apply a C++ Aspect-Oriented Programming (AOP) extension to Fortran programs. Our approach expresses the adaptive functionality as abstract aspects that implement known adaptation patterns and can be reused across multiple scientific applications. Application-specific code is systematically expressed through inheritance. The resulting adaptive functionality can be maintained by any programmer familiar with AOP, which has become a staple of modern software development. We validated the expressive power of our approach by refactoring the hand-coded adaptive functionality of a real-world computational fluid dynamics application suite. The refactored code expresses the adaptive functionality in 27% fewer ULOC on average by removing duplication and leveraging aspect inheritance.
可维护和可重用的科学软件改编:使科学软件改编民主化
科学软件必须适应不同的执行环境、问题集和可用资源,以确保其效率和可靠性。尽管在最近的科学应用程序中可以找到相当大比例的适应模式,但传统的科学软件堆栈缺乏适当的适应抽象和工具。因此,科学的程序员手动实现难以维护和重用的临时解决方案。在本文中,我们提出了一种新的方法来适应用Fortran编写的科学软件。我们的方法利用了基于堆栈的命令式编程语言之间的二进制目标代码兼容性。这种兼容性使得将c++面向方面编程(AOP)扩展应用于Fortran程序成为可能。我们的方法将自适应功能表达为实现已知自适应模式的抽象方面,并且可以跨多个科学应用程序重用。特定于应用程序的代码通过继承系统地表示。由此产生的自适应功能可以由任何熟悉AOP的程序员维护,AOP已经成为现代软件开发的主要内容。我们通过重构一个现实世界计算流体动力学应用程序套件的手工编码自适应功能,验证了我们方法的表现力。重构后的代码通过消除重复和利用方面继承,平均减少了27%的ULOC来表达自适应功能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信