November 2017
Intermediate to advanced
670 pages
17h 35m
English
Monoids are frequently used to solve large computations. Monoids help us to break our computations into pieces. We can run smaller computations in separate cores or on separate servers and recombine/reduce/fold the results into a single result. We often employ parallel or concurrency techniques along with incremental accumulation of our result.
As a very simple example, if we need to add these numbers: 1 + 2 + 3 + 4.
We can add ( 1 + 2 ) on one CPU/core and ( 3 + 4 ) on another:
3 + 7 = 10