Codelet Scheduling for Parallel Program Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern high-end computer architectures face challenges in optimizing resource allocation for distributed computing due to traditional OS resource allocation methods that impede performance when computation and data are distributed, and parallel processing is relied upon for performance improvement.

Innovation Solution

The system compiles and runs computer programs by determining optimal execution environments for codelets at compile-time and dynamically scheduling them at runtime based on dependencies and resource availability, using a runtime system with agents like a codelet scheduler and load balancer to maximize resource efficiency and proximity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional OS resource allocation via interrupts and pre-emption is used, then system simplicity and ease of operation are maintained, but performance and resource efficiency deteriorate in parallel processing environments

Engineering Contradiction:
Improvesystem simplicityVSAvoidperformance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system segments the application into fine-grained codelets that can be independently scheduled and executed on different processing elements. This segmentation enables parallel execution while maintaining manageable complexity through structured resource allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The runspace system implements dynamic resource allocation where codelets are scheduled and migrated based on runtime conditions such as processing element availability, data locality, and load balancing requirements, rather than static OS-level allocation.

Inventive Principle:
Principle #15Dynamics

2Productivity

If codelets are distributed across multiple processing elements, then parallel processing performance is improved, but communication delays and coordination overhead increase

Engineering Contradiction:
Improveparallel processing performanceVSAvoidcommunication delays
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system optimizes for data locality by placing codelets and their required data in the same runspace or nearby processing elements. This local organization reduces communication delays and improves access efficiency while maintaining parallel execution benefits.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The runspace acts as an intermediary layer between the distributed codelets and the underlying hardware architecture, managing communication and coordination to minimize overhead while enabling parallel execution across multiple processing elements.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If fine-grained codelet scheduling is implemented, then resource efficiency and performance are maximized, but system complexity and difficulty of implementation increase

Engineering Contradiction:
Improveresource efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The runspace system implements self-service mechanisms where codelets automatically manage their own execution context, data access, and scheduling requirements. This reduces the burden on the underlying OS and simplifies the implementation of fine-grained scheduling by delegating management to the codelets themselves.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The runspace architecture provides a universal execution environment that handles multiple functions including scheduling, memory management, and communication coordination through a unified framework, reducing overall system complexity despite fine-grained control requirements.

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

4Productivity

If compile-time determination of optimal execution environments is performed, then execution efficiency is improved, but adaptability to runtime conditions deteriorates

Engineering Contradiction:
Improveexecution efficiencyVSAvoidadaptability to runtime conditions
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary analysis at compile-time to determine optimal execution environments for codelets, but maintains the ability to adapt at runtime by monitoring actual system conditions and migrating codelets to more suitable processing elements when conditions change.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The runspace system implements feedback mechanisms that monitor runtime performance and system conditions, using this information to dynamically adjust codelet placement and scheduling decisions, thereby maintaining adaptability while preserving compile-time optimization benefits.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9542231B2Efficient execution of parallel computer programs
Publication Date: 2017.01.10 ET INT
  • US9542231B2 patent drawing
  • US9542231B2 patent drawing
  • US9542231B2 patent drawing

AI summary

The present invention, known as runspace, relates to the field of computing system management, data processing and data communications, and specifically to synergistic methods and systems which provide resource-efficient computation, especially for decomposable many-component tasks executable on multiple processing elements, by using a metric space representation of code and data locality to direct allocation and migration of code and data, by performing analysis to mark code areas that provide opportunities for runtime improvement, and by providing a low-power, local, secure memory management system suitable for distributed invocation of compact sections of code accessing local memory. Runspace provides mechanisms supporting hierarchical allocation, optimization, monitoring and control, and supporting resilient, energy efficient large-scale computing.