Function Call Routing in Multiprocessor Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multiprocessor architectures with multiple input/output controllers and graphics processors, there is a need to optimize the execution of software applications by ensuring that function calls are directed to the most suitable secondary calculation units based on system topology and the location of main processors, as current solutions do not efficiently manage latency and accessibility, leading to performance degradation, especially in large systems.
Innovation Solution
A method that determines the system topology, intercepts function calls, identifies the main processor and corresponding secondary calculation units, and modifies the calls to execute functions on the closest available secondary calculation units, minimizing latency by using information from the operating system and dynamically loaded libraries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If function calls are directed to secondary calculation units without considering system topology, then software applications can execute functions, but latency increases and performance degrades due to inefficient routing
Solution Approach 1:
The system performs preliminary determination of the system topology and pre-establishes mapping relationships between main processors and secondary calculation units before function execution. This preliminary action enables optimal routing decisions to be made quickly during execution, reducing latency without requiring real-time topology analysis.
Solution Approach 2:
An intermediary mapping structure is introduced between the function call interface and the actual secondary calculation units. This intermediary layer translates generic function calls into optimized specific unit selections based on topology information, acting as a mediator that enables performance optimization without modifying the original software applications.
2Productivity
If multiple secondary calculation units are available, then computational capacity increases, but it becomes difficult to determine which unit should execute which function based on topology and accessibility
Solution Approach 1:
The topology determination and processor-unit mapping is performed as a preliminary action during system initialization or configuration. This pre-computed mapping stores the relationship between main processors and secondary calculation units, eliminating the need for complex real-time routing decisions and reducing operational complexity.
Solution Approach 2:
The system automatically determines and utilizes topology information without requiring manual configuration or complex routing algorithms. The mapping structure self-organizes based on the physical or logical topology, enabling the system to autonomously make optimal routing decisions based on pre-established relationships.
3Productivity
If function calls are intercepted and modified to route to specific secondary units, then execution optimization is achieved, but the system requires additional components to determine topology and modify calls
Solution Approach 1:
The mapping structure serves multiple functions: it stores topology information, determines optimal routing paths, and facilitates function call redirection. This multi-functional component reduces the need for separate specialized systems, achieving execution optimization without proportionally increasing complexity.
Solution Approach 2:
An intermediary library or middleware layer is introduced that intercepts function calls and applies the topology-based routing logic. This intermediary component consolidates the complexity of topology determination and call modification into a single layer, simplifying the overall system architecture while enabling optimization.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
The invention relates in particular to the optimisation of the execution of a software application in a system having multiprocessor architecture including a plurality of input/output controllers and secondary processing units. After determining (300) the system topology, a call to a function to be executed by a secondary processing unit is intercepted (305). The main processor that generated said call is identified (310). A secondary processing unit is then identified (315) according to the main processor identified and according to the topology of said system. Advantageously, the secondary processing unit thus identified is the secondary processing unit that is the closest to the identified main processor. The call is then modified (320) in order to force the execution of at least one part of the function called in the identified secondary processing unit.