Abstract

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.

Highlights

  • Graphs are an extremely general and powerful data structure.They can be used to model, analyze, and process a huge variety of phenomena and concepts by providing natural machine-readable representations

  • The maximum common subgraph problem consists in finding the largest graph which is simultaneously isomorphic to a subgraph of two given graphs

  • Archibald et al [32] designed an algorithm for subgraph isomorphism that instead of using the degree of a vertex to sort the matching pairs, adopts it to direct the proportion of search effort spent in different subproblems

Read more

Summary

Introduction

Graphs are an extremely general and powerful data structure. They can be used to model, analyze, and process a huge variety of phenomena and concepts by providing natural machine-readable representations. The bound consists in computing, from the current mapping size and from the labels of yet to map vertices, the maximum MCS size the current recursion path may lead to, and to prune those paths that are not promising enough Within this framework, this paper presents the following contributions: 2. As sequential programming has often become “parallel programming” [4,5], we present a CPU-based multi-core parallel design of the McSplit procedure In this application, we parallelize the searching procedure viewing the backtrack search as forming a tree, and exploring different portions of the tree using different threads. Following other application fields (such as the one of SATisfiability solvers [8]), we propose randomize tree search and automatic search restarts for expensive computations These heuristics show very good performance on specific instances even if they cannot outperform the original implementation on average.

The Maximum Common Subgraph Problem
Related Works
Sequential Approaches
Parallel Approaches
The McSplit Algorithm
The CPU Multi-Core Approach
The GPU Many-Core Approach
Labels Re-Computation
New Bidomain Stack
Our GPU Implementation
26: CUDA malloc and cpu2gpu
Complexity and Computational Efficiency
The Portfolio Approach
Reordering the Adjacency Matrix
Dead-End Recovery and Restart Strategy
The Portfolio Engines
Experimental Results
Data-Sets Description
Results on Small-Size Graphs
Results on Medium-Size Graphs
Performance Analysis
Conclusions
Future Works
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call