Elastic Computing Framework for Heterogeneous Resource Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance computing systems face power bottlenecks due to limitations in clock frequencies and increasing energy and cooling costs, making it economically infeasible to scale traditional systems, while hybrid systems with heterogeneous resources like GPUs and FPGAs offer improved efficiency but are hindered by complex application design requirements.

Innovation Solution

Elastic computing provides a framework for transparent and portable application design on hybrid systems by combining standard application code with specialized elastic functions and optimization tools that analyze available resources and runtime conditions to optimize performance, power, and energy use.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional HPC systems increase clock frequencies and system sizes to meet performance demands, then computational performance is improved, but power consumption and cooling costs increase to the point of economic infeasibility

Engineering Contradiction:
Improvecomputational performanceVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system segments computational work into distinct phases (host phase and device phase) that can be executed on different types of processors. The host processor handles data preparation, model training, and result analysis, while specialized devices (GPUs, FPGAs, ASICs) handle specific computational kernels. This segmentation allows each component to operate at optimal efficiency levels, avoiding the power consumption penalties of scaling traditional CPU frequencies while maintaining high overall performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically selects and switches between different device types and implementations based on runtime conditions, problem characteristics, and resource availability. The elastic function mechanism allows the system to adaptively choose the most energy-efficient implementation for each computational task, rather than being locked into a fixed architecture. This dynamic adaptation enables optimal power-performance tradeoffs without requiring continuous frequency scaling.

Inventive Principle:
Principle #15Dynamics

2Use of energy by moving object

If hybrid systems with heterogeneous resources are used to improve energy efficiency, then power requirements are reduced, but application design complexity increases significantly

Engineering Contradiction:
Improvepower efficiencyVSAvoidapplication design complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The system provides a universal programming interface (elastic functions) that works across multiple device types (CPUs, GPUs, FPGAs, ASICs). Application developers write code using this unified interface without needing to understand the specific architecture or programming model of each device type. The system's runtime environment automatically handles the complexity of mapping elastic functions to appropriate device implementations, making heterogeneous systems as easy to program as homogeneous systems while retaining the power efficiency benefits of hardware specialization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system introduces an intermediary layer (the elastic computing runtime and optimization tools) that sits between the application code and the heterogeneous hardware resources. This intermediary automatically performs device selection, code compilation, optimization, and execution management. Application developers interact only with the high-level elastic function interface, while the intermediary handles all the complexity of coordinating multiple device types, eliminating the need for developers to become experts in digital design or hardware specifics.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If specialized device expertise is required for application design on hybrid systems, then performance optimization is achieved, but productivity decreases due to limited usage to device experts

Engineering Contradiction:
Improveperformance optimizationVSAvoidapplication development productivity
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system provides self-service capabilities through automated device selection, performance profiling, and optimization. The runtime environment automatically monitors execution characteristics and dynamically adjusts resource allocation and implementation selection without requiring developer intervention. Performance profiling tools automatically analyze code and suggest optimizations, eliminating the need for developers to manually tune parameters or understand device-specific performance characteristics. This automation maintains high performance optimization while enabling general-purpose developers to achieve expert-level results.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary actions during system initialization and code compilation, including device capability discovery, performance baseline establishment, and optimization strategy pre-computation. By pre-analyzing the computational workload and available resources before execution, the system prepares optimization plans that eliminate the need for runtime adjustments or expert intervention. This preliminary setup enables the system to automatically achieve optimized performance on subsequent executions, greatly improving developer productivity while maintaining high performance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9495139B2Elastic computing
Publication Date: 2016.11.15 UNIV OF FLORIDA RESEARCH FOUNDATION INC
  • US9495139B2 patent drawing
  • US9495139B2 patent drawing
  • US9495139B2 patent drawing

AI summary

Elastic computing is an optimization framework that combines standard application code with specialized elastic functions and corresponding optimization tools. The elastic functions provide a knowledge-base of implementation alternatives and parallelization strategies for a given function. When an application calls an elastic function, the elastic computing tools analyze available devices and resources (e.g., cores, GPUs, FPGAs, etc.) and current run-time parameters, and then transparently select from numerous pre-analyzed implementation possibilities to optimize for performance, power, energy, size, or any combination of these goals.