Abelian: A compiler for graph analytics on distributed, heterogeneous platforms
European Conference on Parallel Processing, 2018•Springer
The trend towards processor heterogeneity and distributed-memory has significantly
increased the complexity of parallel programming. In addition, the mix of applications that
need to run on parallel platforms today is very diverse, and includes graph applications that
typically have irregular memory accesses and unpredictable control-flow. To simplify the
programming of graph applications on such platforms, we have implemented a compiler
called Abelian that translates shared-memory descriptions of graph algorithms written in the …
increased the complexity of parallel programming. In addition, the mix of applications that
need to run on parallel platforms today is very diverse, and includes graph applications that
typically have irregular memory accesses and unpredictable control-flow. To simplify the
programming of graph applications on such platforms, we have implemented a compiler
called Abelian that translates shared-memory descriptions of graph algorithms written in the …
Abstract
The trend towards processor heterogeneity and distributed-memory has significantly increased the complexity of parallel programming. In addition, the mix of applications that need to run on parallel platforms today is very diverse, and includes graph applications that typically have irregular memory accesses and unpredictable control-flow. To simplify the programming of graph applications on such platforms, we have implemented a compiler called Abelian that translates shared-memory descriptions of graph algorithms written in the Galois programming model into efficient code for distributed-memory platforms with heterogeneous processors. The compiler manages inter-device synchronization and communication while leveraging state-of-the-art compilers for generating device-specific code. The experimental results show that the novel communication optimizations in the Abelian compiler reduce the volume of communication by 23, enabling the code produced by Abelian to match the performance of handwritten distributed CPU and GPU programs that use the same runtime. The programs produced by Abelian for distributed CPUs are roughly 2.4 faster than those in the Gemini system, a third-party distributed CPU-only system, demonstrating that Abelian can manage heterogeneity and distributed-memory successfully while generating high-performance code.
Springer
Showing the best result for this search. See all results