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