Algebraic Structure, Computational Benefits
I recently gave a talk at work titled “Algebraic Structure, Computational Benefits.” In it, I defined a few basic (as in fundamental, not as in easy) structures like semigroups, monoids, and semirings, and I discussed the computational benefits one can derive by making these structures explicit in code, like:
- the most generic of generic algorithmic code
- parallelism for free, a.k.a. associativity implies
Map-Reduce
- associativity + commutativity ⇒
Map-Shuffle-Reduce
I also talked a little bit about one of my recent favorites, the Tropical Semiring, and how it turns shortest-distance problems in graph theory into iterated linear algebra.
Should any of this spark your interest, slides are available here.