OpenCL Runtime Task Offloading for Mobile Computing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Mobile devices and other local devices are limited by their computing capabilities, making it difficult to transfer tasks to external high-performance devices like cloud services due to incompatibility of instruction set architectures and the lack of an integrated programming model, which complicates task transfer and execution.
Innovation Solution
A method and apparatus using an open computing language (OpenCL) to selectively transfer tasks to internal or external devices based on user preference, automatically selecting the most suitable device for optimal performance and energy efficiency through performance analysis and cost modeling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If tasks are transferred to external high-performance devices like cloud services, then computing capability is improved, but device compatibility and programming complexity worsen due to instruction set architecture incompatibility
Solution Approach 1:
The patent introduces an intermediary layer (runtime system and translation mechanism) between the host application and external computing devices. This intermediary handles instruction set architecture translation and task scheduling, allowing the host to execute tasks on diverse external devices without requiring device-specific programming. The intermediary resolves the incompatibility issue while maintaining high computing capability utilization.
Solution Approach 2:
The patent creates a universal task execution framework that can run on multiple types of devices (mobile devices, servers, cloud services) with different instruction set architectures. By using a standardized task description language and runtime system, the same application can be executed across diverse platforms without modification, achieving multi-functionality and platform independence.
2Power
If tasks are transferred to external devices, then computational power is improved, but energy consumption increases due to data transmission and remote execution
Solution Approach 1:
The patent implements selective task offloading where only specific computationally intensive tasks are transferred to external devices, while other tasks remain executed locally. The runtime system analyzes task characteristics and determines the optimal partitioning between local and remote execution, avoiding the energy overhead of transferring unnecessary tasks while still utilizing external computational power for suitable workloads.
Solution Approach 2:
The patent incorporates feedback mechanisms where the runtime system monitors execution performance, energy consumption, and resource availability in real-time. Based on this feedback, the system dynamically adjusts task allocation decisions, transferring tasks to external devices when it energy-efficient and keeping tasks local when transmission overhead would exceed computational benefits.
3Adaptability or versatility
If device types change or new devices are added, then system adaptability is improved, but re-analysis of task suitability is required increasing complexity
Solution Approach 1:
The patent implements a self-service runtime system that automatically discovers available computing devices, characterizes their capabilities, and determines suitable task allocations without requiring manual intervention. The system autonomously performs device profiling, task analysis, and execution planning, eliminating the need for developers to re-analyze task suitability when devices are added or changed.
Solution Approach 2:
The patent creates a dynamic task execution system that continuously adapts to changing device availability and characteristics. The runtime system dynamically updates its knowledge base of available devices and their capabilities, and automatically re-optimizes task allocation based on current system state, enabling seamless adaptation to new devices without manual reconfiguration.
Data Source
AI summary
Disclosed is a method of executing a kernel of a mobile application program using an open computing language (OpenCL). The method includes receiving, from a server, a resource list including resources to execute a kernel for the application program; determining, if the application program is executed, resources to execute the kernel for the application program among resources of the terminal and the server; and transmitting, if the resources to execute the kernel are determined as the resources of the server, data and the kernel to the server.


