Implementing updates to source code executing on a plurality of compute nodes

US9720676B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9720676-B2
Application numberUS-201213369879-A
CountryUS
Kind codeB2
Filing dateFeb 9, 2012
Priority dateFeb 9, 2012
Publication dateAug 1, 2017
Grant dateAug 1, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, apparatuses, and computer program products for implementing updates to source code executing on a plurality of compute nodes are provided. Embodiments include receiving, 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 a distributed barrier; based on the distributed barrier, halting execution of the source code at a particular location within the source code; based on the distributed barrier, updating in-place the source code including retaining workpiece data in memory of the compute node, the workpiece data corresponding to the execution of the source code; and based on completion of the updating of the source code, resuming with the retained workpiece data execution of the source code at the particular location within the source code where execution was halted.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus for implementing updates to source code executing on a plurality of compute nodes, the apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that when executed by the computer processor cause the apparatus to carry out the steps of: 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. 2. The apparatus of claim 1 wherein the implemented distributed barrier prevents the compute node from updating the source code until each compute node of the plurality of compute nodes have indicated a readiness to update the source code. 3. The apparatus of claim 2 further comprising: in response to receiving the update-notification message, determining, by the compute node, if the compute node is ready to update the source code; if the compute node is ready to update the source code, transmitting, by the compute node, a ready-update message; wherein updating in-place the source code is in response to receiving the update-now message; and wherein resuming execution of the source code is in response to completing, by the compute node, the updating of the source code at the compute node. 4. The apparatus of claim 3 , wherein the update-notification message is an active message that includes an all reduce operation for gathering ready-update messages from each of the plurality of compute nodes. 5. A computer program product for implementing updates to source code executing on a plurality of compute nodes, the computer program product disposed upon a computer readable medium, wherein the computer readable medium is not a signal, the computer program product comprising computer program instructions that when executed by a computer cause the computer to carry out the steps of: 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. 6. The computer program product of claim 5 wherein the implemented distributed barrier prevents the compute node from updating the source code until each compute node of the plurality of compute nodes have indicated a readiness to update the source code. 7. The computer program product of claim 6 further comprising: in response to receiving the update-notification message, determining, by the compute node, if the compute node is ready to update the source code; if the compute node is ready to update the source code, transmitting, by the compute node, a ready-update message; wherein updating in-place the source code is in response to receiving the update-now message; and wherein resuming execution of the source code is in response to completing, by the compute node, the updating of the source code at the compute node. 8. The computer program product of claim 5 , wherein the update-notification message is an active message that inclu

Assignees

Inventors

Classifications

  • G06F9/522Primary

    Barrier synchronisation · CPC title

  • Physics · mapped topic

  • G06F8/65Primary

    Updates (security arrangements therefor G06F21/57) · CPC title

  • Event management; Broadcasting; Multicasting; Notifications · CPC title

  • while running · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9720676B2 cover?
Methods, apparatuses, and computer program products for implementing updates to source code executing on a plurality of compute nodes are provided. Embodiments include receiving, 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, impleme…
Who is the assignee on this patent?
Archer Charles J, Carey James E, Weaver Matthew R, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/522. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).