# 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