1. A method comprising: partitioning a data set into a plurality of data partitions, the partitioning including removing dependencies in the data set that require some of the data partitions to be processed sequentially rather than in parallel; distributing the plurality of data partitions to a plurality of processors, each of the plurality of data partitions being assigned to a single one of the plurality of processors; processing, by the plurality of processors, each of the plurality of data partitions in parallel; and synchronizing the plurality of processors to obtain a global record corresponding to the processed data partitions.