3 research outputs found
The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach
The maximum common subgraph of two graphs is the largest possible common subgraph,
i.e., the common subgraph with as many vertices as possible. Even if this problem is very challenging,
as it has been long proven NP-hard, its countless practical applications still motivates searching
for exact solutions. This work discusses the possibility to extend an existing, very effective
branch-and-bound procedure on parallel multi-core and many-core architectures. We analyze
a parallel multi-core implementation that exploits a divide-and-conquer approach based on a
thread pool, which does not deteriorate the original algorithmic efficiency and it minimizes
data structure repetitions. We also extend the original algorithm to parallel many-core GPU
architectures adopting the CUDA programming framework, and we show how to handle the heavily
workload-unbalance and the massive data dependency. Then, we suggest new heuristics to reorder
the adjacency matrix, to deal with “dead-ends”, and to randomize the search with automatic restarts.
These heuristics can achieve significant speed-ups on specific instances, even if they may not be competitive with the original strategy on average. Finally, we propose a portfolio approach, which integrates all the different local search algorithms as component tools; such portfolio, rather than choosing the best tool for a given instance up-front, takes the decision on-line. The proposed approach drastically limits memory bandwidth constraints and avoids other typical portfolio fragility as CPU and GPU versions often show a complementary efficiency and run on separated platforms. Experimental results support the claims and motivate further research to better exploit GPUs in embedded task-intensive and multi-engine parallel applications
A Comparison of Decomposition Methods for the Maximum Common Subgraph Problem
International audienceThe maximum common subgraph problem is an NP-hard problem which is very difficult to solve with exact approaches. To speedup the solution process, we may decompose it into independent sub-problems which are solved in parallel. We describe a new decomposition method which exploits the structure of the problem to decompose it. We compare this structural decomposition with domain-based decompositions, which basically split variable domains. Experimental results show us that the structural decomposition leads to better speedups on two classes of instances, and to worse speedups on one class of instances
A Comparison of Decomposition Methods for the Maximum Common Subgraph Problem
International audienceThe maximum common subgraph problem is an NP-hard problem which is very difficult to solve with exact approaches. To speedup the solution process, we may decompose it into independent sub-problems which are solved in parallel. We describe a new decomposition method which exploits the structure of the problem to decompose it. We compare this structural decomposition with domain-based decompositions, which basically split variable domains. Experimental results show us that the structural decomposition leads to better speedups on two classes of instances, and to worse speedups on one class of instances