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 solut...
Main Authors: | , , |
---|---|
Format: | Article |
Language: | English |
Published: |
MDPI AG
2020-05-01
|
Series: | Computation |
Subjects: | |
Online Access: | https://www.mdpi.com/2079-3197/8/2/48 |
id |
doaj-d05d30e7c1fa4b58bb41aae9b7f564ef |
---|---|
record_format |
Article |
spelling |
doaj-d05d30e7c1fa4b58bb41aae9b7f564ef2020-11-25T02:49:20ZengMDPI AGComputation2079-31972020-05-018484810.3390/computation8020048The Maximum Common Subgraph Problem: A Parallel and Multi-Engine ApproachStefano Quer0Andrea Marcelli1Giovanni Squillero2Dipartimento di Automatica e Informatica, Politecnico di Torino, Corso Duca degli Abruzzi 24, 10129 Torino, ItalyCisco Systems, Talos Security Intelligence and Research Group, 06250 Sophia Antipolis, FranceDipartimento di Automatica e Informatica, Politecnico di Torino, Corso Duca degli Abruzzi 24, 10129 Torino, ItalyThe 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.https://www.mdpi.com/2079-3197/8/2/48graphgraph isomorphismparallel computing |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Stefano Quer Andrea Marcelli Giovanni Squillero |
spellingShingle |
Stefano Quer Andrea Marcelli Giovanni Squillero The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach Computation graph graph isomorphism parallel computing |
author_facet |
Stefano Quer Andrea Marcelli Giovanni Squillero |
author_sort |
Stefano Quer |
title |
The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach |
title_short |
The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach |
title_full |
The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach |
title_fullStr |
The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach |
title_full_unstemmed |
The Maximum Common Subgraph Problem: A Parallel and Multi-Engine Approach |
title_sort |
maximum common subgraph problem: a parallel and multi-engine approach |
publisher |
MDPI AG |
series |
Computation |
issn |
2079-3197 |
publishDate |
2020-05-01 |
description |
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. |
topic |
graph graph isomorphism parallel computing |
url |
https://www.mdpi.com/2079-3197/8/2/48 |
work_keys_str_mv |
AT stefanoquer themaximumcommonsubgraphproblemaparallelandmultiengineapproach AT andreamarcelli themaximumcommonsubgraphproblemaparallelandmultiengineapproach AT giovannisquillero themaximumcommonsubgraphproblemaparallelandmultiengineapproach AT stefanoquer maximumcommonsubgraphproblemaparallelandmultiengineapproach AT andreamarcelli maximumcommonsubgraphproblemaparallelandmultiengineapproach AT giovannisquillero maximumcommonsubgraphproblemaparallelandmultiengineapproach |
_version_ |
1724744146969690112 |