
Monoids and Differential Dataflow - pplonski86
https://github.com/frankmcsherry/blog/blob/master/posts/2019-02-09.md
======
yaseer
If you're interested in the mathematics underpinning parallel models of
computing, and their relation to dependency graphs, I recommend looking at
'trace theory'. It's built on the abstract algebra of trace monoids.

Trace theory seems to have fallen out of academic fashion. I have a feeling it
may have a resurgence of interest in coming decades, as it is useful for
analysing concurrent systems.

~~~
crb002
Volker Diekert, Yves Metivier, "Partial Commutation and Traces
[https://pdfs.semanticscholar.org/d67a/c4c1e5967f7e114f390245...](https://pdfs.semanticscholar.org/d67a/c4c1e5967f7e114f390245f28909f259c034.pdf)

~~~
agumonkey
I think I recall LaBRI being fond of infinite trees for logic programming too.
I like trees. I never saw the paper you linked so thanks a lot.

------
anoncept
I am a happy user of differential dataflow (DD), which has been great for
simplifying an app that I care about.

The app in question already includes a form of the connected components
computation Frank is describing improvements to in this post so I’m excited to
see whether these ideas help make things work even better.

Finally, if you’re interested in the original foundations underlying the
underlying library, check out “Foundations of Differential Dataflow”, Abadi,
McSherry, and Plotkin, FoSSaCS 2015:
[http://homepages.inf.ed.ac.uk/gdp/publications/differentialw...](http://homepages.inf.ed.ac.uk/gdp/publications/differentialweb.pdf)
or, for even more mathematical context about why this works, check out, e.g.,
Bruce Sagan’s slides on the Mobius Inversion function:
[https://users.math.msu.edu/users/sagan/Slides/MfpBog1h.pdf](https://users.math.msu.edu/users/sagan/Slides/MfpBog1h.pdf)

In conclusion: this transition from abelian groups to monoids looks like a
nice generalization of the underlying theory!

~~~
frankmcsherry
<3

------
0815test
It's nice to see Rust being used successfully for some fairly high-level,
research-like problems. The whole blog series is quite interesting (you can
find the older posts in the readme file for the repo, or more conveniently in
the "posts" folder, listed by date).

