Programming thousands of machines is no easy task.

One approach pioneered by Google is known as MapReduce.

MapReduce provides a programming model that simplifies programming thousands of machines by breaking down distributed programs into two steps: map, and reduce.