1. A system for executing an application program, comprising: an execution machine configured to execute one or more code segments of the application program; a first probe machine configured to execute one or more code segments of the application program; a scheduler that coordinates execution of the code segments on the execution machine and execution of the code segments on the first probe machine, wherein execution of a code segment on the execution machine is within a predetermined time interval behind execution of same code segment on the first probe machine; wherein the first probe machine is configured to detect a software failure in a failed code segment, to determine a correction for the software failure, and to notify the scheduler of the correction; and wherein the scheduler applies the correction to the execution machine prior to the execution machine executing the code segment experiencing the software failure.