More on self-replicating tasks

Some more stuff to remember when dealing with self-replicating tasks. (See my earlier post for an introduction to Parallel FX and self-replicating tasks):

- Self-replicating tasks should have an inter-replica communication mechanism for communicating the progress/details of the activity. This depends on what the activity is trying to achieve. See here for an example.

- Self-replicating tasks should have an inter-replica communication mechanism for communicating the completion of the overall activity.

- Only use when the cost of this communication and the management of partitions is considerably less than the potential benefit gained from parallelism

- Do not assume that the task is always replicated. It is only replicated if there are available resources. For the same reason also, do not assume that there will be a specific number of replicas.

- In some instances, the number of replicas could far exceed the number of cores in the machine.

- You may choose to use optimistic concurrency when it is possible to correctly deal with multiple executions of the same step.

- In general replicating tasks are an advances feature that can be very useful in specific scenarios. Use with caution.

(All based on the first Parallel Extensions CTP)