1MPLRS(1) mplrs 7.2 MPLRS(1)
2
3
4
6 mplrs - Convert between representations of convex polyhedra (parallel
7 version).
8
10
11 mpirun -np num_proc mplrs infile [outfile] [option...]
12
13
15 A polyhedron can be described by a list of inequalities
16 (H-representation) or as by a list of its vertices and extreme rays
17 (V-representation). lrs is a C program that converts a
18 H-representation of a polyhedron to its V-representation, and vice
19 versa. These problems are known respectively at the vertex enumeration
20 and convex hull problems.
21
23 The number of processors num_proc specified to mpirun should be 4 or
24 higher Unlike lrs (1), mplrs does not support options after the end
25 statement of the input file.
26
27 OPTIONS
28 mplrs supports the following options.
29 -id <initial depth> [2] the depth of the original tree search to
30 populate the job queue L
31 -maxc <maxcobases>[50 (*scale)] a producer stops and returns all
32 subtrees that are not leaves to L after generating maxc nodes
33 -maxd <depth>[0] a producer returns all subtrees that are not
34 leaves at depth maxd. Zero if not used
35 -lmin <int>[3] if job queue |L|<np*lmin then the maxd parameter is
36 set for all producers
37 -lmax <int>[lmin] if job queue |L|>np*lmax then then maxc is
38 replaced by maxc*scale
39 -scale <int>[100]used by lmax
40 -hist <file>store parallelization data in <file> for use by
41 gnuplot, see below
42 -temp <prefix>[/tmp/] store a temporary file for each process.
43 Should be specified if /tmp not writeable. Using " -temp ./ " will
44 write temporary files to the current directory
45 -freq <file> store frequency data in <file> for use by gnuplot, see
46 below
47 -stop <stopfile> terminate mplrs if a file with name <stopfile> is
48 created in the current directory
49 -checkp <checkpoint file> if mplrs is terminated by -stop or -time
50 then it can be restarted using this <checkpoint file> and -restart
51 -restart <checkpoint file> restart mplrs using previously created
52 <checkpoint file>. If used with -checkp file names should be
53 different!
54 -time <seconds> terminate mplrs after <seconds> of elapsed time
55 -countonly don't output vertices/rays/facets, just count them
56 -maxbuf <n>[500] controls maximum size of worker output buffers
57 -stopafter <n> exit after approximately <n> cobases have been
58 computed (no guarantee about how many vertices/rays/facets
59 computed)
60 -redund perform redundancy check of input file (also see redund )
61 The parameters -hist and -freq give interesting information about the
62 degree of parallelization.
63
65 Input file mp5.ine is run with 8 processors. The output file mp5.mplrs
66 is in the distribution. This produced 378 subtrees that were enumerated
67 in parallel using 6 producer cores, 1 core controlling the run and 1
68 core collecting the output.
69
70 mai20% mpirun -np 8 mplrs mp5.ine mp5.mplrs
71 *mplrs:lrslib v.6.0 2015.7.13(lrsgmp.h)8 processes
72 *Copyright (C) 1995,2015, David Avis avis@cs.mcgill.ca
73 *Input taken from mp5.ine
74 *Output written to: mp5.mplrs
75 *Starting depth of 2 maxcobases=50 maxdepth=0 lmin=3 lmax=3 scale=100
76 *Phase 1 time: 0 seconds.
77 *Total number of jobs: 378, L became empty 4 times
78 *Totals: vertices=32 rays=0 bases=9041 integer-vertices=16
79 *Elapsed time: 1 seconds.
80 2.285u 0.137s 0:01.86 129.5% 0+0k 0+9976io 36pf+0w
81
82
84 lrs(1), lrslib(1)
85
86
87
88July 2020 2020.7.28 MPLRS(1)