# US 2014/0156589 A1 · Dividing and combining operations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156589 A1
- Document ID: US20140156589A1
- Status: Published application
- Kind: A1
- Application number: 13/690,086
- Filed: 2012-11-30
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Hewlett-Packard Development Company, L.P.
- Inventors: ALKIVIADIS SIMITSIS; William K. Wilkinson
- Web page: https://patentgrep.com/patent/US20140156589A1

## CPC

- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are techniques for arranging a series of operations. It is determined whether an operation executes more efficiently when divided. It is further determined whether a plurality of operations execute more efficiently when combined.

## Claims

### Claim 1

A system comprising:
an interface module which, if executed, instructs at least one processor to permit a sequence of operations to be specified by a user;
an optimizer module which, if executed, instructs at least one processor to implement each operation in an execution environment and to convert each operation into code executable therein;
a decomposition module which, if executed, instructs at least one processor to:
divide an operation in the sequence into a plurality of sub-operations, when it is determined that the plurality of sub-operations consume fewer resources than the operation; and
combine a plurality of operations into a single operation, when it is determined that the single operation consumes fewer resources than the plurality of operations.

### Claim 2 (depends on 1)

The system of claim 1, wherein to determine whether fewer resources are consumed, the decomposition module, if executed, instructs the processor to determine a cost of importing data or exporting data to or from the execution environment selected for the operation.

### Claim 3 (depends on 2)

The system of claim 2, wherein to determine whether fewer resources are consumed, the decomposition module, if executed, instructs the processor to determine a type of data being imported or exported to or from the execution environment.

### Claim 4 (depends on 1)

The system of claim 1, wherein to determine whether fewer resources are consumed, the decomposition module, if executed, instructs the processor to determine whether the execution environment is optimal for carrying out the operation.

### Claim 5 (depends on 1)

The system of claim 1, wherein to determine whether fewer resources are consumed, the decomposition module, if executed, instructs the processor to determine whether the operation is a generic operation able to execute efficiently in any available execution environment.

### Claim 6 (depends on 1)

The system of claim 1, wherein determination of resources consumed may be at least partially based on a benchmark metric associated with each execution environment.

### Claim 7

A non-transitory computer readable medium having instructions therein which, if executed, cause a processor to:
read a request to convert a sequence of operations into executable code;
determine an execution environment in which to implement each operation;
generate code executable in the execution environment selected for each operation in the sequence;
divide an operation in the sequence into a plurality of sub-operations that are executable in different execution environments, when it is determined that the operation executes more efficiently when divided; and
combine a plurality of operations into a single operation executing in a single execution environment, when it is determined that the plurality of operations execute more efficiently when combined.

### Claim 8 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the instructions stored therein, if executed, instruct at least one processer to:
evaluate a cost of importing or exporting data to or from each of the different execution environments to determine whether the operation executes more efficiently when divided; and
evaluate a cost of importing or exporting data to or from the single execution environment to determine whether the plurality of operations execute more efficiently when combined.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein the instructions stored therein, if executed, instruct at least one processer to:
evaluate a type of data being imported or exported to or from each of the different execution environments to determine whether the operation executes more efficiently when divided; and
evaluate a type of data being imported or exported to or from the single execution environment to determine whether the plurality of operations execute more efficiently when combined.

### Claim 10 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the instructions stored therein, if executed, instruct at least one processor to:
evaluate whether each of the different execution environments are optimal for carrying out the plurality of sub-operations to determine whether the operation executes more efficiently when divided; and
evaluate whether the single execution environment is optimal for carrying out the single operation to determine whether the plurality of operations execute more efficiently when combined.

### Claim 11 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the instructions stored therein, if executed, instruct at least one processor to evaluate whether the operation and the plurality of operations are generic operations able to execute efficiently in any available execution environment.

### Claim 12 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the instructions stored therein, if executed, instruct at least one processor to:
evaluate a benchmark metric associated with each of the different execution environments to determine whether the operation executes more efficiently when divided; and
evaluate a benchmark metric associated with the single execution environment to determine whether the plurality of operations execute more efficiently when combined.

### Claim 13

A method comprising:
displaying, using at least one processor, an interface that allows a user to specify a series of operations associated with data;
reading, using at least one processor, a request from the user via the interface to convert a sequence of operations into executable code;
selecting, using at least one processor, an execution environment in which to implement each operation in the sequence;
dividing, using at least one processor, an operation in the sequence into a plurality of sub-operations executable in different execution environments, when it is determined that the operation executes more efficiently when divided into the plurality of sub-operations; and
combining, using at least one processor, a plurality of operations into a single operation executing in a single execution environment, when it is determined that combining the plurality of operations permits the plurality of operations to execute more efficiently.

### Claim 14 (depends on 13)

The method of claim 13, wherein determining whether the operation executes more efficiently when divided comprises, determining, using at least one processor, a cost of importing or exporting data to or from each of the different execution environments; and
wherein determining whether the plurality of operations execute more efficiently when combined comprises determining, using at least one processor, a cost of importing or exporting data to or from the single execution environment.

### Claim 15 (depends on 14)

The method of claim 14, wherein determining whether the operation executes more efficiently when divided comprises, determining, using at least one processor, a type of data being imported or exported to or from each of the different execution environments; and
wherein determining whether the plurality of operations execute more efficiently when combined comprises determining, using at least one processor, a type of data being imported to or from the single execution environment.

### Claim 16 (depends on 13)

The method of claim 13, wherein determining whether the operation executes more efficiently when divided comprises, determining, using at least one processor, whether the different execution environments are optimal for carrying out the sub-operations; and
wherein determining whether the plurality of operations execute more efficiently when combined comprises determining, using at least one processor, whether the single execution environment is optimal for carrying out the single operation.

### Claim 17 (depends on 13)

The method of claim 13, wherein dividing the operation and combining the plurality of operations comprises, determining, using at least one processor, whether the operation and the plurality of operations are generic operations able to execute efficiently in any available execution environment.

### Claim 18 (depends on 13)

The method of claim 13, wherein determining whether the operation executes more efficiently when divided comprises, evaluating, using at least one processor, a benchmark metric associated with each of the different execution environments to determine whether the operation executes more efficiently when divided; and
wherein determining whether the plurality of operations execute more efficiently when combined comprises evaluating, using at least one processor, a benchmark metric associated with the single execution environment to determine whether the plurality of operations execute more efficiently when combined.
