Computing Treewidth on the GPU

Publication date

2017

Authors

van der Zanden, Tom C.ISNI 0000000493301143
Bodlaender, H.L.ORCID 0000-0002-9297-3330ISNI 0000000081342475

Editors

Advisors

Supervisors

Document Type

Part of book
Open Access logo

License

cc_by

Abstract

We present a parallel algorithm for computing the treewidth of a graph on a GPU. We implement this algorithm in OpenCL, and experimentally evaluate its performance. Our algorithm is based on an O^*(2^n)-time algorithm that explores the elimination orderings of the graph using a Held-Karp like dynamic programming approach. We use Bloom filters to detect duplicate solutions. GPU programming presents unique challenges and constraints, such as constraints on the use of memory and the need to limit branch divergence. We experiment with various optimizations to see if it is possible to work around these issues. We achieve a very large speed up (up to 77×) compared to running the same algorithm on the CPU.

Keywords

Distributed, Parallel, Cluster Computing

Citation

van der Zanden, T C & Bodlaender, H L 2017, Computing Treewidth on the GPU. in Proceedings of the 12th International Symposium on Parameterisiert and Exact Computation (IPEC 2017). Leibniz International Proceedings in Informatics (LIPIcs), Dagstuhl Publishing. https://doi.org/10.4230/LIPIcs.IPEC.2017.29