mplrs(1)
Convert between representations of convex polyhedra (parallel version).
Description
MPLRS
NAME
mplrs - Convert between representations of convex polyhedra (parallel version).
SYNOPSIS
mpirun -np num_proc mplrs infile [outfile] [option...]
DESCRIPTION
A polyhedron can be described by a list of inequalities (H-representation) or as by a list of its vertices and extreme rays (V-representation). lrs is a C program that converts a H-representation of a polyhedron to its V-representation, and vice versa. These problems are known respectively at the vertex enumeration and convex hull problems.
USAGE
The number of processors num_proc specified to mpirun should be 4 or higher Unlike lrs (1), mplrs does not support options after the end statement of the input file.
OPTIONS
mplrs supports the following options.
-id <initial
depth> [2] the depth of the original tree search to
populate the job queue L
-maxc <maxcobases>[50 (*scale)] a producer stops
and returns all subtrees that are not leaves to L after
generating maxc nodes
-maxd <depth>[0] a producer returns all subtrees
that are not leaves at depth maxd. Zero if not used
-lmin <int>[3] if job queue |L|<np*lmin then
the maxd parameter is set for all producers
-lmax <int>[lmin] if job queue |L|>np*lmax then
then maxc is replaced by maxc*scale
-scale <int>[100]used by lmax
-hist <file>store parallelization data in
<file> for use by gnuplot, see below
-temp <prefix>[/tmp/] store a temporary file for
each process. Should be specified if /tmp not writeable.
Using " -temp ./ " will write temporary
files to the current directory
-freq <file> store frequency data in <file>
for use by gnuplot, see below
-stop <stopfile> terminate mplrs if a file with
name <stopfile> is created in the current directory
-checkp <checkpoint file> if mplrs is terminated
by -stop or -time then it can be restarted using this
<checkpoint file> and -restart
-restart <checkpoint file> restart mplrs using
previously created <checkpoint file>. If used with
-checkp file names should be different!
-time <seconds> terminate mplrs after
<seconds> of elapsed time
-countonly don't output vertices/rays/facets, just count
them
-maxbuf <n>[500] controls maximum size of worker
output buffers
-stopafter <n> exit after approximately <n>
cobases have been computed (no guarantee about how many
vertices/rays/facets computed)
-redund perform redundancy check of input file (also see
redund )
The parameters -hist and -freq give interesting information about the degree of parallelization.
EXAMPLE
Input file mp5.ine is run with 8 processors. The output file mp5.mplrs is in the distribution. This produced 378 subtrees that were enumerated in parallel using 6 producer cores, 1 core controlling the run and 1 core collecting the output.
mai20% mpirun
-np 8 mplrs mp5.ine mp5.mplrs
*mplrs:lrslib v.6.0 2015.7.13(lrsgmp.h)8 processes
*Copyright (C) 1995,2015, David Avis
avis@cs.mcgill.ca
*Input taken from mp5.ine
*Output written to: mp5.mplrs
*Starting depth of 2 maxcobases=50 maxdepth=0 lmin=3 lmax=3
scale=100
*Phase 1 time: 0 seconds.
*Total number of jobs: 378, L became empty 4 times
*Totals: vertices=32 rays=0 bases=9041 integer-vertices=16
*Elapsed time: 1 seconds.
2.285u 0.137s 0:01.86 129.5% 0+0k 0+9976io
36pf+0w
SEE ALSO
lrs(1), lrslib(1)