Turkish Journal of Electrical Engineering and Computer Sciences
DOI
10.3906/elk-1904-135
Abstract
The permanent is an important characteristic of a matrix and it has been used in many applications. Unfortunately, it is a hard to compute and hard to approximate the immanant. For dense/full matrices, the fastest exact algorithm, Ryser, has O($2^{n-1}$n) complexity. In this work, a parallel algorithm, SkipPer, is proposed to exploit the sparsity within the input matrix as much as possible. SkipPer restructures the matrix to reduce the overall work, skips the unnecessary steps, and employs a coarse-grain, shared-memory parallelization with dynamic scheduling. The experiments show that SkipPer increases the performance of exact permanent computation up to 140 compared to the naive version for general matrices. Furthermore, thanks to the coarse-grain parallelization, 14-15 speedup on average is obtained with $\tau$= 16 threads over sequential SkipPer. Overall, by exploiting the sparsity and parallelism, the speedup is 2000 for some of the matrices used in the experimental setting. The proposed techniques in this paper can be used to significantly improve the performance of exact permanent computation by simply replacing Ryser with SkipPer, especially when the matrix is highly sparse.
Keywords
Sparse matrices, permanent, Ryser's algorithm, multicore CPUs, shared-memory parallelism, load balancing
First Page
4284
Last Page
4297
Recommended Citation
KAYA, KAMER
(2019)
"Parallel algorithms for computing sparse matrix permanents,"
Turkish Journal of Electrical Engineering and Computer Sciences: Vol. 27:
No.
6, Article 17.
https://doi.org/10.3906/elk-1904-135
Available at:
https://journals.tubitak.gov.tr/elektrik/vol27/iss6/17
Included in
Computer Engineering Commons, Computer Sciences Commons, Electrical and Computer Engineering Commons