Self-Stabilizing Compilation for Parallel Program Abstractions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compiler frameworks lack automated stabilization of program abstractions, leading to inconsistencies that impact the correctness and optimality of optimizations, especially in parallel programming environments, where concurrency complicates the stabilization of seemingly unconnected parts of the code.

Innovation Solution

A computer-implemented method and system for automatic self-stabilizing compilation that generates program abstractions, performs optimization operations, and stabilizes these abstractions using predetermined elementary transformations, maintaining consistency through modes like lazy-invalidate, lazy-update, eager-update, or eager-invalidate stabilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If automated stabilization of program abstractions is implemented, then the correctness and optimality of optimizations is improved, but the device complexity increases

Engineering Contradiction:
Improvecorrectness of optimizationsVSAvoidcompiler framework complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service by automatically stabilizing program abstractions without requiring manual intervention from optimization writers. The stabilizer component autonomously detects inconsistencies and performs stabilization operations, eliminating the burden of manual identification and implementation of stabilization logic while ensuring correctness of optimizations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The stabilizer acts as an intermediary component between program transformations and program abstractions. It mediates the interaction by monitoring transformations, detecting inconsistencies in abstractions, and performing stabilization operations, thereby isolating the complexity of stabilization logic from both the transformation writers and the core compiler framework.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If manual stabilization of program abstractions is performed, then the burden on optimization writers is reduced, but the productivity decreases

Engineering Contradiction:
Improveease of writing optimizationsVSAvoidcompilation speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system applies partial action by performing stabilization only when and where needed, rather than stabilizing all abstractions unconditionally. The stabilizer selectively intervenes based on detected inconsistencies, avoiding unnecessary stabilization operations that would waste time, while still providing automated assistance where required.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system implements feedback mechanisms where the stabilizer continuously monitors program abstractions for consistency with current program state. When inconsistencies are detected, the stabilizer performs corrective stabilization operations and verifies their effectiveness, creating a closed-loop system that adapts to the actual needs of the compilation process.

Inventive Principle:
Principle #23Feedback

3Reliability

If complete recalculation of program abstractions is performed, then the consistency is improved, but the loss of time increases

Engineering Contradiction:
Improveconsistency of abstractionsVSAvoidstabilization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments the stabilization process into targeted operations rather than performing complete recalculation. The stabilizer identifies specific abstractions that require stabilization and applies stabilization operations only to those segments, leaving other abstractions unchanged. This selective approach maintains consistency where needed while avoiding unnecessary time consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by maintaining program abstractions in a consistently updated state through incremental stabilization. Rather than waiting for complete inconsistency before acting, the stabilizer performs preliminary stabilization operations that prevent the accumulation of inconsistencies, reducing the need for time-consuming complete recalculation later.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240020101A1System and method for performing self-stabilizing compilation
Publication Date: 2024.01.18 INDIAN INST OF TECH MADRAS
  • US20240020101A1 patent drawing
  • US20240020101A1 patent drawing
  • US20240020101A1 patent drawing

AI summary

Disclosed are systems and methods for automatic self-stabilizing compilation of programs. The method includes receiving an input program and generating a plurality of abstractions of the input program using a plurality of analysis operations, by an analysis component (208). Each one of the plurality of abstractions represents a program state. An optimization component (210) performs an optimization operation on one of the plurality of abstractions (316) based on a set of predetermined elementary transformations (408) to modify the program state. A stabilization component (212) performs stabilization of one or more of the plurality of abstractions (316) using the information captured by the set of predetermined elementary transformations in a stabilization mode. The stabilizing includes updating the one or more abstractions (316) to maintain consistency of the abstractions with the program states.