File: README.md

package info (click to toggle)
suitesparse 1%3A7.10.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 254,920 kB
  • sloc: ansic: 1,134,743; cpp: 46,133; makefile: 4,875; fortran: 2,087; java: 1,826; sh: 996; ruby: 725; python: 495; asm: 371; sed: 166; awk: 44
file content (59 lines) | stat: -rw-r--r-- 2,762 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Mongoose

[![Build Status](https://travis-ci.com/ScottKolo/Mongoose.svg?token=EK93uAGLjknx2p216TUE&branch=edgesep)](https://travis-ci.com/ScottKolo/Mongoose) [![codecov](https://codecov.io/gh/ScottKolo/Mongoose/branch/edgesep/graph/badge.svg?token=s3KMuP6lOp)](https://codecov.io/gh/ScottKolo/Mongoose)


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:

```shell
git clone https://github.com/ScottKolo/Mongoose
cd Mongoose
make         # Builds Mongoose (uses CMake) and runs the demo
```

Then to install, do

```shell
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`](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`](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