C plus plus and Interoperability Between Libraries: The GraphBLAS C plus plus Specification

被引:0
作者
Brock, Benjamin [1 ]
McMillan, Scott [2 ]
Buluc, Aydin [3 ,5 ]
Mattson, Timothy G. [1 ]
Moreira, Jose E. [4 ]
机构
[1] Intel, Parallel Comp Lab, Mountain View, CA 94043 USA
[2] Carnegie Mellon Univ, Software Engn Inst, Pittsburgh, PA USA
[3] Lawrence Berkeley Natl Lab, Computat Res Dept, Berkeley, CA USA
[4] IBM Thomas J Watson Res Ctr, Yorktown Hts, NY USA
[5] Univ Calif Berkeley, EECS Dept, Berkeley, CA USA
来源
2023 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS, IPDPSW | 2023年
基金
美国安德鲁·梅隆基金会;
关键词
graphs; iterators; concepts; views;
D O I
10.1109/IPDPSW59300.2023.00043
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Interoperability between libraries is often hindered by incompatible data formats, which can necessitate creating new copies of data when transferring data back and forth between different libraries. This additional data movement incurs additional runtime costs, particularly for sparse applications, where the costs of data movement often dwarf compute costs. In this paper, we investigate interoperability in the context of the C++ GraphBLAS Specification, where C++ concepts allow GraphBLAS algorithms to accept any matrix type as long as it follows the matrix interface defined in the GraphBLAS matrix concept. We first develop non-owning, lazily evaluated adapted views for a number of external data structures, including two categories of graphs defined in the Northwest Graph Library (NWGraph) and traditional pointer-based CSR data structures. These adapted views fulfill the C++ GraphBLAS matrix concept, allowing them to be used inside GraphBLAS algorithms. We then evaluate the performance of these adapted views across two kernels, matrix reduction and sparse times dense matrix multiplication (SpMM), where the performance achieved using a single generic implementation with these views largely matches the performance achieved operating directly on the original data structures, with a slight performance loss in one case. We then propose a mechanism for automatically discovering the availability of these views, allowing algorithms to directly accept external data structures. We also discuss potential extensions to the C++ GraphBLAS specification that might eliminate the small performance dip observed for one of the views.
引用
收藏
页码:207 / 215
页数:9
相关论文
共 17 条
  • [1] Brock B., 2019, Tech. Rep
  • [2] GraphBLAS: C plus plus Iterators for Sparse Matrices
    Brock, Benjamin
    McMillan, Scott
    Buluc, Aydin
    Mattson, Timothy G.
    Moreira, Jose E.
    [J]. 2022 IEEE 36TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW 2022), 2022, : 238 - 246
  • [3] Brock Benjamin, 2022, GraphBLAS C++ Specification
  • [4] Brock Benjamin, 2022, RGRI REFERENCE IMPLE
  • [5] Davis Timothy A., 2022, ACM Trans. Math. Softw.
  • [6] Graphblas template library (GBTL), US
  • [7] Guennebaud G., 2010, Eigen V3
  • [8] Hoemmen Mark, P1673R11 FREE FUNCTI
  • [9] Lumsdaine Andrew, 2022, 36 EUROPEAN C OBJECT
  • [10] Nonblocking execution in GraphBLAS
    Mastoras, Aristeidis
    Anagnostidis, Sotiris
    Yzelman, Albert-Jan N.
    [J]. 2022 IEEE 36TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW 2022), 2022, : 230 - 233