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

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 19:36
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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag