Compiler-Based DVFS Coordination for Distributed Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed computing systems face challenges in optimizing power management across multiple processing devices, leading to inefficiencies in power consumption and performance, particularly in synchronous operations and large machine-learning deployments.
Innovation Solution
A compiler-based approach that analyzes workloads and injects power state instructions into compiled code for each processing device, coordinating voltage and frequency settings to synchronize power states across devices, thereby optimizing power consumption and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If DVFS is applied independently on each processing device, then individual device power management is achieved, but coordinated power management across distributed devices is lost leading to performance bottlenecks
Solution Approach 1:
The patent merges independent DVFS decisions into a coordinated system by having the compiler analyze the entire distributed program and generate unified power management instructions. The compiler combines workload information from multiple processing devices to make centralized power state decisions, ensuring all devices operate at optimal power states simultaneously rather than independently.
Solution Approach 2:
The compiler performs preliminary analysis of the distributed program workload before execution, identifying power state opportunities in advance. By analyzing the compiled code and workload characteristics beforehand, the system can pre-determine optimal power state transitions and inject appropriate instructions into the executable code, avoiding runtime performance bottlenecks.
2Productivity
If processing devices operate at high power states for maximum performance, then computational speed is improved, but power consumption increases
Solution Approach 1:
The system dynamically adjusts power states based on actual workload requirements rather than maintaining static high-performance settings. The compiler analyzes workload characteristics and generates dynamic power management instructions that adjust voltage and frequency settings in real-time according to the actual computational demands of the distributed program.
Solution Approach 2:
The patent changes power state parameters (voltage and frequency) based on analyzed workload characteristics. The compiler identifies sections of code that require high performance and injects power state instructions to adjust operational parameters accordingly, maintaining high computational speed only when and where actually needed rather than universally across all devices and time periods.
3Ease of operation
If power states are not coordinated across synchronous operations, then individual device autonomy is maintained, but bottlenecks occur when devices operate at different speeds
Solution Approach 1:
The compiler acts as an intermediary that coordinates power states across all processing devices. It analyzes the distributed program and generates unified power management instructions that ensure all devices operate at compatible power states during synchronous operations, preventing bottlenecks while maintaining device autonomy during execution.
4Use of energy by moving object
If compiler-based power management is implemented, then coordinated power states across devices are achieved, but system complexity increases
Solution Approach 1:
The compiler performs self-service by automatically analyzing workload characteristics and generating appropriate power management instructions without requiring external intervention or complex runtime coordination mechanisms. The system embeds power management logic directly into the compilation process, eliminating the need for additional hardware or software complexity at runtime.
Data Source
AI summary
Aspects of the disclosed techniques include a compilation process, e.g. for an accelerated linear algebra (XLA) compiler. The compilation process includes identifying, for each processing device of multiple processing devices in a distributed computing system, a respective portion of the uncompiled code that is to be executed by the processing device, retrieving a respective workload for each of the multiple processing devices defining an analysis of processor utilization for the respective portion of the uncompiled code that is to be executed by the processing device, and injecting a power state instruction into a respective portion of the compiled code corresponding the respective portion of the uncompiled code, that is to be executed by each of the multiple processing devices. The power state instruction identifies a voltage setting and a frequency setting that the processing device is instructed to apply when executing the respective portion of the compiled code of the computer program.


