pymetis
A Python wrapper around Metis, a graph partitioning package
Science Score: 64.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
7 of 18 committers (38.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.9%) to scientific vocabulary
Keywords from Contributors
multidimensional-arrays
pycuda
closember
code-generation
isl
loop-optimization
polyhedral-model
mesh
interpretability
sequences
Last synced: 6 months ago
·
JSON representation
·
Repository
A Python wrapper around Metis, a graph partitioning package
Basic Info
- Host: GitHub
- Owner: inducer
- License: other
- Language: C
- Default Branch: main
- Homepage: http://mathema.tician.de/software/pymetis
- Size: 5.14 MB
Statistics
- Stars: 186
- Watchers: 3
- Forks: 33
- Open Issues: 6
- Releases: 7
Created over 14 years ago
· Last pushed 6 months ago
Metadata Files
Readme
License
Citation
README.rst
PyMetis: A Python Wrapper for METIS
===================================
.. image:: https://gitlab.tiker.net/inducer/pymetis/badges/main/pipeline.svg
:alt: Gitlab Build Status
:target: https://gitlab.tiker.net/inducer/pymetis/commits/main
.. image:: https://github.com/inducer/pymetis/workflows/CI/badge.svg?branch=main
:alt: Github Build Status
:target: https://github.com/inducer/pymetis/actions?query=branch%3Amain+workflow%3ACI
.. image:: https://badge.fury.io/py/PyMetis.png
:alt: Python Package Index Release Page
:target: https://pypi.org/project/pymetis/
.. image:: https://zenodo.org/badge/2199177.svg
:alt: Zenodo DOI for latest release
:target: https://zenodo.org/badge/latestdoi/2199177
PyMetis is a Python wrapper for the `Metis
`_ graph partitioning software
by George Karypis, Vipin Kumar and others. It includes version 5.1.0 of Metis
and wraps it using the `Pybind11 `_
wrapper generator library. So far, it only wraps the most basic graph
partitioning functionality (which is enough for my current use), but extending
it in case you need more should be quite straightforward. Using PyMetis to
partition your meshes is really easy--essentially all you need to pass into
PyMetis is an adjacency list for the graph and the number of parts you would
like.
Links
-----
* `Documentation `__ (read how things work)
* `Conda Forge `_ (download binary packages for Linux, macOS, Windows)
* `Python package index `_ (download releases)
* `C. Gohlke's Windows binaries `_ (download Windows binaries)
* `Github `_ (get latest source code, file bugs)
Installation
------------
The following line should do the job::
pip install pymetis
Quick Start
-----------
This graph, adapted from Figure 2 of the Metis
`manual `_ to
use zero-based indexing,
.. image:: doc/_static/tiny_01.png
can be defined and partitioned into two graphs with
.. code:: python
import numpy as np
import pymetis
adjacency_list = [np.array([4, 2, 1]),
np.array([0, 2, 3]),
np.array([4, 3, 1, 0]),
np.array([1, 2, 5, 6]),
np.array([0, 2, 5]),
np.array([4, 3, 6]),
np.array([5, 3])]
n_cuts, membership = pymetis.part_graph(2, adjacency=adjacency_list)
# n_cuts = 3
# membership = [1, 1, 1, 0, 1, 0, 0]
nodes_part_0 = np.argwhere(np.array(membership) == 0).ravel() # [3, 5, 6]
nodes_part_1 = np.argwhere(np.array(membership) == 1).ravel() # [0, 1, 2, 4]
.. image:: doc/_static/tiny_01_partitioned.png
Owner
- Name: Andreas Klöckner
- Login: inducer
- Kind: user
- Location: Champaign, IL
- Company: Scientific Computing, CS@UIUC
- Website: http://andreask.cs.illinois.edu/aboutme
- Repositories: 225
- Profile: https://github.com/inducer
Citation (CITATION.cff)
cff-version: 1.1.0 message: "If you use this software, please cite it as below." authors: - family-names: "Kloeckner" given-names: "Andreas" orcid: "https://orcid.org/0000-0003-1228-519X" - family-names: Wala given-names: Matt - family-names: Hartland given-names: Nathan - family-names: Danial given-names: Albert - family-names: Obermeyer given-names: Fritz - family-names: Wu given-names: Cathy - family-names: Gohlke given-names: Christoph title: PyMetis version: "2022.1" date-released: 2022-07-23 url: "https://github.com/inducer/pymetis" doi: 10.5281/zenodo.6892213 license: MIT
GitHub Events
Total
- Release event: 4
- Watch event: 27
- Delete event: 15
- Issue comment event: 2
- Push event: 21
- Pull request review comment event: 1
- Pull request review event: 2
- Pull request event: 31
- Create event: 19
Last Year
- Release event: 4
- Watch event: 27
- Delete event: 15
- Issue comment event: 2
- Push event: 21
- Pull request review comment event: 1
- Pull request review event: 2
- Pull request event: 31
- Create event: 19
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Andreas Kloeckner | i****m@t****t | 146 |
| dependabot[bot] | 4****] | 29 |
| Alexandru Fikl | a****l@g****m | 14 |
| Matt Wala | w****1@i****u | 8 |
| Nathan Hartland | n****n@p****v | 8 |
| AlDanial | a****l@g****m | 4 |
| Andreas Kloeckner | k****r@h****u | 3 |
| Fritz Obermeyer | f****r@g****m | 3 |
| An Wang | a****9@g****m | 1 |
| Cathy Wu | c****u@e****u | 1 |
| Christoph Gohlke | c****e@u****u | 1 |
| Kevin Dugan | d****n@g****m | 1 |
| Zexx | z****2@i****u | 1 |
| Zhichao @surface | h****0@f****m | 1 |
| Andreas Stock | a****k@d****u | 1 |
| Andreas Kloeckner | k****r@h****u | 1 |
| Andreas Kloeckner | k****r@h****) | 1 |
| zhf-0 | h****4@g****m | 1 |
Committer Domains (Top 20 + Academic)
illinois.edu: 2
haamster.(none): 1
homer.dam.brown.edu: 1
dam.brown.edu: 1
foxmail.com: 1
uci.edu: 1
eecs.berkeley.edu: 1
hpcgeek.ccv.brown.edu: 1
pseudorandom.dev: 1
tiker.net: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 22
- Total pull requests: 75
- Average time to close issues: 4 months
- Average time to close pull requests: 5 days
- Total issue authors: 22
- Total pull request authors: 16
- Average comments per issue: 2.5
- Average comments per pull request: 0.77
- Merged pull requests: 69
- Bot issues: 0
- Bot pull requests: 34
Past Year
- Issues: 1
- Pull requests: 31
- Average time to close issues: about 4 hours
- Average time to close pull requests: about 5 hours
- Issue authors: 1
- Pull request authors: 3
- Average comments per issue: 2.0
- Average comments per pull request: 0.1
- Merged pull requests: 30
- Bot issues: 0
- Bot pull requests: 24
Top Authors
Issue Authors
- MojGGG (1)
- ChenNie99 (1)
- zhiyuan8 (1)
- fabiodelogu (1)
- cathywu (1)
- stoiver (1)
- zbskii (1)
- mrjoelc (1)
- fritzo (1)
- RongqinChen (1)
- nishraptor (1)
- mbbatukan (1)
- menouarazib (1)
- GhislainViguier (1)
- ylhsieh (1)
Pull Request Authors
- dependabot[bot] (56)
- inducer (22)
- alexfikl (5)
- nhartland (3)
- mattwala (2)
- fritzo (2)
- stoiver (1)
- hanzhichao2000 (1)
- cgohlke (1)
- kevindugan (1)
- zexxzhao (1)
- cathywu (1)
- AlDanial (1)
- zhf-0 (1)
- anwang2009 (1)
Top Labels
Issue Labels
bug (4)
enhancement (2)
Pull Request Labels
dependencies (56)
github_actions (10)
Dependencies
requirements.txt
pypi
- meshpy *
- numpy *
- pybind11 *
pyproject.toml
pypi