1. A non-transitory computer storage having instructions stored therein which, when executed by one or more processors, cause the one or more processors to perform: receiving at a controller process a computing job for processing by an application that is separate from the controller process; after receiving the computing job, the controller process instructing a first application instance, of a plurality of instances of the application that execute in a distributed computing environment, to divide the computing job; receiving at the controller process, from the first application instance, assignment information describing how the computing job is divided into a plurality of assignments; the controller process assigning, based on the assignment information, the plurality of assignments to at least a subset of the plurality of application instances for processing, wherein each application instance in the subset is assigned one or more of the assignments; the controller process determining that the subset of application instances have completed processing of the assignments to produce a plurality of assignment results; and the controller process instructing a second application instance of the plurality of application instances to perform post-processing on the assignment results, wherein instructing the second application instance to perform post-processing on the assignment results comprises providing the assignment information received from the first application instance to the second application instance to enable the second application instance to perform post-processing on the assignment results based on the assignment information; wherein the first application instance and the second application instance are different instances of the application.