← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag