Patent US5048018A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5048018A Expired / Lapsed US ⏱️ 0.0 years remaining

Debugging parallel programs by serialization

Assignee: International Business Machines Corp
•
Filing: 1989-06-29
•
Granted: 1991-09-10
•
Expires: 2009-06-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A serializatin debugging facility operates by assisting the computer programmer in the selection of parallel sections of the parallel program for single processor execution in order to locate errors in the program. Information is collected regarding parallel constructs in the source program. This information is used to establish program structure and to locate sections of the program in which parallel constructs are contained. Program structure and the locations of parallel constructs within a program are then displayed as a tree graph. Viewing this display, a programmer selects parallel sections for serialization. Object code for the program is then generated in accordance with the serialization instructions entered by the programmer. Once executed, the programmer can compare the results of execution of parallel sections of the program in a single processor and a multiprocessor environment. Differing execution results in each environment is indicative of a parallel programming error which can then be corrected by the programmer. The programmer can repeat these steps, each time selecting different sections of the program for serialization. In this way, erroneous sections of the program can be localized and identified.

Inventors

  • 👤 David Bernstein
  • 👤 Kimming So

Bibliographic Details

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

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 64 words
A method of serializing sections of a parallel program, comprising the steps of: a) locating sections of said program that may be executed concurrently; b) displaying information representative of said sections and their interrelationships; c) selecting at least one of said sections for serialization, responsive to the displayed information; d) generating object code for the program providing for serial execution of said selected sections.
Claim 2
Independent Claim 64 words
A method of serializing sections of a parallel program, comprising the steps of: a) locating sections of said program that may be executed concurrently; b) displaying information representative of said sections and their interrelationships; c) selecting at least one of said sections for serialization, responsive to the displayed information; d) generating object code for the program providing for serial execution of said selected sections.
Claim 3
Dependent Claim 28 words
The method of claim 1, wherein the step b) includes the step of representing information of said sections and their interrelationships in the form of a tree graph.
Claim 4
Dependent Claim 57 words
The method of claim 2 wherein the program consists of subprograms and step b) further includes the steps of: representing subprograms as nodes on the tree graph; representing an edge from a node X to a node Y if the subprogram represented by node Y is called by the subprogram represented by node X at least once.
Claim 5
Dependent Claim 40 words
The method of claim 3 further comprising the steps of: e) compiling and executing the parallel program; f) executing the object code generated in step d) of claim 1; g) comparing the results obtained in step e) and step f.
Claim 6
Dependent Claim 36 words
The method of claim 4 further including a method of detecting a section of parallel code containing an error, comprising the step of repeating steps c) through g) until differing results are obtained in step g).
Claim 7
Dependent Claim 42 words
The method of claim 5 wherein displayed nodes are shaded in a first manner when serialization of an entire subprogram has been requested and nodes are shaded in a second manner when particular sections of a subprogram have been requested for serialization.
Claim 8
Independent Claim 104 words
A system for assisting in the serialization of sections of a parallel program which may be used in a multiprocessor computer, said system comprising: a) locating means for locating sections of said program that may be executed concurrently; b) display means coupled to said locating means for displaying information representative of said sections and their interrelationships; c) selection means coupled to said display means for selecting at least one of said sections for serialization, responsive to the displayed information; d) means coupled to said selection means for generating object code for the program, said object code providing for serial execution of said selected sections.
Claim 9
Independent Claim 104 words
A system for assisting in the serialization of sections of a parallel program which may be used in a multiprocessor computer, said system comprising: a) locating means for locating sections of said program that may be executed concurrently; b) display means coupled to said locating means for displaying information representative of said sections and their interrelationships; c) selection means coupled to said display means for selecting at least one of said sections for serialization, responsive to the displayed information; d) means coupled to said selection means for generating object code for the program, said object code providing for serial execution of said selected sections.
Claim 10
Dependent Claim 22 words
The system of claim 7, wherein the information representative of said sections and their interrelationships is displayed in a tree structure format.
Claim 11
Independent Claim 104 words
A method of locating an error in a parallel program, comprising the steps of: a) locating sections of said program that may be executed concurrently; b) displaying information representative of said sections and their interrelationships; c) selecting at least one of said sections for serialization, responsive to the displayed information; d) generating object code for the program providing for serial execution of said selected sections; e) compiling and executing the parallel program; f) executing the object code generated in step d); g) comparing the results obtained in step e) and step f); h) repeating steps c) through g) until the error has been localized.
Claim 12
Independent Claim 104 words
A method of locating an error in a parallel program, comprising the steps of: a) locating sections of said program that may be executed concurrently; b) displaying information representative of said sections and their interrelationships; c) selecting at least one of said sections for serialization, responsive to the displayed information; d) generating object code for the program providing for serial execution of said selected sections; e) compiling and executing the parallel program; f) executing the object code generated in step d); g) comparing the results obtained in step e) and step f); h) repeating steps c) through g) until the error has been localized.
Claim 13
Dependent Claim 51 words
The method of claim 9 wherein said program includes a plurality of subprograms and displayed nodes are shaded in a first manner when serialization of an entire subprogram has been requested and nodes are shaded in a second manner when only particular sections of a subprogram have been requested for serialization.
Claim 14
Independent Claim 169 words
A method of locating an error in a parallel program, wherein the parallel program includes a plurality of subprograms, said method comprising the steps of: a) locating sections of said program that may be executed concurrently; b) displaying information representative of said sections and their interrelationships in the form of a tree graph, wherein the subprograms are represented as nodes on the tree graph and an edge is represented from a node X to a node Y if the subprogram represented by node Y is called by the subprogram represented by node X at least once; c) selecting at least one of said sections for serialization, responsive to the displayed information; d) generating object code for the program providing for serial execution of said selected sections; e) compiling and executing the parallel program; f) executing the object code generated in step d); g) comparing the results obtained in step e) to the results obtained in step f); h) repeating steps c) through g) until the error has been localized.
Claim 15
Independent Claim 169 words
A method of locating an error in a parallel program, wherein the parallel program includes a plurality of subprograms, said method comprising the steps of: a) locating sections of said program that may be executed concurrently; b) displaying information representative of said sections and their interrelationships in the form of a tree graph, wherein the subprograms are represented as nodes on the tree graph and an edge is represented from a node X to a node Y if the subprogram represented by node Y is called by the subprogram represented by node X at least once; c) selecting at least one of said sections for serialization, responsive to the displayed information; d) generating object code for the program providing for serial execution of said selected sections; e) compiling and executing the parallel program; f) executing the object code generated in step d); g) comparing the results obtained in step e) to the results obtained in step f); h) repeating steps c) through g) until the error has been localized.
Claim 16
Dependent Claim 43 words
The method of claim 11 wherein displayed nodes are shaded in a first manner when serialization of an entire subprogram has been requested and nodes are shaded in a second manner when only particular sections of a subprogram have been requested for serialization.

References Cited (Backward Citations)

US4803683A Cited
US4797885A Cited
US4905183A Cited
US4953084A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag