IP Library › Granted Patent US 8,510,751
Granted Patent B2
US 8,510,751 · App. 12/726,798 · Granted Aug 13, 2013

Optimizing workflow engines

Inventors: Dhrubajyoti Saha (Nagavarapalya, IN); Smruti R. Sarangi (Nagavarapalya, IN)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,510,751
App. No.
12/726,798
Granted
Aug 13, 2013
Kind
B2
Abstract

A system and computer program product for implementing a workflow include merging a workflow to create a virtual graph, wherein the workflow comprises two or more directed acyclic graphs (DAGs), mapping each of one or more nodes of the virtual graph to one or more physical nodes, and using a message passing scheme to implement a computation via the one or more physical nodes.

Claims (36)

1. A computer program product comprising a tangible computer readable recordable storage memory including computer useable program code for implementing a workflow, the computer program product including:

computer useable program code for merging a workflow to create a virtual graph, wherein the workflow comprises two or more directed acyclic graphs (DAGs), wherein said merging comprises:

applying a label to each node of the two or more directed acyclic graphs, wherein nodes representing a same computation in each directed acyclic graph have a same label applied thereto;

assigning each node in the two or more directed acyclic graphs with a unique label to a unique node in the virtual graph; and

assigning each node in the two or more directed acyclic graphs that shares the same label with one or more additional nodes are assigned to a same node in the virtual graph;

computer useable program code for mapping each of one or more nodes of the virtual graph to one or more physical nodes; and

computer useable program code for using a message passing scheme to implement a computation via the one or more physical nodes.

2. The computer program product of claim 1 , wherein the computer useable program code for using a message passing scheme to implement a computation via the one or more physical nodes comprises:

computer useable program code for parsing a message to determine a DAG identification (ID) of the message;

computer useable program code for putting the message in a corresponding buffer;

computer useable program code for beginning a process of executing a job if a size of the buffer is equal to a number of messages the buffer has to have before beginning its execution.

3. The computer program product of claim 1 , wherein merging a workflow to create a virtual graph comprises merging two or more DAGs even if the two or more DAGs do not have a same predecessor.

4. The computer program product of claim 1 , wherein merging a workflow to create a virtual graph comprises merging two or more DAGs even if the two or more DAGs do not have a same successor.

5. The computer program product of claim 1 , wherein merging a workflow to create a virtual graph comprises maximizing a number of nodes in the two or more DAGs having a same numerical label.

6. The computer program product of claim 1 , further comprising computer useable program code for using a message passing scheme to queue one or more computations in a node depending on resources and licenses available in the node.

7. The computer program product of claim 1 , further comprising computer useable program code for using a directory-based system in a virtual node directory to keep track of one or more merging operations that have been performed.

8. The computer program product of claim 1 , further comprising computer useable program code for using a message ID to track one or more messages in one or more merged DAGs.

9. A system for implementing a workflow, comprising:

a memory; and

at least one processor coupled to the memory and operative to:

merge a workflow to create a virtual graph, wherein the workflow comprises two or more directed acyclic graphs (DAGs), wherein said merging comprises:

applying a label to each node of the two or more directed acyclic graphs, wherein nodes representing a same computation in each directed acyclic graph have a same label applied thereto;

assigning each node in the two or more directed acyclic graphs with a unique label to a unique node in the virtual graph; and

assigning each node in the two or more directed acyclic graphs that shares the same label with one or more additional nodes are assigned to a same node in the virtual graph;

map each of one or more nodes of the virtual graph to one or more physical nodes; and

use a message passing scheme to implement a computation via the one or more physical nodes.

10. The system of claim 9 , wherein the at least one processor coupled to the memory operative to use a message passing scheme to implement a computation via the one or more physical nodes is further operative to:

parse a message to determine a DAG identification (ID) of the message;

put the message in a corresponding buffer;

begin a process of executing a job if a size of the buffer is equal to a number of messages the buffer has to have before beginning its execution.

11. The system of claim 9 , wherein merging a workflow to create a virtual graph comprises merging two or more DAGs even if the two or more DAGs do not have a same predecessor.

12. The system of claim 9 , wherein merging a workflow to create a virtual graph comprises merging two or more DAGs even if the two or more DAGs do not have a same successor.

13. The system of claim 9 , wherein merging a workflow to create a virtual graph comprises maximizing a number of nodes in the two or more DAGs having a same numerical label.

14. The system of claim 9 , wherein the at least one processor coupled to the memory is further operative to use a message passing scheme to queue one or more computations in a node depending on resources and licenses available in the node.

15. The system of claim 9 , wherein the at least one processor coupled to the memory is further operative to use a directory-based system in a virtual node directory to keep track of one or more merging operations that have been performed.

16. The system of claim 9 , wherein the at least one processor coupled to the memory is further operative to use a message ID to track one or more messages in one or more merged DAGs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2010
From: SAHA, DHRUBAJYOTI; SARANGI, SMRUTI RANJAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024107/0294 →
Continuity (1)
Related Publication 20110231849A1 · Sep 22, 2011