Task-farming parallelism is useful in situations where a set of independent calculations have to be performed. The `task farm' consists of all available processors, which are then divided into subsets of processors called workgroups. The tasks are split between the workgroups which work on them in parallel. As the calculations are independent, no information needs to be exchanged between workgroups during this time, and sharing of results can be postponed until all the tasks have completed.
To implement task-farming in ChemShell a number of modifications to the code and external programs were necessary.