A high-level framework for parallelizing legacy applications for multiple platforms

R. Arora, Ejenio Capetillo, P. Bangalore, M. Mernik
{"title":"A high-level framework for parallelizing legacy applications for multiple platforms","authors":"R. Arora, Ejenio Capetillo, P. Bangalore, M. Mernik","doi":"10.1145/2484762.2484829","DOIUrl":null,"url":null,"abstract":"The tremendous growth and diversification in the area of computer architectures has contributed towards an upsurge in the number of parallel programing paradigms, languages, and environments. However, it is often difficult for domain-experts to develop expertise in multiple programming paradigms and languages in order to write performance-oriented parallel applications. Several active research projects aim at reducing the burden on programmers by raising the level of abstraction of parallel programming. However, a majority of such research projects either entail manual invasive reengineering of existing code to insert new directives for parallelization or force conformance to specific interfaces. Some systems require that the programmers rewrite their entire application in a new parallel programing language or a domain-specific language. Moreover, only a few research projects are addressing the need of a single framework for generating parallel applications for multiple hardware platforms or doing hybrid programming. This paper presents a high-level framework for parallelizing existing serial applications for multiple target platforms. The framework, currently in its prototype stage, can semi-automatically generate parallel applications for systems with both distributed-memory architectures and shared-memory architectures through MPI, OpenMP, and hybrid programming. For all the test cases considered so far, the performance of the generated parallel applications is comparable to that of the manually written parallel versions of the applications. Our approach enhances the productivity of the end-users as they are not required to learn any low-level parallel programming, shortens the parallel application development cycle for multiple platforms, and preserves the existing version of serial applications.","PeriodicalId":426819,"journal":{"name":"Proceedings of the Conference on Extreme Science and Engineering Discovery Environment: Gateway to Discovery","volume":"74 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the Conference on Extreme Science and Engineering Discovery Environment: Gateway to Discovery","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2484762.2484829","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

Abstract

The tremendous growth and diversification in the area of computer architectures has contributed towards an upsurge in the number of parallel programing paradigms, languages, and environments. However, it is often difficult for domain-experts to develop expertise in multiple programming paradigms and languages in order to write performance-oriented parallel applications. Several active research projects aim at reducing the burden on programmers by raising the level of abstraction of parallel programming. However, a majority of such research projects either entail manual invasive reengineering of existing code to insert new directives for parallelization or force conformance to specific interfaces. Some systems require that the programmers rewrite their entire application in a new parallel programing language or a domain-specific language. Moreover, only a few research projects are addressing the need of a single framework for generating parallel applications for multiple hardware platforms or doing hybrid programming. This paper presents a high-level framework for parallelizing existing serial applications for multiple target platforms. The framework, currently in its prototype stage, can semi-automatically generate parallel applications for systems with both distributed-memory architectures and shared-memory architectures through MPI, OpenMP, and hybrid programming. For all the test cases considered so far, the performance of the generated parallel applications is comparable to that of the manually written parallel versions of the applications. Our approach enhances the productivity of the end-users as they are not required to learn any low-level parallel programming, shortens the parallel application development cycle for multiple platforms, and preserves the existing version of serial applications.
为多个平台并行处理遗留应用程序的高级框架
计算机体系结构领域的巨大增长和多样化促成了并行编程范例、语言和环境数量的激增。然而,为了编写面向性能的并行应用程序,领域专家通常很难掌握多种编程范式和语言的专业知识。一些活跃的研究项目旨在通过提高并行编程的抽象水平来减轻程序员的负担。然而,大多数这样的研究项目要么需要手动侵入性地重新设计现有代码,以插入新的并行指令,要么强制遵守特定的接口。有些系统要求程序员用新的并行编程语言或特定于领域的语言重写整个应用程序。此外,只有少数研究项目正在解决为多个硬件平台生成并行应用程序或进行混合编程的单一框架的需求。本文提出了一个高级框架,用于并行化现有的多目标平台串行应用程序。该框架目前处于原型阶段,可以通过MPI、OpenMP和混合编程,半自动地为具有分布式内存架构和共享内存架构的系统生成并行应用程序。对于到目前为止考虑的所有测试用例,生成的并行应用程序的性能与手工编写的应用程序的并行版本的性能相当。我们的方法提高了终端用户的生产力,因为他们不需要学习任何低级并行编程,缩短了多平台并行应用程序的开发周期,并保留了串行应用程序的现有版本。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信