Mongoose is a graph partitioning library. Currently, Mongoose only supports edge partitioning, but in the future a vertex separator extension will be added.
Prerequisites and Dependencies
Mongoose requires CMake 2.8 and any ISO/IEC 14882:1998 compliant C++ compiler. Mongoose has been tested to work with GNU GCC 4.4+ and LLVM Clang 3.5+ on Linux, and Apple Xcode 6.4+ on macOS.
Mongoose uses CMake. To build Mongoose, follow the commands below:
git clone https://github.com/ScottKolo/Mongoose cd Mongoose make # Builds Mongoose (uses CMake) and runs the demo
Then to install, do
sudo make install
After compilation, the Mongoose demo can be run from the
build directory using
You can use Mongoose in one of three ways:
mongooseexecutable. Once built, the
mongooseexecutable will be located in
build/bin/mongoose. This executable can read a Matrix Market file containing an adjacency matrix and output timing and partitioning information to a plain-text file. Simply call it with the following syntax:
mongoose <MM-input-file.mtx> [output-file]
- The C++ API. A static library is built at
Lib/libmongoose.a. Include the header file
Include/Mongoose.hppand link to this library to access the C++ API.
- The MATLAB API. From MATLAB, navigate to the
Mongoose/MATLAB/directory and build the Mongoose MEX functions by calling
mongoose_make. This will build Mongoose, run a demo, and allows access to the MATLAB API.
For more details about the specific APIs and their available functionality, see the Mongoose user guide located at
The following people have made significant contributions to Mongoose:
- Nuri Yeralan, Microsoft Research
- Scott Kolodziej, Texas A&M University
- Tim Davis, Texas A&M University
- William Hager, University of Florida
Mongoose is licensed under the GNU Public License, version 3. For commercial license inquiries, please contact Dr. Tim Davis at email@example.com. The specific text of the license can be found in