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.