Below are a few older software projects. For more recent software, please visit TDAlab’s software page.
PaToH (Partitioning Tools for Hypergraph) is a Multilevel Hypergraph Partitioning tool that I developed during my doctoral studies at Bilkent University (1994-1999). It was the fastest hypergraph partitioner when I wrote it, and probably it is still the fastest sequential partitioner today.
Important features of PaToH:
- Fast, stable multilevel hypergraph partitioner,
- Hypergraph partitioning with fixed cells,
- Multi-constraint hypergraph partitioner.
Below you will find the latest binary distributions of PaToH for Linux and Mac OS X.
- Linux: 64-bit x86-based (last update: July 15, 2020)
- Mac OS X: 64-bit x86-based (last update: July 15, 2020) 64-bit ARM-based (last update: August 2, 2022)
Below you will find older binary distributions of PaToH for different architectures.
- Linux: 32-bit x86-based, 64-bit x86-based (latest v3.2: Oct 1, 2019), 64-bit x86-based (Mar 22, 2011)
- Mac OS X 10.6: 32-bit x86-based, 64-bit x86-based (last update: Mar 22, 2011)
- Mac OS X 10.5: 32-bit x86-based, 64-bit x86-based (last update: Dec 11, 2009)
- Linux: 64-bit IA64-based (last update: Nov 24, 2008)
- Mac OS X: 32-bit PowerPC (last update: May 12, 2006)
- Sun Solaris (last update: May 12, 2006)
- IBM AIX (last update: Nov 11, 2004)
Please note that some distributions are not updated as often as the others, if ever. If you are interested in running PaToH on a different/newer platform, please notify me, and I will attempt to prepare a version for your preferred platform provided I have access to it. Each distribution also contains a version of the manual for that specific distribution. Here is the most recent manual in PDF format.
PaToH Matlab Interface:
The aim of the PaToH Matrix Partitioning Interface is to provide sparse matrix partitioning routines in Matlab. The partitioning routines are based on hypergraph models (see related publications below) and use PaToH hypergraph partitioning tool within a mex function. Apart from the mex function routine that builds a hypergraph and calls PaToH, everything else is based on matrices and vectors and implemented in Matlab.
- Aug 2, 2022: Released 64-bit ARM based library, compiled on M1 chip. This is not thoroughly tested, so please let me know if you encounter any problems.
- Jul 15, 2020: Minor fix: removing an unnecessary re-alloc in hypergraph read that caused problem in very large hypergraph.
- May 6, 2020: Minor edits to PaToH Matlab interface to get PaToHSpy working with new Matlab versions.
- May 4, 2020: A minor, and rare, reproducibility bug fixed. Bug only occurred for tiny hypergraphs (less than 100 vertices).
- Nov 7, 2019: v3.3 has major improvement in fixed cell partitioning (average ~20% on my test set).
- Oct 1, 2019: latest v3.2 a rare bug in partitioning with fixed cells is fixed.
- Sep 29, 2019: patoh executable now gives warning when a cell is repeated in the net list and ignores repeated cells.
- Aug 29, 2019: yet another a very minor final output bug: Multi-Constraint partitioning’s final output cut cost was not taking the net weights into account.
- Jun 20, 2019: a very minor corner bug fixed in patoh executable only occurred when k=2 and perfect balance is requested and some nets were filtered with threshold.
- Mar 22, 2011: a new parameter “balance” is added to allow users to relax balance constraints during recursive bisections.
- Mar 13, 2011: v3.2 includes multi-constraint partitioning with non-unit net weights and target part weights. A minor bug fixed in V-cycle for disconnected hypergraphs.
- Oct 28, 2010: A small typo is fixed in Matlab Interface.
- Aug 13, 2010: Matlab Interface license info added.
- Jun 27, 2010: Minor bug fix to improve balance for disconnected hypergraphs.
- May 31, 2010: A new unified interface for regular, multi-constraint and fix-vertex hypergraph partitioning, that also allows user to specify target part weights (ratios).
- Oct 9, 2009: Small load imbalance improvement for partitioning hypergraphs with isolated vertices into non-power of two parts. Also added a cuttype option to PaToH Matlab MEX interface.
- Jun 28, 2009: Matlab Interface is available!
- Nov 24, 2008: Added PaToH_Refine_Bisec to interface.
- May 12, 2006: Fixed the memory alignment on 64-bit libraries, improving the performance significantly on IA64 architectures. Thanks to Duraid Madina for noticing the alignment problem on IA64 and suggesting the fix!
- Jan 10, 2005: Changed the default behavior to continue to partition, with default values, if the chosen algorithm is not implemented in the particular partitioner Also a minor balance improvement was made.
- Nov 11, 2004: Mac OS X distribution has been added.
- Aug 15, 2002: Fixed a couple of small bugs and changed the default values of a few parameters.
- ChapPaToH (Partitioning Tool for Hypergraphs)In Encyclopedia of Parallel Computing, 2011.
- JRNLA matrix partitioning interface to PaToH in MATLABParallel Computing, 2010.
- JRNLOn Two-Dimensional Sparse Matrix Partitioning: Models, Methods, and a RecipeSIAM Journal on Scientific Computing (SISC), 2010.
- ConfA Hypergraph-Partitioning Approach for Coarse-Grain DecompositionIn ACM/IEEE SC2001, 2001.
- ConfA Fine-Grain Hypergraph Model for 2D Decomposition of Sparse MatricesIn Proceedings of 15th International Parallel and Distributed Processing Symposium (IPDPS), 2001.
- PhDHypergraph Models for Sparse Matrix Partitioning and ReorderingPhD thesis, Bilkent University, Computer Engineering and Information Science , 1999.
- JRNLHypergraph-Partitioning Based Decomposition for Parallel Sparse-Matrix Vector MultiplicationIEEE Transactions on Parallel and Distributed Systems, 1999.
- TechPaToH: A Multilevel Hypergraph Partitioning Tool, Version 3.0Bilkent University, Department of Computer Engineering , 1999.
Zoltan, developed and maintained by Sandia National Laboratories, is a toolkit for load balancing and parallel data management. I had the pleasure of collaborating with the Zoltan team. As an outcome of this collaboration we developed a parallel multilevel hypergraph partitioning algorithm, as well as distance-1 and distance-2 coloring algorithms. Zoltan release v2.0 (and later) includes the implementation of these algorithms and its source code is distributed under the GNU Lesser General Public License.
More information and the distribution of Zoltan can be found at the Zoltan project web site.