Graph Coarsening and Partitioning Library
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CMake Clean up and test renaming Aug 15, 2016
Demo Add removed matrices back into the demo (except troll.mtx) Jul 4, 2018
Doc Merge branch 'edgesep' of https://github.com/ScottKolo/Mongoose into … Jul 9, 2018
Executable Major version (2.0) API update Jun 30, 2018
External/mmio Remove unused MMIO code Mar 24, 2018
Include Add additional constructor for making a graph from a matrix Jul 9, 2018
Lib version updates; ssget Jul 5, 2018
MATLAB version updates; ssget Jul 5, 2018
Matrix Add removed matrices back into the demo (except troll.mtx) Jul 4, 2018
Source Add additional constructor for making a graph from a matrix Jul 9, 2018
SuiteSparse_config fix date (july 4 to 5) Jul 5, 2018
Tests Add top-level makefile and change build directory from _build -> build Jul 4, 2018
Version Refactor automatic versioning/timestamp Jul 6, 2018
build version updates; ssget Jul 5, 2018
.clang-format Reformat source code using clang-format Apr 8, 2018
.gitignore version updates; ssget Jul 5, 2018
.travis.yml Modify Travis CI script (build directory already exists) Jul 5, 2018
CMakeLists.txt Add executable install to build Jul 9, 2018
CONTRIBUTING.md Fix typo in link to CLA May 15, 2018
Makefile Add top-level makefile and change build directory from _build -> build Jul 4, 2018
README.md hyperlink fix Nov 5, 2018
codecov.yml Remove Mongoose_Conditioning (No longer used) Nov 11, 2016
codemeta.json Refactor automatic versioning/timestamp Jul 6, 2018

README.md

Mongoose

Build Status codecov

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.

Installation

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 ./bin/demo.

Usage

You can use Mongoose in one of three ways:

  1. The mongoose executable. Once built, the mongoose executable 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]
  2. The C++ API. A static library is built at Lib/libmongoose.a. Include the header file Include/Mongoose.hpp and link to this library to access the C++ API.
  3. 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 Doc/Mongoose_UserGuide.pdf.

Credits

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

License

Mongoose is licensed under the GNU Public License, version 3. For commercial license inquiries, please contact Dr. Tim Davis at davis@tamu.edu. The specific text of the license can be found in Doc/License.txt.