1. A method, comprising: (i) receiving a transformation graph, the transformation graph including one or more data transformations, where the transformations are parallelizable transformations and non-parallelizable transformations; (ii) adding the first transformations in the graph to a workset; (iii) adding a first transformation from the workset to a segment; (iv) determining whether the transformation succeeding the last transformation in the segment is parallelizable; (v) determining whether the last transformation includes more than one successor transformation; and (vi) adding the successor transformations of the last transformation to the segment based on the determination of whether the last transformation is parallelizable and includes more than one successor transformation; (vii) adding the successor transformations to the workset if the successor transformations are not added to the segment; (viii) determining whether any transformation remain in the workset; and (ix) repeating steps (iv)-(viii) based on the determining.