|
| 1 | +Minutes, Oct 8, 2025 |
| 2 | + |
| 3 | + * agenda: |
| 4 | + |
| 5 | + - assign one or more algorithms or utilities to everyone for review |
| 6 | + (see below) |
| 7 | + |
| 8 | + - new GraphBLAS features (review GxB API): |
| 9 | + |
| 10 | + - printing of user-defined types |
| 11 | + |
| 12 | + - GPU: getting close to production for a few internal kernels |
| 13 | + |
| 14 | + - C<C> = ... some uses require M=C to be copied, then do C<M>=... |
| 15 | + kernels that can be done without the copy, where C is aliased |
| 16 | + with M or A: |
| 17 | + |
| 18 | + (1) C<C,struct> = scalar, in SSGrB for a long time; |
| 19 | + C becomes iso-valued. |
| 20 | + |
| 21 | + (2) C<C,struct> += A, now takes O(nnz(A)*log(n)) time, at most. |
| 22 | + C can have zombies. No new entries added to C and |
| 23 | + no entries deleted. To appear in v10.2.0. |
| 24 | + |
| 25 | + - possible new features, to exploit C==M and/or C==A aliasing: |
| 26 | + |
| 27 | + These 2 kernels are in FalkorDB which I don't have a special |
| 28 | + case: |
| 29 | + |
| 30 | + (3) C<!M,struct,replace> = C, which I think only does |
| 31 | + deletions; my current assign kernels might be OK. |
| 32 | + Always followed by a GrB_wait. |
| 33 | + |
| 34 | + (4) C<M,struct>=M, which only does additions in FalkorDB |
| 35 | + but could do updates to existing entries in C in |
| 36 | + general. my current assign kernels might be OK. |
| 37 | + Always followed by a GrB_wait. |
| 38 | + |
| 39 | + other possible aliases to exploit: |
| 40 | + |
| 41 | + (5) C<C,struct> = A, can lead to updates or deletions |
| 42 | + |
| 43 | + (6) C<A,struct> += A, possibly with replace |
| 44 | + |
| 45 | + (7) C<!M, struct> += M, possibly with replace |
| 46 | + |
| 47 | + Are these cases important to LAGraph, python-graphblas, |
| 48 | + FalkorDB, etc? |
| 49 | + |
| 50 | +-------------------------------------------------------------------------------- |
| 51 | + |
| 52 | + consider these methods for src. Minor revisions needed in some of them, |
| 53 | + including API revisions: |
| 54 | + |
| 55 | + LAGr_BreadthFirstSearch_Extended.c: uses LG_: |
| 56 | + LG_BreadthFirstSearch_SSGrB_Extended.c |
| 57 | + LG_BreadthFirstSearch_vanilla_Extended.c |
| 58 | + LAGr_PeerPressureClustering.c |
| 59 | + LAGraph_AllKCore.c: need both basic & adv methods; this is mixed |
| 60 | + LAGraph_AllKTruss.c |
| 61 | + LAGraph_HITS.c |
| 62 | + LAGraph_Hdip_Fiedler.c: needs lots of polish |
| 63 | + LAGraph_KCore.c: need both basic & adv |
| 64 | + LAGraph_KTruss.c |
| 65 | + LAGraph_MaximalIndependentSet.c: rename LAGr_, need a basic method |
| 66 | + LAGraph_SquareClustering.c |
| 67 | + LAGraph_VertexCentrality_Triangle.c |
| 68 | + LAGraph_coloring_MIS.c |
| 69 | + LAGraph_coloring_independent_set.c |
| 70 | + LAGraph_lcc.c |
| 71 | + LAGraph_cdlp.c: use Container methods |
| 72 | + |
| 73 | + abandon the need for vanilla methods and just return GrB_NOT_IMPLEMENTED |
| 74 | + if not using SuiteSparse/GraphBLAS.h. |
| 75 | + |
| 76 | + LAGr_EdgeBetweennessCentrality.c |
| 77 | + LAGr_MarkovClustering.c (but see latest issue posted) |
| 78 | + LAGr_Modularity.c |
| 79 | + LAGr_PartitionQuality.c |
| 80 | + LAGr_SwapEdges.c |
| 81 | + LAGraph_SwapEdges.c |
| 82 | + LAGraph_CFL_reachability.c |
| 83 | + LAGraph_EstimateDiameter.c |
| 84 | + LAGraph_ExactDiameter.c |
| 85 | + LAGraph_FastGraphletTransform.c |
| 86 | + LAGraph_KCoreDecompose.c |
| 87 | + LAGraph_MultiSourceBFS.c |
| 88 | + LAGraph_RegularPathQuery.c |
| 89 | + LAGraph_RichClubCoefficient.c |
| 90 | + LAGraph_scc.c |
| 91 | + LG_CC_FastSV5.c |
| 92 | + LG_CC_FastSV7_FA.c |
| 93 | + |
| 94 | + Algorithms need work: |
| 95 | + |
| 96 | + LAGr_MaxFlow.c (need to provide output R matrix? And flow_matrix is |
| 97 | + expensive to compute; revise) |
| 98 | + LAGraph_argminmax.c |
| 99 | + LAGraph_msf.c |
| 100 | + LAGraph_BF_*.c: need just one variant |
| 101 | + |
| 102 | + need new LAGraph_Graph enums: |
| 103 | + |
| 104 | + LAGraph_MaximalMatching.c: need LAGraph_Graph incidence matrix |
| 105 | + LAGraph_Coarsen_Matching.c: need LAGraph_Graph incidence matrix, |
| 106 | + and vanilla method |
| 107 | + LAGr_MaximumMatching.c: need to switch to Container methods; |
| 108 | + need LAGraph_Graph bipartite graph, and vanilla method |
| 109 | + LAGraph_cc_lacc.c: unsure |
| 110 | + |
| 111 | + do not consider: |
| 112 | + |
| 113 | + LAGr_PageRankGX.c: for LDBC benchmarks only |
| 114 | + LAGr_TriangleCount_GPU.c: for testing draft GPU kernels only |
| 115 | + LAGraph_dnn.c: for an IEEE HPEC Graph Challenge only |
| 116 | + LAGraph_HelloWorld.c: will always be experimental |
| 117 | + LAGraph_cdlp_withsort.c: OK, but slow, see LAGraph_cdlp instead |
| 118 | + |
0 commit comments