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...

Full description

Bibliographic Details
Main Authors: Stefano Quer, Andrea Marcelli, Giovanni Squillero
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