Patent ID: 9720677
Date: 2017-08-01
CPC Classifications: G06F

Claim:
1. A method of implementing updates to source code executing on a plurality of compute nodes, the method comprising: receiving from a source code updater, by a compute node, a broadcast update-notification message indicating there is an update to the source code executing on the plurality of compute nodes; in response to receiving the update-notification message, implementing, by the computer node, a distributed barrier on the compute node, the distributed barrier controlling implementation of updates to the source code, wherein the distributed barrier comprises instructions for the plurality compute nodes to gather at a particular step in the implementation of updates to the source code; based on the distributed barrier, halting, by the compute node, execution of the source code at a particular location within the source code, wherein all of the plurality of compute nodes halt execution of the source code based on the distributed barrier, wherein the implemented distributed barrier prevents the compute node from resuming execution of the source code until each compute node in the plurality of compute nodes has completed updating the source code; receiving by the compute node from the source code updater an update-now message that indicates each of the compute nodes in the plurality of compute nodes are ready to update the source code; based on the distributed barrier, updating in-place, by the compute node, the source code including retaining workpiece data in memory of the compute node, the workpiece data corresponding to the execution of the source code; wherein the workpiece data include state of variables, pointers, indexes, and other execution data generated during execution of the source code; in response to completing the updating of the source code, updating, by the compute node, an indication of a source code in-use version to register that the compute node completed updating of the source code by sending to the source code updater a message to change a version of source code corresponding to the compute node; receiving by the compute node from the source code updater an update-complete message indicating that the source code in-use version of each of the compute nodes of the plurality of compute nodes corresponds with a version of the updated source code; and in response to receiving the update-complete message, resuming with the retained workpiece data, by the compute node, execution of the source code at the particular location within the source code where execution was halted, wherein upon resuming, all of the plurality of compute nodes resume execution of the source code.