One main issue, is how the work is to be distributed across several workers. It is desirable that all workers are running the same code. Otherwise, software maintenance, flexibility, and extensibility can suffer and possible distribution of files over several file systems cannot be utilized. Instead of diverging into several tasks and assigning them dedicated data sets, the code rather transparently accepts any kind of data and uniformly reacts on it. Hence, the central idea here is to achieve the work distribution by partitioning the data rather than distributing activity tasks.
This, however, implies that it has to be possible to write analysis algorithms following this approach. For our purposes, this is indeed possible, even if reduction requirements make it more difficult than if each analysis task is performed on one process only.