1mplrs(1)                          mplrs  7.2                          mplrs(1)
2
3
4
5   Name
6       mplrs - Convert between representations of convex polyhedra, remove
7       redundant inequalities, do Fourier-Motzkin elimination (parallel
8       version).
9
10   Synopsis
11
12                      mpirun  -np num_proc mplrs infile [outfile] [option...]
13
14
15   Description
16       A polyhedron can be described by a list of inequalities
17       (H-representation) or by a list of its vertices and extreme rays
18       (V-representation).  mplrs is a parallel version of lrs, and converts a
19       H-representation of a polyhedron to its V-representation, and vice
20       versa.  These problems are known respectively at the vertex enumeration
21       and convex hull problems.  With lrs options redund or redund_list in
22       the input file it will do parallel execution of redund (redundancy
23       removal).  With lrs options project or eliminate in the input file it
24       will do parallel execution of fel (Fourier-Motkin elimination).
25
26   Usage
27       The number of processors num_proc specified to mpirun should be 4 or
28       higher.  Some lrs input file options are not supported by mplrs.
29
30   Options
31       mplrs supports the following options, where default values are given in
32       brackets.
33           -checkp <checkpoint file> if mplrs is terminated by -stop or -time
34           then it can be restarted using this <checkpoint file> and -restart
35           -countonly don't output vertices/rays/facets, just count them
36           -freq <file> store frequency data in <file> for use by gnuplot, see
37           below
38           -hist <file>store parallelization data in <file> for use by
39           gnuplot, see below
40           -id <initial depth> [2] the depth of the original tree search to
41           populate the job list L
42           -lmax <int>[lmin] if job list |L|>np*lmax then then maxc is
43           replaced by maxc*scale
44           -lmin <int>[3] if job list |L|<np*lmin then the maxd parameter is
45           set for all producers
46           -maxbuf <n>[500] controls maximum size of worker output buffers
47           -maxc <maxcobases>[50 (*scale)] a producer stops and returns all
48           subtrees that are not leaves to L after generating  maxc nodes
49           -maxd <depth>[0] a producer returns all subtrees that are not
50           leaves at depth maxd. Zero if not used
51           -minheight jobs are scheduled in increasing order by height in the
52           search tree (default is LIFO)
53           -queue jobs are scheduled in FIFO order (default is LIFO)
54           -restart <checkpoint file> restart mplrs using previously created
55           <checkpoint file>. If used with -checkp file names should be
56           different!
57           -scale <int>[100] used by lmax
58           -stop <stopfile>  terminate mplrs if a file with name <stopfile> is
59           created in the current directory
60           -stopafter <n> exit after approximately <n> cobases have been
61           computed (no guarantee about how many vertices/rays/facets
62           computed)
63           -temp <prefix>[/tmp/] store a temporary file for each process.
64           Should be specified if /tmp not writeable. Using " -temp  ./ " will
65           write temporary files to the current directory
66           -time <seconds> terminate mplrs after <seconds> of elapsed time
67        redund/fel options
68           -j <int>[0] if non-zero sets rows to m/(j*(np-2)) and disables
69           lastrows
70           -lastp <int>[10] the percentage of jobs to use lastrows
71           -lastrows <int>[10] the number of rows for the last lastp jobs
72           -redund remove redundant rows from input file (also see lrs man
73           page)
74           -rows <int>[60] the number of rows per job
75
76   -hist file format
77       Example line:
78              54.118141 94 279 94 0 0 373
79
80              time since execution began in seconds (54.118141 here)
81              number of busy workers (94 here)
82              current size of job list (279 here)
83              number of workers that may return unfinished jobs (94 here)
84              unused (0 here)
85              unused (0 here)
86              total number of jobs that have been in the job list (373 here)
87       The second and fourth entries are similar and can differ due to
88       latencies.
89
90
91   -freq file format
92       One integer per line corresponding to the size of a subtree explored by
93       a worker.
94
95   Example
96       Input file mp5.ine is run with 8 processors. The output file mp5.mplrs
97       is in the distribution. This produced 378 subtrees that were enumerated
98       in parallel using 6 producer cores,  1 core controlling the run and 1
99       core collecting the output.
100
101                 mai20% mpirun -np 8 mplrs mp5.ine mp5.mplrs
102                 *mplrs:lrslib v.6.0 2015.7.13(lrsgmp.h)8 processes
103                 *Copyright (C) 1995,2015, David Avis   avis@cs.mcgill.ca
104                 *Input taken from mp5.ine
105                 *Output written to: mp5.mplrs
106                 *Starting depth of 2 maxcobases=50 maxdepth=0 lmin=3 lmax=3 scale=100
107                 *Phase 1 time: 0 seconds.
108                 *Total number of jobs: 378, L became empty 4 times
109                 *Totals: vertices=32 rays=0 bases=9041 integer-vertices=16
110                 *Elapsed time: 1 seconds.
111                 2.285u 0.137s 0:01.86 129.5%    0+0k 0+9976io 36pf+0w
112
113
114   Author
115       Charles Jordan <skip at res dot otaru-uc dot ac dot jp >
116
117   See also
118       lrs(1), lrslib(5)
119
120
121
122September 2020                     2020.9.19                          mplrs(1)
Impressum