Parallel Distributed Programming via Self-Migrating Threads
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Productivity
If traditional parallel distributed programming methods are used, then performance can be improved, but algorithmic integrity and data structure integrity are lost
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.
Data Source
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.


