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 [2020/06/05 12:26] lkastnermptopcom [2022/04/11 17:20] – [Authors] schroeter
Line 3: Line 3:
 **mptopcom** is a software developed at TU Berlin and Hokkaido University for computing triangulations of point configurations in parallel. It is a combination of **mptopcom** is a software developed at TU Berlin and Hokkaido University for computing triangulations of point configurations in parallel. It is a combination of
  
-  * **[[http://www.rambau.wm.uni-bayreuth.de/TOPCOM/|TOPCOM]]** for triangulations,+  * **[[https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM/index.html|TOPCOM]]** for triangulations,
   * **[[https://polymake.org/doku.php|polymake]]** for combinatorics, and   * **[[https://polymake.org/doku.php|polymake]]** for combinatorics, and
   * **[[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.
Line 13: Line 13:
 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. 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/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.
  
 **mptopcom** has been tested with several versions, at least 5.3.0, of gcc and clang, at least version 3.8.0. For MPI we have tested openmpi at least version 1.4.1 and Intel MPI 20150128. **mptopcom** has been tested with several versions, at least 5.3.0, of gcc and clang, at least version 3.8.0. For MPI we have tested openmpi at least version 1.4.1 and Intel MPI 20150128.
Line 21: 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.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.2.tar.bz2|mptopcom-1.2.tar.bz2]]
-  * [[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. Note that recent changes in polymake were breaking, so only the second version works with polymake 4.0 and newer.
Line 28: Line 27:
 ==== Old versions ==== ==== Old versions ====
  
 +  * [[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.
   * [[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.   * [[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.
  
Line 51: Line 52:
 --prefix=/path/to/install/dir --prefix=/path/to/install/dir
 </code> </code>
-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 polymakes ''%%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 four 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:
Line 66: Line 67:
 </code> </code>
 ===== Usage ===== ===== Usage =====
-Input files are formatted as in TOPCOM. The points are given homogeneously, i.e. embedded at height one. After the points you can give the generators of a group acting on your point set. Here is the example of the input file for the two-dimensional 0-1-square:+ 
 +Input files are formatted as in TOPCOM, please have a look at the files in the ''%%examples%%'' folder for samples. The points are given homogeneously, i.e. embedded at height one. After the points you can give the generators of a group acting on your point set. Here is the example of the input file for the two-dimensional 0-1-square:
  
 <code> <code>
Line 81: Line 83:
 ] ]
 </code> </code>
-If this file is called ''square.dat'', you can then call mptopcom in the following way:+You can then call mptopcom in the following way: 
 <code> <code>
-mpirun -np 5 mptopcom < square.dat+mpirun -np 5 mptopcom < examples/cube_4.dat
 </code> </code>
-or 
-<code> 
-mptopcom1 < square.dat 
-</code> 
-for the single threaded version. 
- 
-For other examples, please have a look at the files in the ''%%examples%%''. 
- 
 If you did not run ''%%make install%%'' you can call the binary in the ''%%build/Opt/bin%%'' folder: If you did not run ''%%make install%%'' you can call the binary in the ''%%build/Opt/bin%%'' folder:
  
Line 117: Line 112:
 ==== Budgeting options ==== ==== Budgeting options ====
  
-  - ''%%-maxnodes%%'' only affects the "bumpsat maxnodes and scale*maxnodes. +  - ''%%-maxnodes%%'' only affects the bumps” at maxnodes and scale*maxnodes. 
-  - ''%%-scale%%'' sets the scaling factor when we have many jobs available (workers can work longer if we aren't trying to split jobs) +  - ''%%-scale%%'' sets the scaling factor when we have many jobs available (workers can work longer if we arent trying to split jobs) 
-  - ''%%-maxd%%'' sets the max depth to go to when we don't have enough jobs available (2 is the default, which is aggressive. 0 disables)+  - ''%%-maxd%%'' sets the max depth to go to when we dont have enough jobs available (2 is the default, which is aggressive. 0 disables)
   - ''%%-lmax%%'' sets the point where -scale is used (if |L| > lmax * numproc)   - ''%%-lmax%%'' sets the point where -scale is used (if |L| > lmax * numproc)
   - ''%%-lmin%%'' sets the point where -maxd is used (if |L| < lmin * numproc)   - ''%%-lmin%%'' sets the point where -maxd is used (if |L| < lmin * numproc)
Line 168: Line 163:
 ''%%mptopcom1%%'' can output polymake code that one can paste into polymake to obtain the reverse search tree in the edge graph of the secondary polytope. This will not work for large examples, so handle with care. There are three possibilities: ''%%mptopcom1%%'' can output polymake code that one can paste into polymake to obtain the reverse search tree in the edge graph of the secondary polytope. This will not work for large examples, so handle with care. There are three possibilities:
  
-<HTML><ol style="list-style-type: decimal;"></HTML> +  - Give ''%%mptopcom1%%'' an example without symmetry group: 
-<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. 2. Give ''%%mptopcom1%%'' an example with symmetry group: 
-<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. 3. Give ''%%mptopcom1%%'' an example with symmetry group and the parameter make-marked-tree: 
-<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>+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.
  
 ===== Authors ===== ===== Authors =====
Line 191: Line 186:
   * **[[https://www-alg.ist.hokudai.ac.jp/~skip/|Skip Jordan]]**, Laboratory for Algorithmics, Hokkaido University, Japan   * **[[https://www-alg.ist.hokudai.ac.jp/~skip/|Skip Jordan]]**, Laboratory for Algorithmics, Hokkaido University, Japan
   * **[[http://page.math.tu-berlin.de/~joswig/|Michael Joswig]]**, Department of Mathematics, TU Berlin, Germany   * **[[http://page.math.tu-berlin.de/~joswig/|Michael Joswig]]**, Department of Mathematics, TU Berlin, Germany
-  * **[[http://page.math.tu-berlin.de/~kastner/|Lars Kastner]]**, Department of Mathematics, TU Berlin, Germany+  * **[[https://lkastner.github.io/|Lars Kastner]]**, Department of Mathematics, TU Berlin, Germany
  
 **mptopcom** is based on **TOPCOM** which is developed by **mptopcom** is based on **TOPCOM** which is developed by
  • mptopcom.txt
  • Last modified: 2024/03/25 09:05
  • by 127.0.0.1