Hello HN!<p>Six years ago I release a prototype integration of SuiteSparse as a Postgres extension, and it received quite a bit of attention here on HN. Since then I have gotten deeply involved in the GraphBLAS community, sitting on the C API Committee and working with many different implementors and language binding authors, and that experience has changed both the API and my depth of understanding. I picked pggraphblas back up again and have done a complete rewrite applying the lessons learned and most modern techniques to the code and to support the most up to date features of SuiteSparse like JIT compilation, automatic parallelization and GPU support.<p>Like the JSON/JSONB types did for unstructured data, OneSparse makes
dense and sparse matrices and vectors fully native Postgres
types. OneSparse supports optimized, parallel matrix multiplication
and other operations like reduction, selection, assignment,
extraction, elementwise union, and intersection. These methods can be
used for both traditional numeric algebraic computing, or sparse graph
analytics over adjacency and incidence matrices.<p>I often tell people that GraphBLAS is "Technology from the Future" as as the future of computing becomes more computation dense but information sparse, powerful language abstractions like Linear Algebra become even more useful in the hands of scientists, researchers, and programmers who want to express their ideas in high level ways but still be able to target many different architectures like CPUs and GPUs with little or no code changes.<p>We're an open source company and OneSparse is truely open source Postgres extension. We have a fun and exciting list of TODO features at the bottom of our README, so please reach out to us if you feel like contributing to this completely new paradigm for understanding your data and utilizing Linear Algebra!