Compiler Optimization for Irregular Memory Access Patterns in PGAS Programs
Authors: Thomas B. Rolinger, Christopher D. Krieger, Alan Sussman
AI-generated Key Points
- Irregular memory access patterns can be challenging for distributed-memory systems, leading to fine-grained remote communication and unknown data access patterns until runtime.
- The Partitioned Global Address Space (PGAS) programming model provides users with a view of a distributed-memory system that resembles a single shared address space, but this approach often results in poor performance due to fine-grained remote communication caused by the code written by programmers.
- Previous research has shown that manually applying optimizations can improve the performance of irregular applications written in Chapel, a high-level PGAS language. However, such manual optimization reduces productivity advantages provided by Chapel and the PGAS model.
- This paper presents an inspector-executor based compiler optimization for Chapel programs that automatically performs remote data replication for irregular memory accesses to distributed arrays. This work is unique as it presents the first such optimization within the Chapel compiler.
- The paper evaluates the performance of the optimization across two irregular applications on two different distributed-memory systems. Results show that the optimization can improve performance by up to 52x on a Cray XC system with low-latency interconnect and 364x on a standard Linux cluster with Infiniband interconnect without sacrificing user productivity.
- Chapel is a high-level language designed for productive parallel computing at scale through constructs for distributed arrays, remote communication, and both data and task parallelism. Tasks in Chapel are executed in parallel through multiple threads implemented by a tasking layer. For distributed-memory programming, Chapel introduces locales as units of machine resources on which tasks execute.
- In conclusion, this paper presents an automatic compiler optimization for irregular memory accesses in Chapel programs that significantly improves their performance without reducing productivity advantages provided by Chapel and PGAS model. Future work could explore the application of this optimization to other PGAS languages and investigate its performance on larger-scale systems.
Abstract: 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.
Tools for this paper
Ask questions about this paper to our AI assistant
You can also chat with multiple papers at once here.
The previous summary was created more than a year ago and can be re-run (if necessary) by clicking on the Run button below.
Similar papers summarized with our AI tools
Navigate through even more similar papers through a
tree representationLook for similar papers (in beta version)
We compare the title and abstract with papers indexed in our database. For arXiv papers, we search within the same category; for DOI and other sources, we search across sources and subjects. You can rerun the search as our database grows.
Disclaimer: The AI-based summarization tool and virtual assistant provided on this website may not always provide accurate and complete summaries or responses. We encourage you to carefully review and evaluate the generated content to ensure its quality and relevance to your needs.