← Back to Patent Explorer
US5381550A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for compiling a source code supporting data parallel variables

Assignee: RTPC Corp
•
Filing: 1994-01-10
•
Granted: 1995-01-10
•
Expires: 2014-01-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A compiler for compiling a computer program which is adapted for use with a data parallel computer. The compiler supports variables which involve parallelism. Variables which involve parallelism are parallel variables, templates for parallel variables called shapes, and pointers to parallel variables. For each variable involving parallelism declared globally in the source code, the compiler of the present invention emits in the target code a declaration of a global scalar variable. It further emits in the target code a start trap. When executed, the start trap allocates memory and a data structure for the global variables involving parallelism. The start trap also initializes the data structures and global variables involving parallelism. Finally, the compiler of the present invention emits in the target code one or more statements which, at run time, will cause the start trap to be invoked before the execution of any statement in which one of the global variables involving parallelism is read from or written to.

Inventors

  • 👤 Karen C. Jourdenais
  • 👤 James L. Frankel
  • 👤 Steven N. Goldhaber
  • 👤 Linda J. Seamonson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 11:17
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/45

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 256 words
A method of generating a target code from a source code, the source code written using a high level language supporting data parallel processing, the target code to be executed in a data parallel computer having a plurality of processing nodes for processing data in parallel, the method being executable in a data processing apparatus and comprising the steps of: (a) maintaining a shapes defined table which includes a list of shapes which are declared and defined in a compilation unit of the source code: (b) determining whether a source code declaration statement exists in said compilation unit of the source code which declares a shape having P positions organized among R dimensions, said shape being a template for use in declaring parallel variables each having P data instances distributed among P processing nodes logically organized among R dimensions, said statement specifying a symbol that identifies said shape; (c) emitting to the target code, in response to said determination, at least one target code declaration statement which when executed in the data parallel computer enables the data parallel computer to declare said shape, said target code declaration statement including a definition field, a symbol field, and an initializer field; (d) setting said symbol field equal to said symbol of said shape; (e) ascertaining, in response to said determination, whether said source code declaration statement also defines said shape; and (f) if it is determined that said source code declaration statement also defines said shape, then adding said symbol of said shape to said shapes defined table.
Claim 2
Independent Claim 256 words
A method of generating a target code from a source code, the source code written using a high level language supporting data parallel processing, the target code to be executed in a data parallel computer having a plurality of processing nodes for processing data in parallel, the method being executable in a data processing apparatus and comprising the steps of: (a) maintaining a shapes defined table which includes a list of shapes which are declared and defined in a compilation unit of the source code: (b) determining whether a source code declaration statement exists in said compilation unit of the source code which declares a shape having P positions organized among R dimensions, said shape being a template for use in declaring parallel variables each having P data instances distributed among P processing nodes logically organized among R dimensions, said statement specifying a symbol that identifies said shape; (c) emitting to the target code, in response to said determination, at least one target code declaration statement which when executed in the data parallel computer enables the data parallel computer to declare said shape, said target code declaration statement including a definition field, a symbol field, and an initializer field; (d) setting said symbol field equal to said symbol of said shape; (e) ascertaining, in response to said determination, whether said source code declaration statement also defines said shape; and (f) if it is determined that said source code declaration statement also defines said shape, then adding said symbol of said shape to said shapes defined table.
Claim 3
Dependent Claim 51 words
The method of claim 1, also comprising the step of setting said definition field equal to a predetermined value to indicate that the shape is both declared and defined within said compilation unit of the source code if it is determined that said source code declaration statement also defines said shape.
Claim 4
Dependent Claim 53 words
The method of claim 1, further comprising the step of emitting to the target code, in response to said determination, an allocation function which when executed in the data parallel computer enables the data parallel computer to allocate said shape to a processor set, said processor set comprising P of the processing nodes.
Claim 5
Dependent Claim 23 words
The method of claim 3, further comprising the step of setting said initializer field equal to a value which identifies said allocation function.
Claim 6
Dependent Claim 35 words
The method of claim 1, further comprising the step of maintaining a shapes referenced table which includes a list of shapes which are declared but not defined in said compilation unit of the source code.
Claim 7
Dependent Claim 67 words
The method of claim 5, further comprising the following steps which are performed if it is determined that said source code declaration statement does not define said shape: setting said definition field equal to a predetermined value to indicate that the shape is declared but not defined within said compilation unit of the source code; and adding said symbol of said shape to said shapes referenced table.
Claim 8
Dependent Claim 54 words
The method of claim 6, further comprising the step of emitting to the target code an end compilation unit statement which when executed in the data parallel computer enables the data parallel computer to establish said shapes defined table and said shapes referenced table in at least one memory of the data parallel computer.
Claim 9
Dependent Claim 152 words
The method of claim 7, further comprising the steps of: emitting to the target code an allocation function for each shape declared and defined in the source code which when executed in the data parallel computer enables the data parallel computer to allocate said each shape to a processor set comprising a subset of the processing nodes; emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to invoke allocation functions associated with shapes listed in said shapes defined table stored in said at least one memory of the data parallel computer; and emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to invoke allocation functions associated with shapes listed in said shapes referenced table stored in said at least one memory of the data parallel computer.
Claim 10
Independent Claim 261 words
A method of generating a target code from a source code, the source code written using a high level language supporting data parallel processing, the target code to be executed by a data parallel computer comprising a plurality of processing nodes for processing data in parallel, the method being executable in a data processing apparatus and comprising the steps of: (a) maintaining a parallel variables defined table which includes a list of parallel variables which are declared and defined in a compilation unit of the source code; (b) determining whether a source code declaration statement exists in said compilation unit of the source code which declares a parallel variable comprising a plurality of data instances each processed by one of the processing nodes when the target code is executed by the data parallel computer, said source code declaration statement specifying a symbol that identifies said parallel variable; (c) emitting to the target code, in response to said determination, at least one target code declaration statement which when executed in the data parallel computer enables the data parallel computer to declare said parallel variable, said target code declaration statement including a definition field, a symbol field, and an initializer field; (d) setting said symbol field equal to said symbol of said parallel variable; (e) ascertaining, in response to said determination, whether said source code declaration statement also defines said parallel variable; and (f) if it is determined that said source code declaration statement also defines said parallel variable, then adding said symbol of said parallel variable to said parallel variables defined table.
Claim 11
Independent Claim 261 words
A method of generating a target code from a source code, the source code written using a high level language supporting data parallel processing, the target code to be executed by a data parallel computer comprising a plurality of processing nodes for processing data in parallel, the method being executable in a data processing apparatus and comprising the steps of: (a) maintaining a parallel variables defined table which includes a list of parallel variables which are declared and defined in a compilation unit of the source code; (b) determining whether a source code declaration statement exists in said compilation unit of the source code which declares a parallel variable comprising a plurality of data instances each processed by one of the processing nodes when the target code is executed by the data parallel computer, said source code declaration statement specifying a symbol that identifies said parallel variable; (c) emitting to the target code, in response to said determination, at least one target code declaration statement which when executed in the data parallel computer enables the data parallel computer to declare said parallel variable, said target code declaration statement including a definition field, a symbol field, and an initializer field; (d) setting said symbol field equal to said symbol of said parallel variable; (e) ascertaining, in response to said determination, whether said source code declaration statement also defines said parallel variable; and (f) if it is determined that said source code declaration statement also defines said parallel variable, then adding said symbol of said parallel variable to said parallel variables defined table.
Claim 12
Dependent Claim 53 words
The method of claim 9, also comprising the step of setting said definition field equal to a predetermined value to indicate that said parallel variable is both declared and defined within said compilation unit of the source code if it is determined that said source code declaration statement also defines said parallel variable.
Claim 13
Dependent Claim 111 words
The method of claim 9, further comprising the following steps which are performed if it is determined that said source code declaration statement also defines said parallel variable: maintaining a parallel variable group table comprising a list of parallel variables; emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to allocate to said parallel variable group an unused field from a memory heap in each of the processing nodes; and if it is determined that said source code declaration statement also defines said parallel variable, then adding said symbol of said parallel variable to said parallel variable group.
Claim 14
Dependent Claim 120 words
The method of claim 11, further comprising the following steps which are executed if it is determined that said source code declaration statement also defines said parallel variable: emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to assign a portion of said allocated field in each of the processing nodes to data instances of said parallel variable; and emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to assign other portions of said allocated field in each of the processing nodes to data instances of other parallel variables in said parallel variable group.
Claim 15
Dependent Claim 53 words
The method of claim 11, wherein said target code declaration statement also includes a heap size field, the method also comprising the step of setting said heap size field equal to a value which identifies the amount of unused memory heap fields allocated to parallel variables listed in said parallel variable group table.
Claim 16
Dependent Claim 71 words
The method of claim 9, further comprising the following steps which are executed if it is determined that said source code declaration statement also defines said parallel variable: emitting to the target code an initialization function which, when executed by the data parallel computer, enables the data parallel computer to initialize data instances of the parallel variable; and setting said initializer field equal to a value which identifies said initialization function.
Claim 17
Dependent Claim 54 words
The method of claim 9, wherein said source code declaration statement also specifies a shape of said parallel variable, and wherein said target code declaration statement also includes a shape field, the method also comprising the step of setting said shape field equal to a value which identifies said shape of said parallel variable.
Claim 18
Dependent Claim 37 words
The method of claim 9, further comprising the step of maintaining a parallel variables referenced table which includes a list of parallel variables which are declared but not defined in said compilation unit of the source code.
Claim 19
Dependent Claim 71 words
The method of claim 16, further comprising the following steps which are executed if it is determined that said source code declaration statement does not define said parallel variable: setting said definition field equal to a predetermined value to indicate that said parallel variable is declared but not defined within said compilation unit of the source code; and adding said symbol of said parallel variable to said parallel variables referenced table.
Claim 20
Dependent Claim 56 words
The method of claim 17, further comprising the step of emitting to the target code an end compilation unit statement which when executed in the data parallel computer enables the data parallel computer to establish said parallel variables defined table and said parallel variables referenced table in at least one memory of the data parallel computer.
Claim 21
Dependent Claim 156 words
The method of claim 18, also comprising the steps of: emitting to the target code an allocation function for each parallel variable declared and defined in the source code which when executed in the data parallel computer enables the data parallel computer to allocate memory in the processing nodes for data instances of said each parallel variable; emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to invoke allocation functions associated with parallel variables listed in said parallel variables defined table stored in said at least one memory of the data parallel computer; and emitting to the target code at least one statement which when executed in the data parallel computer enables the data parallel computer to invoke allocation functions associated with parallel variables listed in said parallel variables referenced table stored in said at least one memory of the data parallel computer.

References Cited (Backward Citations)

US4598400A Cited
US4773038A Cited
US4833606A Cited
US4827403A Cited
US4965724A Cited
US4984235A Cited
US4951192A Cited
US5146594A Cited
US5088034A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-01-09 1998-07-11 1999-01-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-01-09 2002-07-11 2003-01-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-01-09 2006-07-11 2007-01-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag