Towards a GraphBLAS Library in Chapel

The adoption of a programming language is positively influenced by the breadth of its software libraries. Chapel is a modern andrelatively young parallel programming language. Consequently, not many domain-specific software libraries exists that are written for Chapel. Graph processing is an important domain with many applications in cyber security, energy, social networking, and health. Implementing graphalgorithms in the language of linear algebra enables many advantages including rapid development, flexibility, high-performance, and scalability. GraphBLAS initiative aims to standardize an interface for linear-algebraic primitives for graph computations. This paper presents initial experiences and findings of implementing a subset of important GraphBLAS operations in Chapel. We analyzed the bottlenecksin both shared and distributed memory. We also providedalternative implementations whenever the default implementation lacked performance or scaling.

[1]  Douglas Thain,et al.  Qthreads: An API for programming with millions of lightweight threads , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[2]  Ariful Azad,et al.  Distributed-Memory Algorithms for Maximum Cardinality Matching in Bipartite Graphs , 2016, 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[3]  John R. Gilbert,et al.  Sparse Matrices in MATLAB: Design and Implementation , 1992, SIAM J. Matrix Anal. Appl..

[4]  Kamesh Madduri,et al.  Parallel breadth-first search on distributed memory systems , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[5]  Franz Franchetti,et al.  Mathematical foundations of the GraphBLAS , 2016, 2016 IEEE High Performance Extreme Computing Conference (HPEC).

[6]  Steven J. Deitz,et al.  User-defined distributions and layouts in chapel: philosophy and framework , 2010 .

[7]  John R. Gilbert,et al.  Parallel Sparse Matrix-Matrix Multiplication and Indexing: Implementation and Experiments , 2011, SIAM J. Sci. Comput..

[8]  Ariful Azad,et al.  A Work-Efficient Parallel Sparse Matrix-Sparse Vector Multiplication Algorithm , 2016, 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[9]  Scott McMillan,et al.  Design of the GraphBLAS API for C , 2017, 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW).

[10]  Yuxiong He,et al.  The Cilkview scalability analyzer , 2010, SPAA '10.

[11]  Bradford L. Chamberlain,et al.  Parallel Programmability and the Chapel Language , 2007, Int. J. High Perform. Comput. Appl..