Irregular memory access patterns pose performance and user productivity challenges on distributed-memory systems. They can lead to fine-grained remote communication and the data access patterns are often not known until runtime. The Partitioned Global Address Space (PGAS) programming model addresses these challenges by providing users with a view of a distributed-memory system that resembles a single shared address space. However, this view often leads programmers to write code that causes fine-grained remote communication, which can result in poor performance. Prior work has shown that the performance of irregular applications written in Chapel, a high-level PGAS language, can be improved by manually applying optimizations. However, applying such optimizations by hand reduces the productivity advantages provided by Chapel and the PGAS model. We present an inspector-executor based compiler optimization for Chapel programs that automatically performs remote data replication. While there have been similar compiler optimizations implemented for other PGAS languages, high-level features in Chapel such as implicit processor affinity lead to new challenges for compiler optimization. We evaluate the performance of our optimization across two irregular applications. Our results show that the total runtime can be improved by as much as 52x on a Cray XC system with a low-latency interconnect and 364x on a standard Linux cluster with an Infiniband interconnect, demonstrating that significant performance gains can be achieved without sacrificing user productivity.


翻译:不规则的存储器访问模式在分布式存储系统上带来性能和用户生产力方面的挑战。它们可能导致细粒度的远程通信,并且往往在运行时不知道数据访问模式。Partitioned Global Address Space (PGAS) 编程模型通过提供用户具有类似于单个共享地址空间的分布式存储系统视图来解决这些挑战。然而,这种视图经常导致程序员编写引起细粒度远程通信的代码,可能导致性能不佳。先前的工作已经表明 Chapel,一种高级 PGAS 语言编写的不规则应用程序的性能可以通过手动应用优化来提高。然而,通过手动应用此类优化会降低 Chapel 和 PGAS 模型提供的生产力优势。我们提出了一种基于巡检器-执行器的编译器优化,用于 Chapel 程序,自动执行远程数据复制。虽然已经为其他 PGAS 语言实现了类似的编译器优化,但 Chapel 中的高级特性,如隐式处理器亲和性,会带来新的编译器优化挑战。我们通过两个不规则应用程序评估我们的优化性能。我们的结果表明,在具有低延迟互连的 Cray XC 系统上,总运行时间可以提高多达 52 倍,在具有 Infiniband 互连的标准 Linux 集群上可以提高 364 倍,展示了可以在不牺牲用户生产力的情况下实现显著的性能提升。

0
下载
关闭预览

相关内容

是否应该在 Kubernetes 上运行数据库?
CSDN
0+阅读 · 2022年9月1日
JavaScript、Python 比 C++ 慢 8 倍、29 倍?
CSDN
3+阅读 · 2022年7月29日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Hierarchically Structured Meta-learning
CreateAMind
23+阅读 · 2019年5月22日
【推荐】(TensorFlow)SSD实时手部检测与追踪(附代码)
机器学习研究会
11+阅读 · 2017年12月5日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
14+阅读 · 2017年11月16日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Arxiv
0+阅读 · 2023年5月13日
VIP会员
相关VIP内容
相关资讯
是否应该在 Kubernetes 上运行数据库?
CSDN
0+阅读 · 2022年9月1日
JavaScript、Python 比 C++ 慢 8 倍、29 倍?
CSDN
3+阅读 · 2022年7月29日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Hierarchically Structured Meta-learning
CreateAMind
23+阅读 · 2019年5月22日
【推荐】(TensorFlow)SSD实时手部检测与追踪(附代码)
机器学习研究会
11+阅读 · 2017年12月5日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
14+阅读 · 2017年11月16日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Top
微信扫码咨询专知VIP会员