Translation of Large-Scale Simulation Codes for an OpenACC Platform Using the Xevolver Framework

K. Komatsu, Ryusuke Egawa, S. Hirasawa, H. Takizawa, K. Itakura, Hiroaki Kobayashi
{"title":"Translation of Large-Scale Simulation Codes for an OpenACC Platform Using the Xevolver Framework","authors":"K. Komatsu, Ryusuke Egawa, S. Hirasawa, H. Takizawa, K. Itakura, Hiroaki Kobayashi","doi":"10.15803/IJNC.6.2_167","DOIUrl":null,"url":null,"abstract":"As the diversity of high-performance computing (HPC) systems increases, even legacy HPC applications often need to use accelerators for higher performance. To migrate large-scale legacy HPC applications to modern HPC systems equipped with accelerators, a promising way is to use OpenACC because its directive-based approach can prevent drastic code modifications. This paper shows translation of a large-scale simulation code for an OpenACC platform by keeping the maintainability of the original code. Although OpenACC enables an application to use accelerators by adding a small number of directives, it requires modifying the original code to achieve a high performance in most cases, which tends to degrade the code maintainability and performance portability. To avoid such code modifications, this paper adopts a code translation framework, Xevolver. Instead of directly modifying a code, a pair of a custom code translation rule and a custom directive is defined, and is applied to the original code using the Xevolver framework. This paper first shows that simply inserting OpenACC directives does not lead to high performance and non-trivial code modifications are required in practice. In addition, the code modifications sometimes decrease the performance when migrating a code to other platforms, which leads to low performance portability.  The direct code modifications can be avoided by using pairs of an externally-defined translation rule and a custom directive to keep the original code unchanged as much as possible. Finally, the performance evaluation shows that the performance portability can be improved by selectively applying translation with the Xevolver framework compared with directly modifying a code.","PeriodicalId":270166,"journal":{"name":"Int. J. Netw. Comput.","volume":"53 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-07-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Int. J. Netw. Comput.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.15803/IJNC.6.2_167","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

Abstract

As the diversity of high-performance computing (HPC) systems increases, even legacy HPC applications often need to use accelerators for higher performance. To migrate large-scale legacy HPC applications to modern HPC systems equipped with accelerators, a promising way is to use OpenACC because its directive-based approach can prevent drastic code modifications. This paper shows translation of a large-scale simulation code for an OpenACC platform by keeping the maintainability of the original code. Although OpenACC enables an application to use accelerators by adding a small number of directives, it requires modifying the original code to achieve a high performance in most cases, which tends to degrade the code maintainability and performance portability. To avoid such code modifications, this paper adopts a code translation framework, Xevolver. Instead of directly modifying a code, a pair of a custom code translation rule and a custom directive is defined, and is applied to the original code using the Xevolver framework. This paper first shows that simply inserting OpenACC directives does not lead to high performance and non-trivial code modifications are required in practice. In addition, the code modifications sometimes decrease the performance when migrating a code to other platforms, which leads to low performance portability.  The direct code modifications can be avoided by using pairs of an externally-defined translation rule and a custom directive to keep the original code unchanged as much as possible. Finally, the performance evaluation shows that the performance portability can be improved by selectively applying translation with the Xevolver framework compared with directly modifying a code.
基于Xevolver框架的OpenACC平台大规模仿真代码翻译
随着高性能计算(HPC)系统多样性的增加,即使是传统的HPC应用程序也经常需要使用加速器来提高性能。要将大规模遗留HPC应用程序迁移到配备了加速器的现代HPC系统,一个很有前途的方法是使用OpenACC,因为它基于指令的方法可以防止剧烈的代码修改。本文介绍了在保持原始代码可维护性的前提下,对OpenACC平台的大规模仿真代码进行翻译。尽管OpenACC通过添加少量指令使应用程序能够使用加速器,但在大多数情况下,它需要修改原始代码以实现高性能,这往往会降低代码的可维护性和性能可移植性。为了避免这种代码修改,本文采用了代码翻译框架Xevolver。不是直接修改代码,而是定义一对自定义代码转换规则和自定义指令,并使用Xevolver框架将其应用于原始代码。本文首先表明,简单地插入OpenACC指令并不能带来高性能,并且在实践中需要对代码进行重大修改。此外,在将代码迁移到其他平台时,代码修改有时会降低性能,从而导致低性能可移植性。Â通过使用一对外部定义的翻译规则和一个自定义指令来尽可能地保持原始代码不变,可以避免直接的代码修改。最后,性能评估表明,与直接修改代码相比,选择性地使用Xevolver框架进行翻译可以提高性能可移植性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术文献互助群
群 号:604180095
Book学术官方微信