Checkpointing Parallel Subsystems for Consistent Program Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Checkpointing in computer systems fails to accurately replicate program behavior due to dependence on external stimuli between checkpoint and error/failure, leading to inconsistencies when replaying the program without identical external data.

Innovation Solution

A processing system that sets checkpoints by recording program states and data content at regular intervals, allowing for automatic or manual replay of the program from the last checkpoint, ensuring consistent recovery by resending data content and controlling processors to restart from the recorded state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If checkpointing is implemented to enable program recovery, then reliability is improved, but the accuracy of program behavior replication deteriorates due to external stimulus dependence

Engineering Contradiction:
Improveprogram recovery capabilityVSAvoidprogram behavior replication accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by recording not only the program state at checkpoint moments but also all external stimuli (input data, environmental parameters, system events) that occur between checkpoints. This allows the replay process to reconstruct the exact execution conditions that led to the original program behavior, thereby maintaining both reliability and behavioral accuracy during recovery operations.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If complete program state and external stimuli are recorded at checkpoints, then program behavior replication accuracy is improved, but device complexity increases

Engineering Contradiction:
Improveprogram behavior replication accuracyVSAvoidcheckpointing system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the checkpointing system into distinct functional components: a state recording module that captures program counter and register values, an external stimuli recording module that captures input data and environmental conditions, and a replay coordination module that manages the reconstruction process. This segmentation allows each component to be optimized independently and simplifies the overall system architecture while maintaining comprehensive recording capabilities.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If frequent checkpoints are set to capture external stimuli, then program behavior replication accuracy is improved, but productivity decreases due to increased overhead

Engineering Contradiction:
Improveprogram behavior replication accuracyVSAvoidprogram execution efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements periodic action by establishing checkpoints at regular intervals during program execution rather than continuously. Between these periodic checkpoints, the system maintains normal high-speed execution. The checkpoint frequency is optimized to capture sufficient external stimuli information for accurate replay while minimizing the performance overhead, achieving a balance between replication accuracy and productivity.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11263081B2Checkpointing
Publication Date: 2022.03.01 GRAPHCORE LTD
  • US11263081B2 patent drawing
  • US11263081B2 patent drawing
  • US11263081B2 patent drawing

AI summary

A system comprising: a first subsystem comprising at least one first processor, and a second subsystem comprising one or more second processors. A first program is arranged to run on the at least one first processor, the first program being configured to send data from the first subsystem to the second subsystem. A second program is arranged to run on the one more second processors, the second program being configured to operate on the data content from the first subsystem. The first program is configured to set a checkpoint at successive points in time. At each checkpoint it records in memory of the first subsystem i) a program state of the second program, comprising a state of one or more registers on each of the second processors at the time of the checkpoint, and ii) a copy of the data content sent to the second subsystem since the respective checkpoint.