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.