So far we have talked primarily about the way tasks are distributed, and have left the data in the background. It can be instructive to look at the way data is obtained and made available to the tasks, also. After all, if a task is starved for data it cannot produce any results.
This is the situation where each task either needs no data, or can independently generate it (perhaps through sensor readings or a random number generator). This can often happen when running Monte Carlo simulations, where the only input to each simulation is a random number.
Note
Monte Carlo simulation
It is often the case in a simulation, that exact values for parameters are not known. When this is the case, the Monte Carlo method entails running the simulation multiple times, with each run using a valid but randomly chosen value for each parameter. The results of the runs can then be combined statistically to provide an estimate of the desired result.
In this example, each instance...