Debugging Data Parallel Processes via Virtual Machine Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging in data parallel computing environments is challenging due to the complexity of managing multiple parallel processes and devices, particularly in environments like GPGPUs, where direct access to execution events and states is limited, hindering effective debugging and issue resolution.

Innovation Solution

Establishing a connection between a debugging module and the data parallel environment to pause and query process execution at the device-independent virtual machine layer, allowing for event notification and fine-grained control over debugging operations, including breakpoint management, without requiring device-specific APIs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If direct debugging access is implemented in data parallel environments, then debugging capability is improved, but device complexity and hardware dependency increase

Engineering Contradiction:
Improvedebugging capabilityVSAvoidhardware dependency
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a debugging module that connects to the data parallel environment through an intermediary interface. This module acts as a mediator between the user and the complex parallel computing environment, providing debugging capabilities without requiring direct hardware access or modification. The debugging module intercepts and processes debug requests, translating them into operations compatible with the data parallel environment's architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual representation or copy of the data parallel environment's execution state that can be examined and manipulated by the debugging module. Instead of directly accessing the complex hardware, the debugger works with a simplified model or snapshot of the execution state, allowing inspection and control without interfering with the actual hardware operations.

Inventive Principle:
Principle #26Copying

2Measurement precision

If fine-grained control over parallel processes is implemented, then debugging precision is improved, but system complexity increases

Engineering Contradiction:
Improvedebugging precisionVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the debugging functionality into distinct segments or layers. The debugging module operates at a higher level, managing coarse-grained control, while individual parallel processes maintain their own internal state information. This segmentation allows precise debugging of specific processes without requiring the entire system to be managed with the same level of detail, reducing overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to the debugging approach by introducing a virtual machine layer or abstraction layer between the hardware and the debugging interface. This additional dimension allows fine-grained control to be achieved through software abstraction rather than direct hardware manipulation, simplifying the control mechanism while maintaining precision.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Speed

If event notification mechanism is implemented, then debugging responsiveness is improved, but communication overhead increases

Engineering Contradiction:
Improvedebugging responsivenessVSAvoidcommunication overhead
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent implements an event notification mechanism where the debugging module is notified periodically or on-demand of specific execution events in the data parallel environment. Instead of continuous monitoring, the system notifies the debugger only at relevant event points (such as process completion, errors, or checkpoint events), providing responsive debugging while minimizing communication overhead by avoiding constant status checks.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8677186B2Debugging in data parallel computations
Publication Date: 2014.03.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8677186B2 patent drawing
  • US8677186B2 patent drawing
  • US8677186B2 patent drawing

AI summary

The debugging of a program in a data parallel environment. A connection is established between a debugging module and a process of the data parallel environment. The connection causes the data parallel environment to notify the debugging module of certain events as they occur in the execution of the process. Upon notification of such an event, the process execution is paused, and the debugging module may query the data parallel environment for information regarding the process at the device independent virtual machine layer. Upon completion of this querying, the process may then resume execution. This may occur repeatedly if multiple events are encountered.