Divide and conquer is a general problem solving technique to take a large problem and break it into smaller pieces, each of which is then easier to solve. In computer algorithms, the same divide and conquer approach is usually performed recursively on the parts. In a distributed computing setting, such as MapReduce, different processors may attack different sub-problems. In an agent-based platform, different agents may divide up a problem based on their expertise.