Compiler Assisted Source Transformation of OpenMP Kernels

Jannek Squar, Tim Jammer, Michael Blesel, Michael Kuhn, T. Ludwig
{"title":"Compiler Assisted Source Transformation of OpenMP Kernels","authors":"Jannek Squar, Tim Jammer, Michael Blesel, Michael Kuhn, T. Ludwig","doi":"10.1109/ISPDC51135.2020.00016","DOIUrl":null,"url":null,"abstract":"Many scientific applications use OpenMP as a relatively easy and fast approach to utilise symmetric multiprocessor systems at their full capacity. However, scalability on shared memory systems is limited and thus distributed parallel computing is inevitable if the full potential through horizontal scaling shall be achieved. Additional software layers like MPI must be used, which require further knowledge on the scientific developers’ side. This paper presents CATO, a tool prototype using LLVM and Clang, to transform existing OpenMP code to MPI; this enables distributed code execution while keeping OpenMP’s relatively low barrier of entry. The main focus lies on increasing the maximum problem size, which a scientific application can work on; converting an intra-node problem into an inter-node problem makes it possible to overcome the limitation of memory of a single node. Our tool does not focus on improving the absolute runtime, even though it might improve it by e.g. introducing concurrency during the I/O phase; but we rather focus on increasing the maximal problem size and our benchmark of a stencil code shows promising results: The transformation preserves the speedup trend of the code to some extent. Another example demonstrates the capability to increase the maximum problem size while using additional compute nodes.","PeriodicalId":426824,"journal":{"name":"2020 19th International Symposium on Parallel and Distributed Computing (ISPDC)","volume":"49 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 19th International Symposium on Parallel and Distributed Computing (ISPDC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISPDC51135.2020.00016","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

Abstract

Many scientific applications use OpenMP as a relatively easy and fast approach to utilise symmetric multiprocessor systems at their full capacity. However, scalability on shared memory systems is limited and thus distributed parallel computing is inevitable if the full potential through horizontal scaling shall be achieved. Additional software layers like MPI must be used, which require further knowledge on the scientific developers’ side. This paper presents CATO, a tool prototype using LLVM and Clang, to transform existing OpenMP code to MPI; this enables distributed code execution while keeping OpenMP’s relatively low barrier of entry. The main focus lies on increasing the maximum problem size, which a scientific application can work on; converting an intra-node problem into an inter-node problem makes it possible to overcome the limitation of memory of a single node. Our tool does not focus on improving the absolute runtime, even though it might improve it by e.g. introducing concurrency during the I/O phase; but we rather focus on increasing the maximal problem size and our benchmark of a stencil code shows promising results: The transformation preserves the speedup trend of the code to some extent. Another example demonstrates the capability to increase the maximum problem size while using additional compute nodes.
OpenMP内核的编译器辅助源转换
许多科学应用程序使用OpenMP作为一种相对简单和快速的方法来充分利用对称多处理器系统。然而,共享内存系统上的可伸缩性是有限的,因此如果要通过水平扩展实现全部潜力,分布式并行计算是不可避免的。必须使用额外的软件层,如MPI,这需要科学开发人员的进一步知识。本文介绍了利用LLVM和Clang将现有OpenMP代码转换为MPI的工具原型CATO;这使得分布式代码执行成为可能,同时保持了OpenMP相对较低的准入门槛。主要焦点在于增加科学应用程序可以处理的最大问题规模;将节点内问题转化为节点间问题,可以克服单个节点的内存限制。我们的工具并不专注于改善绝对运行时,即使它可以通过在I/O阶段引入并发性来改善它;但我们更关注于增加最大问题大小,我们对模板代码的基准测试显示了令人鼓舞的结果:转换在一定程度上保留了代码的加速趋势。另一个示例演示了在使用额外计算节点时增加最大问题大小的能力。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信