The third execution engine 630 may independently execute instructions until it executes a checkpoint wait instruction Ckpt3 (i.e., Wait (Ckpt3, 1) 631 to wait on the value “1” set in the local checkpoint register associated with the third execution engine 630. The third execution engine 630 may have a dependency on an operation performed by the second execution engine 620 and may halt execution of instructions until the value “1” is set in the local checkpoint register Ckpt3 by the second execution engine 620. Meanwhile, the second execution engine 620 may execute a checkpoint set instruction (i.e., Set (Ckpt3, 1) 625 to remotely set the value “1” in the local checkpoint register Ckpt3 associated with the third execution engine 630.
When the value “1” is set 624 in the local checkpoint register Ckpt3, the third execution engine 630 may resume executing instructions until it executes another checkpoint wait instruction (i.e., Wait (Ckpt3, 2) 633. The third execution engine 630 may have a dependency on an operation to be performed by the fourth execution engine 640. The third execution engine 630 may halt execution of instructions and wait for the value of “2” to be remotely set in the local checkpoint register Ckpt3 associated with the third execution engine 630. Meanwhile, the first execution engine 610 may have executed instructions including an instruction to set a value (i.e., Set (Ckpt4-1, 1)) 613 in the local checkpoint register Ckpt4-1.