The companion paper to Thrill, with more details on its architecture and some benchmarks and comparisons to Spark and Flink: https://arxiv.org/abs/1608.05634
Thx for the link to the paper. It is a useful read in its own right.
It provides an overview of other processing framework,
explains why C++ was chosen, explains various bottlenecks and their affect.
I had worked with KMeans before, and happy to see as part of bench-marking, as it seems one of the more widely used approaches for unsupervised learning.
In my view, Thrill is similar in composite-ability and integration into existing code objectives to Python's Dask