Automated Variable Mapping for Asymmetric Multiprocessing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Programmers face challenges in porting applications to data processing systems with asymmetric multiprocessing and distributed memory architectures, as these systems require complex management of memory coherence and multiple physical instances of logical variables, leading to time-consuming, expensive, and error-prone processes.
Innovation Solution
A computer-implemented method that identifies the need for multiple physical instances of logical variables and adds mapping support to the source program to adapt it for execution on data processing apparatus, using architectural descriptions to automate the process and reduce programmer burden.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual management of memory coherence and multiple physical instances is implemented, then system control and data consistency are maintained, but programming time and error rates increase significantly
Solution Approach 1:
The system performs self-service through automated identification and mapping of multiple physical instances of logical variables. The computer-implemented method automatically analyzes the source program, identifies variables requiring multiple physical instances, and generates the necessary mapping code without programmer intervention, thereby maintaining data consistency while eliminating manual programming overhead.
Solution Approach 2:
The invention applies preliminary action by performing static analysis and identification of multiple physical instance requirements during the compilation phase before execution. The system pre-determines which logical variables need multiple physical instances and generates the appropriate mapping support code in advance, preventing coherence errors before they occur during runtime.
2Ease of operation
If automated mapping support is added to the source program, then programming complexity and error rates decrease, but system architecture complexity increases
Solution Approach 1:
The invention introduces an intermediary component - a computer-implemented mapping system that acts as a mediator between the programmer and the complex distributed memory architecture. This intermediary automatically handles the translation of logical variables to multiple physical instances, shielding the programmer from architectural complexity while managing the necessary mappings in the background.
Solution Approach 2:
The system creates copies of the source program with added mapping support code. Rather than modifying the original program structure fundamentally, the invention generates a transformed version that includes the necessary coherence management code, preserving the original program's simplicity while adding the required complexity in a separate layer.
3Productivity
If multiple physical instances of logical variables are created, then data availability across processors is improved, but memory management complexity and error likelihood increase
Solution Approach 1:
The system implements self-service by automatically tracking and managing the coherence state of multiple physical instances. The computer-implemented method autonomously determines which copies are valid, when updates are needed, and generates the appropriate code to maintain consistency, eliminating the need for programmers to manually manage the complexity of multiple memory instances.
Solution Approach 2:
The invention incorporates feedback mechanisms through static analysis that tracks the flow and validity of data across multiple physical instances. The system continuously analyzes program execution paths to determine which copies of variables are currently valid and generates appropriate coherence management code based on this feedback, ensuring data availability while maintaining consistency.
Data Source
AI summary
A computer implemented tool is provided for assisting in the mapping of a computer program to a data processing apparatus wherein multiple physical instances of a logical variable in the computer program are required. A computer program is provided as the input to the tool which analyses the data flow of the program and identifies multiple physical instance requirement for logical variables. The tool adds mapping support commands, such as instantiation commands, Direct Memory Access (DMA) move commands and the like as necessary to support the mapping of the computer program to a data processing apparatus.


