Managing invocation of tasks

US9747112B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9747112-B2
Application numberUS-201514843001-A
CountryUS
Kind codeB2
Filing dateSep 2, 2015
Priority dateSep 2, 2014
Publication dateAug 29, 2017
Grant dateAug 29, 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.

A graph-based program specification includes components, at least one having at least one input port for receiving a collection of data elements, or at least one collection type output port for providing a collection of data elements. Executing a program specified by the graph-based program specification at a computing node, includes: receiving data elements of a first collection into a first storage in a first order via a link connected to a collection type output port of a first component and an input port of a second component, and invoking a plurality of instances of a task corresponding to the second component to process data elements of the first collection, including retrieving the data elements from the first storage in a second order, without blocking invocation of any of the instances until after any particular instance completes processing one or more data elements.

First claim

Opening claim text (preview).

What is claimed is: 1. A method including: storing a graph-based program specification including a plurality of components corresponding to tasks and links between ports of the components, at least some of the plurality of components each having at least one of: (1) at least one input port for receiving a collection of data elements to be processed by a corresponding task, or (2) at least one collection type output port for providing a collection of data elements to be processed by a task corresponding to a component linked to the collection type output port; and executing a program specified by the graph-based program specification, the executing including: receiving two or more data elements of a particular collection of data elements in a first order via a link connected to a collection type output port of a first component of the plurality of components and an input port of a second component of the plurality of components, and invoking a plurality of instances of a task corresponding to the second component, including dynamically instantiating each instance of the plurality of instances to begin processing a particular received data element of the particular collection of data elements, and including invoking the instances in a second order, without blocking invocation of any of the instances for any particular instance to begin or complete processing one or more data elements, wherein the second order is different from the first order. 2. The method of claim 1 wherein invoking one or more instances of the task corresponding to the second component includes invoking a plurality of instances of the task corresponding to the second component. 3. The method of claim 2 wherein invoking the plurality of instances of the task corresponding to the second component includes invoking a plurality of sequentially executing instances of the task corresponding to the second component. 4. The method of claim 2 wherein invoking a plurality of instances of the task corresponding to the second component includes invoking a plurality of concurrently executing instances of the task corresponding to the second component. 5. The method of claim 4 wherein each instance of the task of the plurality of instances of the task corresponding to the second component corresponds to a different, non-overlapping subset of the particular collection of data elements. 6. The method of claim 5 wherein each different, non-overlapping subset of the particular collection of data includes a single data element. 7. The method of claim 1 wherein the input port of the second component is a collection type input port for receiving a collection of data elements to be processed by the task corresponding to the second component, and invoking one or more instances of the task corresponding to the second component includes invoking a single instance of the task corresponding to the second component. 8. The method of claim 7 wherein the single instance of the task corresponding to the second component processes the data elements of the particular collection of data elements iteratively. 9. The method of claim 1 wherein the executing further includes generating an output including a first number of data elements that is the same as a second number of data elements in the particular collection. 10. The method of claim 9 wherein the two or more data elements of the particular collection of data elements are received into a first storage, and the executing further includes providing the output to a second storage in a third order that is independent of the first order of the particular collection of data elements. 11. The method of claim 1 wherein the executing further includes generating an output including a first number of data elements that is different from a second number of data elements in the particular collection. 12. The method of claim 1 wherein at least some of the plurality of components each have at least one scalar type input port for receiving a single data element to be processed by a corresponding task, and at least one scalar type output port for providing a single data element to be processed by a task corresponding to a component linked to the scalar type output port; and executing the program specified by the graph-based program specification further includes: receiving a single data element at a scalar type input port of a third component of the plurality of components from a scalar type output port of a fourth component of the plurality of components via a link connecting the scalar type output port to the scalar type input port; and invoking an instance of a task corresponding to the third component in response to receiving the single data element at the scalar type input port. 13. The method of claim 12 wherein executing the program specified by the graph-based program specification further includes preventing invocation of the task corresponding to the third component until after the single data element is received at the scalar type input port. 14. The method of claim 12 wherein executing the program specified by the graph-based program specification further includes preventing invocation of tasks corresponding to components depending, both directly and indirectly, from the third component until after the single data element is received at the scalar type input port. 15. The method of claim 1 further including determining the presence of the link connected to the collection type output port of the first component and the input port of the second component, the presence of said link signaling that the data elements within the first collection can be reordered. 16. A non-transitory computer-readable medium having software stored thereon, the software including instructions for causing a computing system to: store a graph-based program specification including a plurality of components corresponding to tasks and links between ports of the components, at least some of the plurality of components each having at least one of: (1) at least one input port for receiving a collection of data elements to be processed by a corresponding task, or (2) at least one collection output port for providing a collection of data elements to be processed by a task corresponding to a component linked to the collection output port; and execute a program specified by the graph-based program specification, the executing including receiving two or more data elements of a particular collection of data elements in a first order via a link connected to a collection type output port of a first component of the plurality of components and an input port of a second component of the plurality of components, and invoking a plurality of instances of a task corresponding to the second component, including dynamically instantiating each instance of the plurality of instances to begin processing a particular data element of the particular collection of data elements, and including invoking the instances in a second order, without blocking invocation of any of the instances for any particular instance to begin or complete processing one or more data elements, wherein the second order is different from the first order. 17. The non-transitory computer-readable medium of claim 16 wherein invoking one or more instances of the task corresponding to the second component includes invoking a plurality of instances of the task corresponding to the second component. 18. The non-transitory computer-readable medium of claim 17 wherein invoking the plurality of instances of the task corresponding t

Assignees

Inventors

Classifications

  • Multiprogramming arrangements · CPC title

  • Execution paradigms, e.g. implementations of programming paradigms · CPC title

  • G06F9/44Primary

    Arrangements for executing specific programs · CPC title

  • G06F9/466Primary

    Transaction processing · CPC title

  • Procedural · 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 US9747112B2 cover?
A graph-based program specification includes components, at least one having at least one input port for receiving a collection of data elements, or at least one collection type output port for providing a collection of data elements. Executing a program specified by the graph-based program specification at a computing node, includes: receiving data elements of a first collection into a first s…
Who is the assignee on this patent?
Ab Initio Technology Llc, Ab Initio Technology Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/44. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 29 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).