.TH "MPLRS" "1" "2020.7.28" "July 2020" "mplrs 7\&.2" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" mplrs \- Convert between representations of convex polyhedra (parallel version)\&. .SH "SYNOPSIS" .HP \w'\fB\ mpirun\ \fR\fBmplrs\fR\ 'u \fB mpirun \fR \-np \fInum_proc\ \fR\fBmplrs\fR \fIinfile\fR [\fIoutfile\fR] [\fIoption\fR...] .br .SH "DESCRIPTION" .PP A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&. \fIlrs\fR 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 \fIvertex enumeration\fR and \fIconvex hull problems\fR\&. .PP .SH "USAGE" .PP The number of processors \fInum_proc\fR specified to \fBmpirun\fR should be 4 or higher Unlike lrs (1), \fBmplrs\fR does not support options after the end statement of the input file\&. .SS "OPTIONS" .PP \fBmplrs\fR supports the following options\&. .RS 4 \fB\-id \fR [2] the depth of the original tree search to populate the job queue L .RE .RS 4 \fB\-maxc \fR[50 (*scale)] a producer stops and returns all subtrees that are not leaves to L after generating\ \& maxc nodes\ \&\ \&\ \& .RE .RS 4 \fB\-maxd \fR[0] a producer returns all subtrees that are not leaves at depth maxd\&. Zero if not used .RE .RS 4 \fB\-lmin \fR[3] if job queue |L|\fR[lmin] if job queue |L|>np*lmax then then maxc is replaced by maxc*scale .RE .RS 4 \fB\-scale \fR[100]used by lmax .RE .RS 4 \fB\-hist \fRstore parallelization data in for use by gnuplot, see below .RE .RS 4 \fB\-temp \fR[/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 .RE .RS 4 \fB\-freq \fR store frequency data in for use by gnuplot, see below .RE .RS 4 \fB\-stop \fR terminate mplrs if a file with name is created in the current directory .RE .RS 4 \fB\-checkp \fR if mplrs is terminated by \-stop or \-time then it can be restarted using this and \-restart .RE .RS 4 \fB\-restart \fR restart mplrs using previously created \&. If used with \-checkp file names should be different! .RE .RS 4 \fB\-time \fR terminate mplrs after of elapsed time .RE .RS 4 \fB\-countonly\fR don\*(Aqt output vertices/rays/facets, just count them .RE .RS 4 \fB\-maxbuf \fR[500] controls maximum size of worker output buffers .RE .RS 4 \fB\-stopafter \fR exit after approximately cobases have been computed (no guarantee about how many vertices/rays/facets computed) .RE .RS 4 \fB\-redund\fR perform redundancy check of input file (also see redund ) .RE The parameters \fB\-hist\fR and \fB\-freq\fR give interesting information about the degree of parallelization\&. .SH "EXAMPLE" .PP 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\&. .sp .if n \{\ .RS 4 .\} .nf 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 .fi .if n \{\ .RE .\} .SH "SEE ALSO" .BR lrs (1), .BR lrslib (1)