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

Method for debugging in a parallel computer system and system for the same

Assignee: Hitachi Ltd
•
Filing: 1990-11-26
•
Granted: 1994-11-01
•
Expires: 2010-11-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a parallel computer, a method for controlling a debugging process includes the steps of registering identifiers of plural processors into an execution waiting queue in a predetermined order; executing a corresponding program by each of the processors in an order until it is brought into either a waiting state or an end state; registering the identifier of the processor of the waiting state as a last element of the execution waiting queue; and repeating the executing step until there are no executable processors. A program having a bug is determined from the identifiers left in the execution waiting queue. Further, the debugging-process control method further includes outputting trace data during execution of the executing step, the program having the bug is determined from this trace data.

Inventors

  • 👤 Kyoko Iwasawa
  • 👤 Yoshikazu Tanaka

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 03:53
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 204 words
In a parallel computer system including a main processor and a plurality of processors each having an identifier, a method for sequentially executing parallel programs for identification of bugs comprising the steps of: (a) registering, by the main processor, data sets for said plurality of processors into a queue in a predetermined order, each data set including an identifier of one of the processors and an execution address of one of the programs corresponding to the processor; (b) removing, by the main processor, one of the data sets registered in said queue; (c) controlling, by the main processor, said processor identified by the identifier included in the removed data set to execute the corresponding one program until said processor has fallen into either an end state or a waiting state for either data to be supplied from another processor or synchronization with another processor, while inhibiting operation of the other processors; (d) registering in said queue by the main processor, a data set including the identifier of the executing processor and an address from which the execution is restarted when the executing processor has fallen into the waiting state; and (e) repeating said steps (b) to (d) until a predetermined end condition is satisfied.
Claim 2
Dependent Claim 204 words
In a parallel computer system including a main processor and a plurality of processors each having an identifier, a method for sequentially executing parallel programs for identification of bugs comprising the steps of: (a) registering, by the main processor, data sets for said plurality of processors into a queue in a predetermined order, each data set including an identifier of one of the processors and an execution address of one of the programs corresponding to the processor; (b) removing, by the main processor, one of the data sets registered in said queue; (c) controlling, by the main processor, said processor identified by the identifier included in the removed data set to execute the corresponding one program until said processor has fallen into either an end state or a waiting state for either data to be supplied from another processor or synchronization with another processor, while inhibiting operation of the other processors; (d) registering in said queue by the main processor, a data set including the identifier of the executing processor and an address from which the execution is restarted when the executing processor has fallen into the waiting state; and (e) repeating said steps (b) to (d) until a predetermined end condition is satisfied.
Claim 3
Dependent Claim 69 words
The method according to claim 1, wherein said step (e) includes the steps of: determining that the end condition is satisfied, when the data sets registered in said queue are the same before and after a repetition of said steps (b) to (d); executing said steps (b) to (d) again; and stopping further repetition of said step (b) to (d) when said data sets are determined to be same.
Claim 4
Dependent Claim 31 words
The method according to claim 2, further comprising the step of outputting the data sets registered in said queue when the further repetition of said steps (b) to (d) is stopped.
Claim 5
Dependent Claim 13 words
The method according to claim 1, wherein said predetermined order is arbitrarily determined.
Claim 6
Dependent Claim 23 words
The method according to claim 1, wherein said predetermined order is determined based upon the number of data transmissions executed in each program.
Claim 7
Dependent Claim 24 words
The method according to claim 1, wherein said predetermined order is determined by generating random numbers based on an execution time of each program.
Claim 8
Dependent Claim 36 words
The method according to claim 1, further comprising the step of linking a debug routine with the user program without compiling the user program again, said steps (a) to (e) being based on the debug routine.
Claim 9
Dependent Claim 46 words
The method according to claim 1, wherein each program includes a statement for outputting a variable array and a referred or defined area of the variable array for each access to the variable array, said method further comprising executing steps (a) to (e) in different order.
Claim 10
Dependent Claim 206 words
In a parallel computer system including a main processor and a plurality of processors each having an identifier, a method for debugging a plurality of parallel programs of a user program, each parallel program including code for outputting a variable array, an accessed part thereof and definition or reference of the part by sequentially executing the parallel programs for identification of bugs, said method being executed by the computer system and comprising the steps of: (a) allocating the parallel programs to said processors, respectively; (b) registering the identifiers of said plurality of processors in a table in accordance with a predetermined rule; (c) controlling said processors to execute the allocated parallel programs in an order of numbers such that only one processor is active at a time, until each processor is brought into one of an end state and a waiting state for either data or synchronization, while outputting trace data; (d) registering the identifier of the processor brought into the waiting state in the table; (e) repeating said steps (c) and (d) until an end condition is satisfied; and (f) repeating said steps (b) to (e), wherein said step (b) is executed such that serial numbers are assigned to the processors in a different order.
Claim 11
Dependent Claim 206 words
In a parallel computer system including a main processor and a plurality of processors each having an identifier, a method for debugging a plurality of parallel programs of a user program, each parallel program including code for outputting a variable array, an accessed part thereof and definition or reference of the part by sequentially executing the parallel programs for identification of bugs, said method being executed by the computer system and comprising the steps of: (a) allocating the parallel programs to said processors, respectively; (b) registering the identifiers of said plurality of processors in a table in accordance with a predetermined rule; (c) controlling said processors to execute the allocated parallel programs in an order of numbers such that only one processor is active at a time, until each processor is brought into one of an end state and a waiting state for either data or synchronization, while outputting trace data; (d) registering the identifier of the processor brought into the waiting state in the table; (e) repeating said steps (c) and (d) until an end condition is satisfied; and (f) repeating said steps (b) to (e), wherein said step (b) is executed such that serial numbers are assigned to the processors in a different order.
Claim 12
Dependent Claim 27 words
The method according to claim 9, wherein the end condition is that the registered identifiers are the same as those before the repeating of said step (e).
Claim 13
Dependent Claim 31 words
The method according to claim 9, wherein said step (e) further comprises the step of outputting the identifiers of the processors in the waiting state when the end condition is satisfied.
Claim 14
Dependent Claim 210 words
In a multiprocessor system including a plurality of processors each having an identifier, a method for debugging a plurality of parallel programs of a user program by sequentially executing the parallel programs to identify a bug, said method being executed by the multiprocessor system and comprising the steps of: (a) allocating the parallel programs to said processors, respectively; (b) registering data sets for said processors in a execution waiting table in a predetermined order, each data set including an identifier of one of the processors and an address to be run therefrom of a corresponding parallel program allocated to said one processor; (c) referring to one of the data sets registered in the execution waiting table in accordance with the predetermined order to control one of the processors for the referred data set to execute the parallel program allocated to said one processor from said address within the referred data set while updating said address until the processor is brought into either an end state or a waiting state for either data or synchronization; and (d) registering a data set for the processor in the execution waiting table when the processor has been brought into the waiting state, to repeat said step (c) until a predetermined end condition is satisfied.
Claim 15
Dependent Claim 210 words
In a multiprocessor system including a plurality of processors each having an identifier, a method for debugging a plurality of parallel programs of a user program by sequentially executing the parallel programs to identify a bug, said method being executed by the multiprocessor system and comprising the steps of: (a) allocating the parallel programs to said processors, respectively; (b) registering data sets for said processors in a execution waiting table in a predetermined order, each data set including an identifier of one of the processors and an address to be run therefrom of a corresponding parallel program allocated to said one processor; (c) referring to one of the data sets registered in the execution waiting table in accordance with the predetermined order to control one of the processors for the referred data set to execute the parallel program allocated to said one processor from said address within the referred data set while updating said address until the processor is brought into either an end state or a waiting state for either data or synchronization; and (d) registering a data set for the processor in the execution waiting table when the processor has been brought into the waiting state, to repeat said step (c) until a predetermined end condition is satisfied.
Claim 16
Dependent Claim 31 words
The method according to claim 12, further comprising (e) repeating said steps (b) to (d) when the end condition is satisfied, wherein said step (b) is executed in a different order.
Claim 17
Dependent Claim 44 words
The method according to claim 13, wherein said step (d) includes the step of determining that the end condition is satisfied when no change is made in a content of the execution waiting table before and after the plurality of parallel programs are executed.
Claim 18
Dependent Claim 70 words
The method according to claim 13, wherein each parallel program include code outputting a name of a variable array, an accessed part thereof and definition or reference of the part as trace data, the array being shared by some of the parallel programs, and said step (c) further comprising the step of outputting the traced data for each access to the array during the execution of the allocated parallel programs.
Claim 19
Dependent Claim 168 words
A parallel computer system comprising: a plurality of processors, each processor being assigned with an identifier and executing parallel programs of a user program; an execution waiting queue; means for registering data sets for said plurality of processors into said execution waiting queue in a predetermined order, each data set including an identifier of one of the processors and an execution start address of one of the parallel programs to be executed by the one processor; means for causing said processors in accordance with the registered data sets, to execute the user program such that only one processor executes the corresponding parallel program one at a time in the order until the processor is brought into one of an end state and a waiting state for either data or synchronization; means for registering a data set for the processor brought into the waiting state in said queue again; and measn for stopping the control when a predetermined end condition is satisified, to detect bugs in the parallel programs.
Claim 20
Dependent Claim 168 words
A parallel computer system comprising: a plurality of processors, each processor being assigned with an identifier and executing parallel programs of a user program; an execution waiting queue; means for registering data sets for said plurality of processors into said execution waiting queue in a predetermined order, each data set including an identifier of one of the processors and an execution start address of one of the parallel programs to be executed by the one processor; means for causing said processors in accordance with the registered data sets, to execute the user program such that only one processor executes the corresponding parallel program one at a time in the order until the processor is brought into one of an end state and a waiting state for either data or synchronization; means for registering a data set for the processor brought into the waiting state in said queue again; and measn for stopping the control when a predetermined end condition is satisified, to detect bugs in the parallel programs.

References Cited (Backward Citations)

US4394725A Cited
US4589068A Cited
US5048018A Cited
US5287465A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-10-31 1998-05-02 1998-11-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-10-31 2002-05-02 2002-11-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-10-31 2006-05-02 2006-11-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag