Parallel Distributed Programming via Self-Migrating Threads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel distributed programming methods, such as message passing and distributed shared memory, face challenges in preserving algorithmic and data structure integrity while achieving high performance, with message passing being complex and error-prone and distributed shared memory being inefficient.

Innovation Solution

The development of navigational programming, which employs self-migrating threads that can migrate between processors and utilize distributed shared variables, allowing for efficient access to multiple memories while maintaining the original code and data structure integrity, and enabling efficient parallel distributed computing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If message passing approach is used for parallel distributed programming, then parallel execution efficiency is improved, but code structure complexity and error-proneness increase dramatically

Engineering Contradiction:
Improveparallel execution efficiencyVSAvoidcode structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces distributed shared variables as an intermediary mechanism between processors. These variables provide a shared memory space that mediates communication between parallel tasks, eliminating the need for explicit message passing while maintaining parallel execution efficiency. The shared variables act as a buffer that simplifies the interaction model between distributed processors.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal programming model that works across both shared memory and distributed memory systems. The distributed shared variable abstraction provides multi-functionality by enabling both data sharing and synchronization operations through a unified interface, eliminating the need for separate message passing protocols and complex communication patterns.

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

2Ease of operation

If distributed shared memory approach is used for parallel distributed programming, then code structure integrity is preserved, but data transfer efficiency decreases due to large amounts of data movement

Engineering Contradiction:
Improvecode structure integrityVSAvoiddata transfer efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements local quality by allowing each processor to access distributed shared variables with locality-aware optimization. When a processor needs to access a variable, the system determines the optimal location (local or remote memory) and performs the access accordingly. This maintains simple code structure while improving data transfer efficiency through localized access patterns.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces dynamic memory management where distributed shared variables can be dynamically allocated, accessed, and migrated between processors. The system dynamically determines the optimal placement and access strategy for each variable based on current workload and memory availability, preserving code simplicity while achieving efficient data transfer through adaptive behavior.

Inventive Principle:
Principle #15Dynamics

3Productivity

If traditional parallel distributed programming methods are used, then performance can be improved, but algorithmic integrity and data structure integrity are lost

Engineering Contradiction:
Improvesystem performanceVSAvoidalgorithmic integrity
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent uses copying semantics for distributed shared variables, where each processor maintains a local copy of variables it needs to access frequently. This copying mechanism allows processors to work with local data copies, preserving the original algorithmic structure and data integrity while achieving parallel performance through localized computation on copied data.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7712080B2Systems and methods for parallel distributed programming
Publication Date: 2010.05.04 RGT UNIV OF CALIFORNIA
  • US7712080B2 patent drawing
  • US7712080B2 patent drawing
  • US7712080B2 patent drawing

AI summary

The present invention relates generally to computer programming, and more particularly to systems and methods for parallel distributed programming. Generally, a parallel distributed program is configured to operate across multiple processors and multiple memories. In one aspect of the invention, a parallel distributed program includes a distributed shared variable located across the multiple memories and distributed programs capable of operating across multiple processors.