  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.
