In the previous chapter we introduced clustering and described three different approaches to data partitioning: k-means, DBSCAN, and OPTICS.
All these algorithms use a single-thread approach, where all the operations are executed sequentially in the same thread.1 This is the point where we should question our design: Is it really necessary to run these algorithms sequentially?
1. Multi-processor machines can, however, apply optimizations where some operations are executed in parallel across different cores. This level of parallelization, however, is limited by the number of cores on a chip—currently at most in the order of a hundred, for the most powerful servers.