Skip to content

Files

Mongoose

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Dec 13, 2023
Dec 23, 2023
Jun 20, 2024
Jan 4, 2024
Sep 7, 2022
Jun 20, 2024
Jun 13, 2024
Oct 19, 2019
Dec 4, 2023
Dec 23, 2023
Jun 11, 2024
Oct 19, 2019
Jun 20, 2023
Oct 19, 2019
Oct 20, 2019
Oct 20, 2019
Jun 20, 2024
Oct 19, 2019
Jan 23, 2024
Jun 11, 2023
Oct 19, 2019
Jun 20, 2024

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 as libmongoose.a, and the dynamlic library libmongoose.so (for Linux; other OS's use different names). 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.

Mongoose Graph Partitioning Library, Copyright (C) 2017-2018, Scott P. Kolodziej, Nuri S. Yeralan, Timothy A. Davis, William W. Hager.

SPDX-License-Identifier: GPL-3.0-only