Debugging of High Performance Fortran programs with backup breakpoints
AssigneeInternational Business Machines Corporation
InventorUwe Schwiegelshohn
Life of this patent
Estimating the term…
Abstract
This invention is a debugger for HPF-like languages which can be implemented on top of basically any debugger. A primary feature of the debugger is the use of backup breakpoints to generate a program status which is similar to a program status in a sequential execution of the code and the back and forth mapping between processor variables. This debugger requires some new debugging information which must be provided by the compiler. It then allows debugging from a sequential point of view.
Claims6
A method to support detection of errors in high level parallel source code, wherein the parallel source code is compiled into object code and a plurality of processes each execute a copy of said object code with different data in parallel, comprising the steps of:
- defining a breakpoint in the parallel source code;
- translating the breakpoint into a corresponding breakpoint in each said copy of the object code, each said corresponding breakpoint standing in a defined relationship to one another;
- inserting a backup breakpoint into each said copy of the object code at a nearest location after the corresponding breakpoint in said each copy that will be guaranteed to be encountered by the process executing said each copy if any one of said processes encounters one of said corresponding breakpoints while executing one of said copies and said process executing said each copy does not encounter said corresponding breakpoint in said each copy;
- iteratively:
- executing the copies of the object code in parallel by said processes until the corresponding breakpoint or the backup breakpoint in each said copy is encountered by the process executing said each copy;
- pausing execution of said each copy by the process executing said each copy at the corresponding breakpoint or the backup breakpoint in said each copy, whichever is encountered first;
- evaluating the status of all said processes and automatically resuming execution of said copies of the object code in parallel by said processes if execution of each of said copies is stopped at the backup breakpoint thereof;
- allowing user interaction with the paused processes and user evaluation and modification of program status data;
- and
- resuming execution of the copies of the object code in parallel by said processes on user request until a next breakpoint or a next backup breakpoint or a code termination is encountered by each said process.
A method for interrupting execution of a parallel program at a loop and sequentially processing the loop, comprising the steps of:
- defining a sequentialization breakpoint in a loop of the parallel program, the sequentialization breakpoint demarking the beginning of a loop in the parallel program to be executed sequentially;
- defining exit breakpoints immediately following each exit statement of the loop to be executed sequentially, each exit breakpoint acting as a breakpoint which interrupts processing in processes having completed the execution of an iteration of the loop to be executed sequentially;
- and
- defining a backup breakpoint at the end of the smallest partition in which the loop to be sequentialized is completely included, the backup breakpoint acting as a breakpoint which interrupts processing in processes not executing an iteration of the loop.
Dependencies are inferred from the claim text.