English

mts: A light framework for parallelizing tree search codes

Distributed, Parallel, and Cluster Computing 2019-03-29 v2

Abstract

We describe mts, a generic framework for parallelizing certain types of tree search programs including reverse search, backtracking, branch and bound and satisfiability testing. It abstracts and generalizes the ideas used in parallelizing lrs, a reverse search code for vertex enumeration. mts supports sharing information between processes which is important for applications such as satisfiability testing and branch-and-bound. No parallelization is implemented in the legacy single processor programs minimizing the changes needed and simplying debugging. mts is written in C, uses MPI for parallelization and can be used on a network of computers. We give four examples of reverse search codes parallelized by using mts: topological sorts, spanning trees, triangulations and Galton-Watson trees. We also give a parallelization of two codes for satisfiability testing. We give experimental results comparing the parallel codes with other codes for the same problems.

Keywords

Cite

@article{arxiv.1709.07605,
  title  = {mts: A light framework for parallelizing tree search codes},
  author = {David Avis and Charles Jordan},
  journal= {arXiv preprint arXiv:1709.07605},
  year   = {2019}
}

Comments

This complements the earlier tutorial (arXiv:1610.07735) on how to use mts, with which it shares some material. The tutorial should be consulted for specific details of the programming changes to legacy code required. This version included two more applications