US5452461A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Program parallelizing apparatus capable of optimizing processing time
Assignee: Hitachi Ltd
•
Filing: 1993-12-03
•
Granted: 1995-09-19
•
Expires: 2013-12-03
Abstract
Abstract A program parallelizing apparatus for generating from a source program to be executed an object program which is capable of being processed in parallel by a plurality of processors constituting a multi-processor which includes a communication mechanism for allowing inter-processor communication and a synchronization mechanism for allowing the processings to proceed in parallel among the processor through coordination. Object programs susceptible to parallel processing by the multi-processor system with high efficiency can be generated at a high speed in correspondence to various source programs universally independent of the types of processors.
Inventors
- 👤 Kazuhiro Umekita
- 👤 Masatsugu Kametani
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 16:01
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/45
Claims Analysis
Total Claims: 13
Claim 1
Independent Claim
225 words
A computerized parallelizing apparatus for converting a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said parallelizing apparatus comprising: pre-compiling means within a computer for converting a source program into intermediate codes; dividing means within the computer and coupled to said pre-compiling means for dividing the intermediate codes into a plurality of tasks, each task having a task size of at least one intermediate code; generating means within the computer and coupled to said dividing means for generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; distributing means within the computer and coupled to said generating means for distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; assigning means within the computer and coupled to said distributing means for assigning tasks which are distributed at each of the levels to processors in the multi-processor system; determining means within the computer for determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; and converting means for converting the tasks into object programs to be processed by the plurality of processors.
Claim 2
Dependent Claim
225 words
A computerized parallelizing apparatus for converting a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said parallelizing apparatus comprising: pre-compiling means within a computer for converting a source program into intermediate codes; dividing means within the computer and coupled to said pre-compiling means for dividing the intermediate codes into a plurality of tasks, each task having a task size of at least one intermediate code; generating means within the computer and coupled to said dividing means for generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; distributing means within the computer and coupled to said generating means for distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; assigning means within the computer and coupled to said distributing means for assigning tasks which are distributed at each of the levels to processors in the multi-processor system; determining means within the computer for determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; and converting means for converting the tasks into object programs to be processed by the plurality of processors.
Claim 3
Dependent Claim
258 words
A computerized parallelizing apparatus for converting a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said parallelizing apparatus comprising: pre-compiling means within a computer for converting source program into intermediate codes; dividing means within the computer and coupled to said pre-compiling means for dividing the intermediate codes into a plurality of tasks; generating means within the computer and coupled to said dividing means for generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; distributing means within the computer and coupled to said generating means for distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; assigning means within the computer and coupled to said distributing means for assigning tasks which are distributed at each of the levels to processors in the multi-processor system; determining means within the computer for determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; and converting means for converting the tasks into object programs to be processed by the plurality of processors; wherein said dividing means divides the intermediate codes such that each of the tasks assigned to each processor has a processing time sufficient to maintain a parallel processing efficiency related to task processing time and overhead requirement for parallel processing not less than a predetermined value.
Claim 4
Dependent Claim
258 words
A computerized parallelizing apparatus for converting a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said parallelizing apparatus comprising: pre-compiling means within a computer for converting source program into intermediate codes; dividing means within the computer and coupled to said pre-compiling means for dividing the intermediate codes into a plurality of tasks; generating means within the computer and coupled to said dividing means for generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; distributing means within the computer and coupled to said generating means for distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; assigning means within the computer and coupled to said distributing means for assigning tasks which are distributed at each of the levels to processors in the multi-processor system; determining means within the computer for determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; and converting means for converting the tasks into object programs to be processed by the plurality of processors; wherein said dividing means divides the intermediate codes such that each of the tasks assigned to each processor has a processing time sufficient to maintain a parallel processing efficiency related to task processing time and overhead requirement for parallel processing not less than a predetermined value.
Claim 5
Dependent Claim
32 words
A computerized parallelizing apparatus according to claim 2, wherein said dividing means divides the intermediate codes such that each of the tasks has a size of at least one virtual machine code.
Claim 6
Dependent Claim
67 words
A computerized parallelizing apparatus according to claim 3 further comprising linking means within the computer and coupled to said distributing means and said determining means for linking tasks distributed at different levels, said linking means generating task linkage information for all the tasks distributed by said distributing means so as to link tasks such that processing time after linking is not longer than processing time before linking.
Claim 7
Dependent Claim
38 words
A computerized parallelizing apparatus according to claim 4, further comprising means within the computer and coupled to said linking means for re-distributing and reassigning tasks to each of said processors after linking of tasks by said linking means.
Claim 8
Dependent Claim
67 words
A computerized parallelizing apparatus according to claim 2, further comprising linking means within the computer and coupled to said distributing means and said determining means for linking tasks distributed at different levels, said linking means generating task linkage information for all the tasks distributed by said distributing means so as to link tasks such that processing time after linking is not longer than processing time before linking.
Claim 9
Dependent Claim
282 words
A computerized parallelizing apparatus for converting a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said parallelizing apparatus comprising: pre-compiling means within a computer for converting a source program into intermediate codes; dividing means within the computer and coupled to said pre-compiling means for dividing the intermediate codes into a plurality of tasks, each task having a task size of at least one intermediate code; generating means within the computer and coupled to said dividing means for generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; distributing means within the computer and coupled to said generating means for distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; assigning means within the computer and coupled to said distributing means for assigning tasks which are distributed at each of the levels to processors in the multi-processor system; determining means within the computer for determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; linking means within the computer and coupled to said distributing means and said determining means for linking tasks distributed at different levels, said linking means generating task linkage information for all the tasks distributed by said distributing means so as to link tasks such that processing time after linking is not longer than processing time before linking; and converting means for converting the tasks into object programs to be processed by the plurality of processors.
Claim 10
Dependent Claim
282 words
A computerized parallelizing apparatus for converting a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said parallelizing apparatus comprising: pre-compiling means within a computer for converting a source program into intermediate codes; dividing means within the computer and coupled to said pre-compiling means for dividing the intermediate codes into a plurality of tasks, each task having a task size of at least one intermediate code; generating means within the computer and coupled to said dividing means for generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; distributing means within the computer and coupled to said generating means for distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; assigning means within the computer and coupled to said distributing means for assigning tasks which are distributed at each of the levels to processors in the multi-processor system; determining means within the computer for determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; linking means within the computer and coupled to said distributing means and said determining means for linking tasks distributed at different levels, said linking means generating task linkage information for all the tasks distributed by said distributing means so as to link tasks such that processing time after linking is not longer than processing time before linking; and converting means for converting the tasks into object programs to be processed by the plurality of processors.
Claim 11
Dependent Claim
38 words
A computerized parallelizing apparatus according to claim 7, further comprising means within the computer and coupled to said linking means for re-distributing and reassigning tasks to each of said processors after linking of tasks by said linking means.
Claim 12
Independent Claim
171 words
A method of compiling a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said method performed by a computer with compiler software that controls operation of the computer, said method comprising the steps of: (a) converting a source into intermediate codes; (b) dividing the intermediate codes into a plurality of tasks; (c) generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; (d) distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; (e) assigning tasks which are distributed at each of the levels to processors in the multi-processor system; (f) determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; and (g) converting the tasks into object programs to be processed by the plurality of processors.
Claim 13
Independent Claim
171 words
A method of compiling a source program into object programs susceptible to parallel processing by a multi-processor system having a plurality of processors, said method performed by a computer with compiler software that controls operation of the computer, said method comprising the steps of: (a) converting a source into intermediate codes; (b) dividing the intermediate codes into a plurality of tasks; (c) generating relation information indicative of task sequential relationships among the plurality of tasks on the basis of operand data in the tasks; (d) distributing the plurality of tasks to a plurality of levels obtained by dividing a total processing time by synchronizing time points in a time sequential order; (e) assigning tasks which are distributed at each of the levels to processors in the multi-processor system; (f) determining processing times of machine instructions constituting each of the tasks to generate processing time information indicative of the processing time for each of the tasks; and (g) converting the tasks into object programs to be processed by the plurality of processors.
References Cited (Backward Citations)
US3702005A
Cited
US4853872A
Cited
US4636948A
Cited
JPS62154057A
Cited
JPS6345670A
Cited
JPS6347866A
Cited
US4843540A
Cited
JPS63101957A
Cited
JPS63184841A
Cited
US5151991A
Cited
US5088034A
Cited
US5093916A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-09-18 | 1999-03-20 | 1999-09-19 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-09-18 | 2003-03-20 | 2003-09-19 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-09-18 | 2007-03-20 | 2007-09-19 | $7700.00 | Window Closed / Lapsed |