HottTopixx is a new approach for nonnegative matrix factorization (NMF). Matrix factorization can be difficult on large datasets because most algorithms are not easily parallelizable. HottTopixx uses a new approach for NMF which is highly parallel which allows it to run on these larger datasets.

We have two implementations of HottTopixx available. We recommend you download Hogwild! which includes an implementation of HottTopixx. The Hogwild! release is well documented and easy to modify or extend. It is recommended for common use.

The release included on this page is the experimental version of HottTopixx; this is this code and datasets used to conduct the experiments for the HottTopixx paper, linked blow. This experimental version is more difficult to use and modify.

HottTopixx is currently maintained by Victor Bittorf. Any bug reports or questions can be sent to (lastname) at cs dot wisc dot edu.

Code and Experiments

This is the implementation of HottTopixx used to conduct the experiments for our publication. This version of HottTopixx is designed for machines with multiple processor sockets and large L3 caches. The performance of this release can be sensitive to cache size and may require some configuration. The source code and the datasets can be downloaded here:

Experimental Code and Data (1.4GB)

(last updated: 7/30/2012)

After downloading and unpacking, you can follow the instructions in README. As a quick guide, follow the following steps to run the experiments:

  1. Download and unpack on a linux machine with g++ or icpc
  2. If using icpc (Intel's complier), modify the Makefile to point to the complier; Otherwise the default will be g++.
  3. Run "make", which will build binaries in the directory "bin".
  4. Execute the examples listed in the EXAMPLES file


Victor Bittorf, Benjamin Recht, Christopher Ré, Joel Tropp Factoring nonnegative matrices with linear programs. Published on Optimization Online.