1. A method for performing distributed parallel processing tasks, the method comprising: receiving an input task in an application executing on a first computing device of a plurality of computing devices; partitioning the input task into a plurality of sub-processing tasks, each of the plurality of sub-processing tasks corresponding to a message of an instance of a cloud infrastructure implemented messaging service; distributing the sub-processing tasks among the plurality of computing devices; performing the sub-processing tasks in the plurality of computing devices; receiving a notification of an impending termination of one or more computing devices of the plurality of computing devices; for each computing device of the plurality of computing devices in the process of performing a sub-processing task, when the notification of termination is received: creating a checkpoint in the sub-processing task corresponding to a portion of the sub-processing task already performed; storing the portion of the sub-processing task already performed in a storage device; and generating a new sub-processing task comprising the remaining portion of the sub-processing task that was not already performed, wherein the notification of termination is received by monitoring an operating system executing in the plurality of computing devices.