mptopcom

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
mptopcom [2018/03/22 12:06] – Other mpi is just as good lkastnermptopcom [2020/02/07 11:21] – external edit 127.0.0.1
Line 7: Line 7:
   * **[[http://cgm.cs.mcgill.ca/~avis/doc/tutorial.html|mts]]** for parallelising reverse search.   * **[[http://cgm.cs.mcgill.ca/~avis/doc/tutorial.html|mts]]** for parallelising reverse search.
  
-Please see our **[[https://arxiv.org/abs/1709.04746|arXiv article]]** for further details on the algorithms.+Our **[[https://www.combinatorics.org/ojs/index.php/eljc/article/view/v25i3p6|paper]]** describes the algorithm and contains many details as well as examples. Please cite this reference in your papers if you are using mptopcom.
  
 ===== Prerequisites ===== ===== Prerequisites =====
 +
 +Please read this very carefully! mptopcom is highly optimized software dedicated to exceptionally large enumerations on suitable hardware. As a consequence it depends on a number of up-to-date-versions of other software, and the installation requires some diligence.
  
 You need to have **[[https://www.open-mpi.org/|open-mpi]]** or some other mpi implementation and **[[https://polymake.org/doku.php|polymake]]** version at least 3.2 installed. In particular, you need the **[[https://polymake.org/doku.php/reference/callable|polymake callable library]]**, which might not be installed by the package manager of your distribution. Furthermore, you need an installation of **[[https://www.inf.ethz.ch/personal/fukudak/cdd_home/|cdd]]**, the bundled version coming with polymake does not build the cdd library. You need to have **[[https://www.open-mpi.org/|open-mpi]]** or some other mpi implementation and **[[https://polymake.org/doku.php|polymake]]** version at least 3.2 installed. In particular, you need the **[[https://polymake.org/doku.php/reference/callable|polymake callable library]]**, which might not be installed by the package manager of your distribution. Furthermore, you need an installation of **[[https://www.inf.ethz.ch/personal/fukudak/cdd_home/|cdd]]**, the bundled version coming with polymake does not build the cdd library.
Line 19: Line 21:
 Here are download links to tarballs containing the sources of **mptopcom**: Here are download links to tarballs containing the sources of **mptopcom**:
  
-  * [[https://polymake.org/lib/exe/fetch.php/download/mptopcom-1.0.tar.bz2|mptopcom-1.0.tar.bz2]]+  * [[https://polymake.org/lib/exe/fetch.php/download/mptopcom-1.1.tar.bz2|mptopcom-1.1.tar.bz2]] from 2019-05-29 for polymake versions before 4.0. 
 +  * [[https://polymake.org/lib/exe/fetch.php/download/mptopcom-1.1_polymake4.0.tar.bz2|mptopcom-1.1_polymake4.0.tar.bz2]] from 2020-02-07 for polymake versions after 4.0. 
 + 
 +Note that recent changes in polymake were breaking, so only the second version works with polymake 4.0 and newer. 
 + 
 +==== Old versions ==== 
 + 
 +  * [[https://polymake.org/lib/exe/fetch.php/download/mptopcom-1.0r2.tar.bz2|mptopcom-1.0r2.tar.bz2]] from 2018-05-14 with a bugfix for newer polymake.
  
 ===== Installation ===== ===== Installation =====
Line 44: Line 53:
 The configure command will extract most of the information needed from polymake's ''%%polymake-config%%'' command. The configure command will extract most of the information needed from polymake's ''%%polymake-config%%'' command.
  
-The binaries are in the ''%%build/Opt/bin%%'' folder after building and in the ''%%prefix/bin%%'' folder after installation. Besides the usual **TOPCOM** binaries there are two new binaries:+The binaries are in the ''%%build/Opt/bin%%'' folder after building and in the ''%%prefix/bin%%'' folder after installation. Besides the usual **TOPCOM** binaries there are four new binaries:
  
   * **mptopcom1**: Runs reverse search single threaded.   * **mptopcom1**: Runs reverse search single threaded.
   * **mptopcom**: Multithreaded reverse search.   * **mptopcom**: Multithreaded reverse search.
 +  * **canonicalRepresentative**: Compute the canonical representative from the orbit of a triangulation.
 +  * **randomBFS**: Execute a random breadth first search on the flip-graph of triangulations, only reports the queue sizes.
  
 You can test your build by running the testsuite: You can test your build by running the testsuite:
Line 56: Line 67:
 ===== Usage ===== ===== Usage =====
  
-Input files are formated as in TOPCOM, please have a look at the files in the ''%%examples%%'' folder for samples. You can then call mptopcom in the following way:+Input files are formatted as in TOPCOM, please have a look at the files in the ''%%examples%%'' folder for samples. You can then call mptopcom in the following way:
  
 <code> <code>
Line 72: Line 83:
 ==== Options ==== ==== Options ====
  
-  - ''%%-F%%'' : Only list full/fine/spanning triangulations +  - ''%%--cyclic-flips%%'' : Use special combinatorial description of the reverse search graph for cyclic polytopes 
-  - ''%%--flip_cache n%%'' : Sets size of flip cache to n (default: 50+  - ''%%--full%%'' : Only list full/fine/spanning triangulations 
-  - ''%%--make_marked_tree%%'' : Draws a tree with classes having the same node color (''%%mptopcom1%%'' only) +  - ''%%--flip-cache n%%'' : Sets size of flip cache to n (default: 2000
-  - ''%%--make_tree%%'' : Will produce polymake code to plot reverse search tree (''%%mptopcom1%%'' only)+  - ''%%--make-marked-tree%%'' : Draws a tree with classes having the same node color (''%%mptopcom1%%'' only) 
 +  - ''%%--make-tree%%'' : Will produce polymake code to plot reverse search tree (''%%mptopcom1%%'' only
 +  - ''%%--orbit-cache n%%'' : Size of symmetry cache set to n (default: 2000)
   - ''%%--regular%%'' : Only output regular triangulations   - ''%%--regular%%'' : Only output regular triangulations
-  - ''%%--symmetry_cache n%%'' : Size of symmetry cache set to n (default: 50)+  - ''%%--regularity-cache n%%'' : Size of regularity cache set to n (default: 2000)
   - ''%%-v%%'' : verbose (every worker will tell when he found 1000 triangulations)   - ''%%-v%%'' : verbose (every worker will tell when he found 1000 triangulations)
 +  - ''%%--central%%'' : Produce only triangulations with maximal gkz[0], depends on ordering of points
  
 ==== Budgeting options ==== ==== Budgeting options ====
Line 103: Line 117:
 ./build/Opt/bin/mptopcom1 -v < examples/moae.dat ./build/Opt/bin/mptopcom1 -v < examples/moae.dat
 ./build/Opt/bin/mptopcom1 -v --regular < examples/moae.dat ./build/Opt/bin/mptopcom1 -v --regular < examples/moae.dat
-./build/Opt/bin/mptopcom1 -v --regular -< examples/moae.dat +./build/Opt/bin/mptopcom1 -v --regular --full < examples/moae.dat 
-./build/Opt/bin/mptopcom1 -v --flip_cache 2000 --symmetry_cache 2000 < examples/moae.dat +./build/Opt/bin/mptopcom1 -v --flip-cache 2000 --orbit-cache 2000 < examples/moae.dat 
-./build/Opt/bin/mptopcom1 -v --make_tree < examples/moae.dat+./build/Opt/bin/mptopcom1 -v --make-tree < examples/moae.dat
 </code> </code>
 ==== mptopcom ==== ==== mptopcom ====
Line 114: Line 128:
 mpirun -np 8 ./build/Opt/bin/mptopcom --regular < examples/cube_4.dat mpirun -np 8 ./build/Opt/bin/mptopcom --regular < examples/cube_4.dat
 mpirun -np 10 ./build/Opt/bin/mptopcom < examples/lattice_3_3.dat mpirun -np 10 ./build/Opt/bin/mptopcom < examples/lattice_3_3.dat
-mpirun -np 10 ./build/Opt/bin/mptopcom -< examples/lattice_3_3.dat +mpirun -np 10 ./build/Opt/bin/mptopcom --full < examples/lattice_3_3.dat 
-mpirun -np 10 ./build/Opt/bin/mptopcom ---flip_cache 2000 --symmetry_cache 2000 < examples/lattice_3_3.dat+mpirun -np 10 ./build/Opt/bin/mptopcom --full --flip-cache 2000 --orbit-cache 2000 < examples/lattice_3_3.dat
 mpirun -np 10 ./build/Opt/bin/mptopcom < examples/lattice_3_3.dat 1>output.txt 2>error.txt mpirun -np 10 ./build/Opt/bin/mptopcom < examples/lattice_3_3.dat 1>output.txt 2>error.txt
 </code> </code>
Line 136: Line 150:
 <HTML><li></HTML><HTML><p></HTML>Give ''%%mptopcom1%%'' an example without symmetry group:<HTML></p></HTML> <HTML><li></HTML><HTML><p></HTML>Give ''%%mptopcom1%%'' an example without symmetry group:<HTML></p></HTML>
 <code> <code>
-./build/Opt/bin/mptopcom1 --make_tree < mp_examples/nosym/moae.dat+./build/Opt/bin/mptopcom1 --make-tree < mp_examples/nosym/moae.dat
 </code> </code>
 This will just draw all nodes in the same color and the edges between them that the reverse search used.<HTML></li></HTML> This will just draw all nodes in the same color and the edges between them that the reverse search used.<HTML></li></HTML>
 <HTML><li></HTML><HTML><p></HTML>Give ''%%mptopcom1%%'' an example with symmetry group:<HTML></p></HTML> <HTML><li></HTML><HTML><p></HTML>Give ''%%mptopcom1%%'' an example with symmetry group:<HTML></p></HTML>
 <code> <code>
-./build/Opt/bin/mptopcom1 --make_tree < examples/moae.dat+./build/Opt/bin/mptopcom1 --make-tree < examples/moae.dat
 </code> </code>
 Now just the canonical representatives are drawn and the edges between them come from the reverse search, but they do not have to correspond to edges of the secondary polytope, since there can be a flip between classes of triangulations, while there is no flip between the canonical representatives.<HTML></li></HTML> Now just the canonical representatives are drawn and the edges between them come from the reverse search, but they do not have to correspond to edges of the secondary polytope, since there can be a flip between classes of triangulations, while there is no flip between the canonical representatives.<HTML></li></HTML>
-<HTML><li></HTML><HTML><p></HTML>Give ''%%mptopcom1%%'' an example with symmetry group and the parameter --make_marked_tree:<HTML></p></HTML>+<HTML><li></HTML><HTML><p></HTML>Give ''%%mptopcom1%%'' an example with symmetry group and the parameter --make-marked-tree:<HTML></p></HTML>
 <code> <code>
-./build/Opt/bin/mptopcom1 --make_marked_tree  < examples/moae.dat+./build/Opt/bin/mptopcom1 --make-marked-tree  < examples/moae.dat
 </code> </code>
 <HTML><p></HTML>This call will make ''%%mptopcom1%%'' ignore the symmetry group. So the node number and the edges are the same as in 1. However, the tree generating procedure will use the symmetry group to color nodes according to their class membership.<HTML></p></HTML><HTML></li></HTML><HTML></ol></HTML> <HTML><p></HTML>This call will make ''%%mptopcom1%%'' ignore the symmetry group. So the node number and the edges are the same as in 1. However, the tree generating procedure will use the symmetry group to color nodes according to their class membership.<HTML></p></HTML><HTML></li></HTML><HTML></ol></HTML>
Line 164: Line 178:
 ===== License ===== ===== License =====
  
-**mptopcom** is licensed under the **[[https://www.gnu.org/licenses/gpl.html|GNU General Public License version 3]]**. **TOPCOM** is licensed under the **[[https://www.gnu.org/licenses/old-licenses/gpl-2.0.html|GNU General Public License version 2]]**, but allows redistributing its code under newer versions of the GPL. +**mptopcom** is licensed under the **[[https://www.gnu.org/licenses/gpl.html|GNU General Public License version 3]]**. **mptopcom** is based on **TOPCOM**, which is licensed under the **[[https://www.gnu.org/licenses/old-licenses/gpl-2.0.html|GNU General Public License version 2]]**, but allows redistributing its code under newer versions of the GPL. For configuring and installing **mptopcom** contains perl scripts from **polymake** that have been adapted to the setting of **mptopcom**. **polymake** is licensed under the **[[https://www.gnu.org/licenses/old-licenses/gpl-2.0.html|GNU General Public License version 2]]**, but allows redistributing its code under newer versions of the GPL.
- +
-This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. +
- +
-This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.+
  
-You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA+See the files ''%%COPYING%%'' and ''%%LICENSE%%'' in the source for further details.
  
  
  • mptopcom.txt
  • Last modified: 2024/06/14 09:59
  • by lkastner