owned this note
owned this note
Published
Linked with GitHub
# Meeting notes 2023-08-30
Attendees: Erik, Sultan
- catch up on the recent developments, issues/PRs
# Meeting notes 2023-08-09
Attendees: ErikW, JimK, PaulN, William
Paul: we need marketing and advocacy:
- blog posts
- start simple: BFS, SSSP, intro to GraphBLAS
- benchmarks compare to other libraries
- show examples that connect to common use cases
- GNNs, DNNs, anime, like PyTorch stuff
- adopting GraphBLAS in CVXPY? ;)
- PyOpenSci would like a simple blog post
- networkx dispatching example
- recommender systems
- see example notebooks in networkx, cugraph, grblas-recipes
- compare/contrast to scipy.sparse, sparse data that is not graph
- GraphBLAS implementation of CG
- Nixtla wanted to speed up sparse operations
- white papers, JOSS paper, conference paper
- videos
Paul: is there random sampling in GraphBLAS
- See: A.ss.selectk("random", k)
William: looking into using GraphBLAS in CVXPY
- See: A.ss.reshape, A.ss.flatten, gb.ss.concat
- Identity: Vector.from_scalar(1, n).diag()
Short term goals:
- Release `python-graphblas` that support SuiteSparse:GraphBLAS 8
- need to document JIT
- PR is in progress
- anything else?
- Update `graphblas-algorithms` to support NetworkX 3.2
- new `convert_from_nx` coming
- maybe new `can_run`
- PR is in progress (but outdated)
- drop Python 3.8 support
- https://github.com/python-graphblas/python-graphblas/wiki/Drop-support-of-old-Python-version
- any volunteers? ;) (is the documentation sufficient?)
# Meeting notes 2023-07-26
We decided that the agend for next week should include:
- python-graphblas could benefit from a project manager. Who wants to do it? What are our current needs (press/marketing?) that need to be managed?
- PyOpenSci wants a blog post from us.
- What should our icon be?
# Meeting notes 2023-07-12
Present:
Agenda:
- news & announcements;
Previous meetings' agenda (for reference):
- mypy and networkx (potential for a mypy plugin?);
- nx dispatching based on the object data type;
- nx dispatching handling of parameter restrictions for specific implementations;
- closing PRs;
- discussion of PyOpenSci review and actions.
- introductions;
- additional external interest in `mlir-graphblas`;
- discussion of graph viz packages, mentioning https://github.com/paulbrodersen/netgraph, https://github.com/ericmjl/nxviz/.
- discussion of the blog posts;
- feedback from the PyCon posters/conference;
- any PRs to finish before the end of the month (for a new release).
- PyCon poster ready;
- SciPy talk accepted;
- discussion of the PRs and documentation.
- making numba optional is almost ready: https://github.com/python-graphblas/python-graphblas/issues/415;
- mlir bindings merged into conda-forge feedstock: https://github.com/conda-forge/staged-recipes/pull/21954;
- detailed Wiki for python-graphblas with various aspects related to maintenance/release/development: https://github.com/python-graphblas/python-graphblas/wiki;
- discussion of open issues, esp. issues from the [pyos] peer review: https://github.com/python-graphblas/python-graphblas/issues?q=is%3Aissue+is%3Aopen+%5Bpyos%5D;
- rotation of various maintenance duties, e.g. upcoming drop of support for Python 3.8.
- space constraint (wheels are large, ~1 GB), Erik requested 20 GB, discussion of space-optimization strategies;
- poster for PyCon.
- Discussion of the PR on wheels for all OS: https://github.com/python-graphblas/python-graphblas/pull/385
- Improvements in import time https://github.com/python-graphblas/python-graphblas/pull/419
- Optional import of numba: https://github.com/python-graphblas/python-graphblas/issues/415
- Do we want to get on the waiting list for this? https://githubnext.com/projects/copilot-for-pull-requests
- the appropriate format/target audience for '10 minutes to python-graphblas';
- different matrix types or utilities for handling specific matrix types? e.g. incidence matrix, adjacency matrix;
- closed PR on fast matrix market reads (https://github.com/python-graphblas/python-graphblas/pull/391);
- quick update on the tutorial status.
- dealing with self-edges: https://github.com/python-graphblas/python-graphblas/issues/398
- incidence matrix;
- networkx dispatching: proper 'signature' / expectation for the arguments;
- implementing/activating ruff;
- state of wheels: https://github.com/GraphBLAS/python-suitesparse-graphblas/pull/66.
Merged:
- `from_dense` PR merged :tada: (#382)
- added `monoid.is_idempotent` property (#388)
- removed expired `from_scipy_sparse_matrix` and `to_scipy_sparse_matrix` functions (#393)
- misc maintenance (linting, better warning message, fix complex on Windows) (#389, #390, #392, #394)
- started using `MAINT` in code comments as breadcrumbs
- added `ruff` linting to `graphblas-algorithms`
Open:
- fast-matrix-market PR (#391)
- adds `engine="auto"` arguments
- numba 3.11 support is close
- https://github.com/numba/numba/issues/8304
- can we make numba optional?
- LDBC Graphalytics 2023 competition
- based on `graphblas-algorithms`
- may need small tweaks
- try parallelizing with dask
- custom recipes
- `dask-graphblas`
pyOpenSci feedback:
- https://github.com/pyOpenSci/software-submission/issues/81#issuecomment-1424901406
`python-suitesparse-graphblas`:
- Now supports complex values on Windows
- https://github.com/GraphBLAS/python-suitesparse-graphblas/pull/68
- Passes `python-graphblas` tests :tada:
- Automated wheel support PR almost ready
- https://github.com/GraphBLAS/python-suitesparse-graphblas/pull/66
- Bundling OpenMP may cause issues for some users (esp. on macos)
- `python-graphblas` ready to test wheels: https://github.com/python-graphblas/python-graphblas/pull/385
`graphblas-algorithms`:
- Add `{all_pairs,single_source}_bellman_ford_path_length`
- https://github.com/python-graphblas/graphblas-algorithms/pull/44
- `chunksize=`? `nchunks=`? `expand_output=`?
`python-graphblas`:
- `from_dense`, `to_dense`, and `from_iso_value` PR
- https://github.com/python-graphblas/python-graphblas/pull/382
- Is everyone happy with this? Shall we merge?
- Discussion of open PRs:
- https://github.com/python-graphblas/graphblas-algorithms/pull/43
- https://github.com/python-graphblas/python-graphblas/pull/382
- https://github.com/python-graphblas/python-graphblas/pull/380
- no news & announcements;
- feedback on the python-graphblas-algorithms pair programming session;
conversion to a tutorial on how to contribute to the algorithms;
- discussion of the API for creation of sparse matrix/vectors from dense/numpy arrays (https://github.com/python-graphblas/python-graphblas/issues/378).
- discussion on the API for edgelist:
- matrix.from_edgelist: current version;
- vector.from_pairs: accepts python iterable.
- default value of 1.0 (F64);
- alpha release;
- cache: would be good to have a setting (easy/expert), e.g. `A.T` or `offdiag`;
- `python-mlir-graphblas`
## Erik's agenda notes
`python-graphblas`
------------------
- Time to do a release!
- Are open PRs ready/approved?
- `Matrix.from_edgelist`, `Matrix.to_edgelist`, `Vector.from_pairs`
- Default values of 1.0
- Anything else to add?
- Let's do pre-release cycle first
- Erik: if ready, show how to do an alpha release
- Should `split` and `concat` be "vanilla"? https://github.com/python-graphblas/python-graphblas/issues/295
- Maybe discuss (or prepare to discuss next week): https://github.com/python-graphblas/python-graphblas/issues/265
- Documentation efforts?
- See `ruff` ignored codes in pyproject.toml
- Would love to see more examples in docstrings
- Would also like to run doctests on docstring examples
- Can we make the README or landing page more attractive?
- Erik: demonstrate how to add new method to objects
- Erik: I'm thinking about creating `cython-suitesparse-graphblas`
- How natural can it be to use GraphBLAS from Cython?
- Should we remove outputs from notebooks in repo?
`graphblas-algorithms`
----------------------
- Should we cache matrices? https://github.com/python-graphblas/graphblas-algorithms/pull/40
- (tangent: zero-copy examples with `strided` https://github.com/eriknw/strided/tree/main/strided/tests)
- Group "pair" programming next Monday!
- Floyd-Warshall
- Compare to `scipy.sparse.csgraph`
- Interesting APSP: https://dl.acm.org/doi/pdf/10.1145/3332466.3374533
`dask-graphblas`
----------------
- What needs done to complete name change and do a release?
- Progress towards distributed PageRank?
- What is the threshold for releasing?
- Run with latest `python-graphblas` and runs PageRank?
`python-mlir-graphblas`
-----------------------
- Hey there, what's up?
Other
-----
- Add NetworkX dispatching meeting to https://scientific-python.org/calendars/?
- To add, make PR here: https://github.com/scientific-python/scientific-python.org
- Also add `python-graphblas` meeting there?
- Blog post ideas?
- Other advocacy efforts?
PyCon US
--------
- April 19-27
- GraphBLAS poster
PyData Seattle
--------------
- April 26-28
- CFP due Feb 6
GrAPL
-----
- May 15
- Paper due Feb 1
- We typically get 5 minutes to talk
- Virtual and in St. Petersburg, Florida (who is going?)
SciPy
-----
- July 10-16
- CFP due Feb 22
- NetworkX + Backends tutorial?
- GraphBLAS tutorial (w/ Tim, Scott, and Gabor?)
- Talks?
HPEC
----
- September 25-29
Scientific Python Sparse Summit #2
----------------------------------
- TBD