# [[Epistemic status]] #shower-thought #to-digest # Changelog ```dataview TABLE WITHOUT ID file.mtime AS "Last Modified" FROM [[#]] SORT file.mtime DESC LIMIT 3 ``` # Related # TODO > [!TODO] TODO > clean up this garbage # Distributed Computing #computing At the early ages of computing, we ran programs on a single process, a single thread. As data and computing needs grew, we needed bigger machines until the Moore law ended, forcing us to find a new way to scale. Now we distribute computing over several machines and / or several threads. There is different ways to distribute computing but one thing is sure, it add a layer of complexity because of the need to partition data over "nodes" (threads or machines) , aggregate the computing ... ## Distribution strategies ### Three dimensional data In some cases, your data can be related to a tree dimension location (x,y,z). In that case the most obvious strategy is to divide the data over regions using bounding volume hierarchy data structure such as Octree ![[Bounded Volume Hierarchy]] Bottlenecks: (TODO) - Data points aren't spread, i.e. image 90% data points are in a single region ### Basic (TODO fix name) Imagine we don't care about how data is divided, just **partition** it and distribute over nodes. Typical example : [Kafka](https://kafka.apache.org/)