A lightweight semi-centralized strategy for the massive parallelization of branching algorithms
Several NP-hard problems are solved exactly using exponential-time branching strategies, whether it be branch-and-bound algorithms, or bounded search trees in fixed-parameter algorithms. The number of tractable instances that can be handled by sequential algorithms is usually small, whereas massive...
Gespeichert in:
| Veröffentlicht in: | Parallel computing Jg. 116; S. 103024 |
|---|---|
| Hauptverfasser: | , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
Elsevier B.V
01.07.2023
|
| Schlagworte: | |
| ISSN: | 0167-8191 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Zusammenfassung: | Several NP-hard problems are solved exactly using exponential-time branching strategies, whether it be branch-and-bound algorithms, or bounded search trees in fixed-parameter algorithms. The number of tractable instances that can be handled by sequential algorithms is usually small, whereas massive parallelization has been shown to significantly increase the space of instances that can be solved exactly. However, previous centralized approaches require too much communication to be efficient, whereas decentralized approaches are more efficient but have difficulty keeping track of the global state of the exploration.
In this work, we propose to revisit the centralized paradigm while avoiding previous bottlenecks. In our strategy, the center has lightweight responsibilities, requires only a few bits for every communication, but is still able to keep track of the progress of every worker. In particular, the center never holds any task but is able to guarantee that a process with no work always receives the highest priority task globally.
Our strategy was implemented in a generic C++ library called GemPBA, which allows a programmer to convert a sequential branching algorithm into a parallel version by changing only a few lines of code. An experimental case study on the vertex cover problem demonstrates that some of the toughest instances from the DIMACS challenge graphs that would take months to solve sequentially can be handled within two hours with our approach.
•A lightweight centralized strategy for parallel branching algorithms that is free of previously known bottlenecks.•A dynamic tree structure to maintain the priority of unexplored recursions, even for heterogeneous search trees.•A generic C++ library that allows easy parallelization of sequencial branching code.•Experiments on the vertex cover demonstrating that our strategy can solve some of the toughest known instances. |
|---|---|
| ISSN: | 0167-8191 |
| DOI: | 10.1016/j.parco.2023.103024 |