US5561801A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System and method for multilevel promotion
Assignee: RTPC Corp
•
Filing: 1993-12-23
•
Granted: 1996-10-01
•
Expires: 2013-12-23
Abstract
Abstract A compiler for compiling a computer program wherein the computer program is adapted for use with a data parallel computer. The compiler comprises a front end which generates a parse tree from a source code. In generating the parse tree, the front end coordinates the compilation of type conversion operations and promotion operations such that run-time efficiency is maximized. In other words, the front end compiles the type conversion operations and promotion operations in an order which maximizes run-time efficiency.
Inventors
- 👤 Joshua E. Simons
- 👤 James L. Frankel
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 14:42
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/45
Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
175 words
A computer implemented method for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said computer implemented method comprising the steps of: (1) locating in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; (2) calculating a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; (3) calculating a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and (4) compiling said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 2
Dependent Claim
175 words
A computer implemented method for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said computer implemented method comprising the steps of: (1) locating in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; (2) calculating a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; (3) calculating a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and (4) compiling said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 3
Dependent Claim
103 words
The method of claim 1 in which the data parallel computer comprises a plurality of nodes for processing data in parallel, wherein step (2) comprises the steps of: (a) estimating a third run-time cost of executing a compiled instruction to transmit a value of the base type to the nodes of the data parallel computer; (b) estimating a fourth run-time cost of executing a compiled instruction to convert, in the nodes of the data parallel computer, a value from the base type to the target type; and (c) generating said first run-time cost as a function of said third and fourth run-time costs.
Claim 4
Dependent Claim
99 words
The method of claim 1 in which the data parallel computer comprises a plurality of nodes for processing data in parallel, wherein step (3) comprises the steps of: (a) estimating a third run-time cost of executing a compiled instruction to convert, in a scalar computer, a value from the base type to the target type; (b) estimating a fourth run-time cost of executing a compiled instruction to transmit a value of the target type to the nodes of the data parallel computer; and (c) generating said second run-time cost as a function of said third and fourth run-time costs.
Claim 5
Dependent Claim
83 words
The method of claim 1, wherein step (4) comprises the steps of: compiling said promotion operation and said type conversion operation such that said compiled promotion operation is executed before said compiled type conversion operation if said first run-time cost is less than said second run-time cost; and compiling said promotion operation and said type conversion operation such that said compiled type conversion operation is executed before said compiled promotion operation if said first run-time cost is greater than said second run-time cost.
Claim 6
Dependent Claim
212 words
A computer implemented method for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said computer implemented method comprising the steps of: (1) empirically determining whether code generated in accordance with a first compilation method, wherein a promotion operation is compiled to be executed before a type conversion operation, is more run-time efficient than code generated in accordance with a second compilation method, wherein a type conversion operation is compiled to be executed before a promotion operation; (2) selecting said first compilation method if code generated in accordance with said first compilation method is more run-time efficient than code generated in accordance with said second compilation method as indicated by said empirical determination, and selecting said second compilation method if code generated in accordance with said second compilation method is more run-time efficient than code generated in accordance with said first compilation method as indicated by said empirical determination; (3) locating in said source program a parallel instruction requiring performance of a type conversion operation and a promotion operation; and (4) compiling said located parallel instruction in accordance with said selected compilation method to thereby generate the target program.
Claim 7
Dependent Claim
212 words
A computer implemented method for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said computer implemented method comprising the steps of: (1) empirically determining whether code generated in accordance with a first compilation method, wherein a promotion operation is compiled to be executed before a type conversion operation, is more run-time efficient than code generated in accordance with a second compilation method, wherein a type conversion operation is compiled to be executed before a promotion operation; (2) selecting said first compilation method if code generated in accordance with said first compilation method is more run-time efficient than code generated in accordance with said second compilation method as indicated by said empirical determination, and selecting said second compilation method if code generated in accordance with said second compilation method is more run-time efficient than code generated in accordance with said first compilation method as indicated by said empirical determination; (3) locating in said source program a parallel instruction requiring performance of a type conversion operation and a promotion operation; and (4) compiling said located parallel instruction in accordance with said selected compilation method to thereby generate the target program.
Claim 8
Dependent Claim
17 words
The method of claim 5, wherein step (2) comprises the step of selecting said first compilation method.
Claim 9
Dependent Claim
17 words
The method of claim 5, wherein step (2) comprises the step of selecting said second compilation method.
Claim 10
Independent Claim
182 words
An apparatus for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said apparatus comprising: a parser for locating in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; first run-time cost calculating means for calculating a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; second run-time cost calculating means for calculating a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and compiling means for compiling said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 11
Independent Claim
182 words
An apparatus for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said apparatus comprising: a parser for locating in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; first run-time cost calculating means for calculating a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; second run-time cost calculating means for calculating a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and compiling means for compiling said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 12
Dependent Claim
109 words
The apparatus of claim 8 in which the data parallel computer comprises a plurality of nodes for processing data in parallel, said first run-time cost calculating means comprising: means for estimating a third run-time cost of executing a compiled instruction to transmit a value of the base type to the nodes of the data parallel computer; means for estimating a fourth run-time cost of executing a compiled instruction to convert, in the nodes of the data parallel computer, a value from the base type to the target type; and means for generating said first run-time cost as a function of said third run-time cost and said fourth run-time cost.
Claim 13
Dependent Claim
106 words
The apparatus of claim 8 in which the data parallel computer comprises a plurality of nodes for processing data in parallel, wherein said second run-time cost calculating means comprises: means for estimating a third run-time cost of executing a compiled instruction to convert, in a scalar computer, a value from the base type to the target type; means for estimating a fourth run-time cost of executing a compiled instruction to transmit a value of the target type to the nodes of the data parallel computer; and means for generating said second run-time cost as a function of said third run-time cost and said fourth run-time cost.
Claim 14
Dependent Claim
85 words
The apparatus of claim 8, wherein said compiling means comprises: means for compiling said promotion operation and said type conversion operation such that said compiled promotion operation is executed before said compiled type conversion operation if said first run-time cost is less than said second run-time cost; and means for compiling said promotion operation and said type conversion operation such that said compiled type conversion operation is executed before said compiled promotion operation if said first run-time cost is greater than said second run-time cost.
Claim 15
Independent Claim
156 words
An apparatus for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said apparatus comprising: means for empirically determining whether code generated in accordance with a first compilation method, wherein a promotion operation is compiled to be executed before a type conversion operation, is more run-time efficient than code generated in accordance with a second compilation method, wherein a type conversion operation is compiled to be executed before a promotion operation; means for selecting said first compilation method or said second compilation method in response to said empirical determination; a parser for locating in said source program a parallel instruction requiring performance of a type conversion operation and a promotion operation; and compiling means for compiling said located parallel instruction in accordance with said selected compilation method to thereby generate the target program.
Claim 16
Independent Claim
156 words
An apparatus for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said apparatus comprising: means for empirically determining whether code generated in accordance with a first compilation method, wherein a promotion operation is compiled to be executed before a type conversion operation, is more run-time efficient than code generated in accordance with a second compilation method, wherein a type conversion operation is compiled to be executed before a promotion operation; means for selecting said first compilation method or said second compilation method in response to said empirical determination; a parser for locating in said source program a parallel instruction requiring performance of a type conversion operation and a promotion operation; and compiling means for compiling said located parallel instruction in accordance with said selected compilation method to thereby generate the target program.
Claim 17
Independent Claim
213 words
A system for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said system comprising: A. a computer; B. control means for controlling the computer, comprising: (i) a parser for enabling said computer to locate in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; (ii) first run-time cost calculating means for enabling said computer to calculate a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; (iii) second run-time cost calculating means for enabling said computer to calculate a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and (iv) compiling means for enabling said computer to compile said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 18
Independent Claim
213 words
A system for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said system comprising: A. a computer; B. control means for controlling the computer, comprising: (i) a parser for enabling said computer to locate in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; (ii) first run-time cost calculating means for enabling said computer to calculate a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; (iii) second run-time cost calculating means for enabling said computer to calculate a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and (iv) compiling means for enabling said computer to compile said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 19
Dependent Claim
206 words
A control subsystem arrangement for controlling a computer to generate a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said control subsystem arrangement comprising: a parser for enabling the computer to locate in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; first run-time cost calculating means for enabling the computer to calculate a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; second run-time cost calculating means for enabling the computer to calculate a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and compiling means for enabling the computer to compile said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
Claim 20
Dependent Claim
206 words
A control subsystem arrangement for controlling a computer to generate a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said control subsystem arrangement comprising: a parser for enabling the computer to locate in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; first run-time cost calculating means for enabling the computer to calculate a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; second run-time cost calculating means for enabling the computer to calculate a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and compiling means for enabling the computer to compile said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.
References Cited (Backward Citations)
US4598400A
Cited
US4773038A
Cited
US5021947A
Cited
US4827403A
Cited
US4984235A
Cited
US5151991A
Cited
US5093914A
Cited
US5083265A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-10-01 | 2000-04-01 | 2000-10-01 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-10-01 | 2004-04-01 | 2004-10-01 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-10-01 | 2008-04-01 | 2008-10-01 | $7700.00 | Window Closed / Lapsed |