4 research outputs found
An analysis of budgeted parallel search on conditional Galton-Watson trees
Recently Avis and Jordan have demonstrated the efficiency of a simple
technique called budgeting for the parallelization of a number of tree search
algorithms. The idea is to limit the amount of work that a processor performs
before it terminates its search and returns any unexplored nodes to a master
process. This limit is set by a critical budget parameter which determines the
overhead of the process. In this paper we study the behaviour of the budget
parameter on conditional Galton-Watson trees obtaining asymptotically tight
bounds on this overhead. We present empirical results to show that this bound
is surprisingly accurate in practice.Comment: 15 pages, 3 figures, 2 tables Minor revisions including an extended
description of the Q-process with additional figur
mts: A light framework for parallelizing tree search codes
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.Comment: 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 application
Parallel Enumeration of Triangulations
We report on the implementation of an algorithm for computing the set of all
regular triangulations of finitely many points in Euclidean space. This
algorithm, which we call down-flip reverse search, can be restricted, e.g., to
computing full triangulations only; this case is particularly relevant for
tropical geometry. Most importantly, down-flip reverse search allows for
massive parallelization, i.e., it scales well even for many cores. Our
implementation allows to compute the triangulations of much larger point sets
than before.Comment: 27 pages, 5 figure
mplrs: A scalable parallel vertex/facet enumeration code
We describe a new parallel implementation, mplrs, of the vertex enumeration
code lrs that uses the MPI parallel environment and can be run on a network of
computers. The implementation makes use of a C wrapper that essentially uses
the existing lrs code with only minor modifications. mplrs was derived from the
earlier parallel implementation plrs, written by G. Roumanis in C++. plrs uses
the Boost library and runs on a shared memory machine. In developing mplrs we
discovered a method of balancing the parallel tree search, called budgeting,
that greatly improves parallelization beyond the bottleneck encountered
previously at around 32 cores.
This method can be readily adapted for use in other reverse search
enumeration codes. We also report some preliminary computational results
comparing parallel and sequential codes for vertex/facet enumeration problems
for convex polyhedra. The problems chosen span the range from simple to highly
degenerate polytopes. For most problems tested, the results clearly show the
advantage of using the parallel implementation mplrs of the reverse search
based code lrs, even when as few as 8 cores are available. For some problems
almost linear speedup was observed up to 1200 cores, the largest number of
cores tested.Comment: Revision incorporating additional suggested change