# segmerge **Repository Path**: ssslab/segmerge ## Basic Information - **Project Name**: segmerge - **Description**: No description available - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-10-17 - **Last Updated**: 2023-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Segmerge **Segmerge** is an open source software package for presented a primitive called segmented merge and used it to optimize sparse matrix calculations. It contains two sparse matrix operations: sparse matrix-matrix multiplication (SpGEMM) and sparse matrix transposition (SpTRANS). ------------------- [TOC] ## Introduction Segmented merge is the basic primitive of many calculations and can be applied to sparse matrix transpose (SpTRANS) and sparse matrix matrix multiplication (SpGEMM). The library provides the parallel primitive of segmented merge, realizes the parallel merging from q ordered sub segments to p main segments, and proves its effectiveness in SpTRANS and SpGEMM. More information about Segmer ge can be found: Haonan Ji, Shibo Lu, Kaixi Hou, Hao Wang, Weifeng Liu and Brian Vinter. 2020. Segmented Merge: A New Primitive for Parallel Sparse Matrix Computations. International Journal of Parallel Programming 2021. Springer, Cham. DOI: https://doi.org/10.1007/978-3-030-79478-1_15 ## Requirement cuda>=10.0 gcc>=5.5 ## Installation According to your computer environment, modify the CUDA path and compute capability in Makefile. > **make** ## Execution of Segmerge ### SpGEMM Usage The SpGEMM operation computes C = AB where A, B and C are sparse matrices and we use the row by row method. For AB=C on device 0, no check: > **./segmerge -f 1 -d 0 -check 0 A.mtx B.mtx** ### SpTRANS Usage The SpTRANS operation transpose a sparse matrix A in CSR format to the CSR format. For A=A^T on device 1, using check: > **./segmerge -f 0 -d 1 -check 1 A.mtx B.mtx** ## Release version Oct 19,2021 Version Beta