Reducing Inter-Task Latency via RPC Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multiprocessor systems face significant inter-task latency due to the synchronous nature of remote procedure calls (RPCs), which hinders performance while asynchronous RPCs are difficult for programmers to use effectively, leading to issues like race conditions and deadlocks.
Innovation Solution
A method that replaces synchronous RPCs with initiation and wait instructions, allowing for reordering of instructions based on runtime resource descriptions and dependencies to reduce inter-task latency, while maintaining the simplicity of synchronous RPC programming.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If synchronous RPCs are used, then programming simplicity is improved, but inter-task latency increases
Solution Approach 1:
The patent segments the synchronous RPC call into two separate instructions: an initiation instruction that starts the remote procedure execution, and a wait instruction that pauses execution until completion. This segmentation allows the processor to issue multiple initiation instructions in sequence without waiting for each to complete, thereby reducing inter-task latency while maintaining the synchronous programming model through the wait instruction.
Solution Approach 2:
The initiation instruction performs the action of starting the remote procedure execution in advance, before the actual completion and return of results. By issuing initiation instructions ahead of time and using wait instructions to synchronize at appropriate points, the system reduces the overall latency of task execution sequences while preserving the synchronous programming interface.
2Loss of time
If asynchronous RPCs are used, then inter-task latency is reduced, but programming complexity increases
Solution Approach 1:
The patent introduces wait instructions as intermediaries between the initiation instructions and the actual synchronous operations. These wait instructions act as mediators that restore the synchronous programming model by pausing execution until remote procedures complete, thereby hiding the asynchronous execution mechanism from the programmer and maintaining programming simplicity while achieving reduced latency through parallel initiation of multiple RPCs.
3Ease of operation
If multiple synchronous RPCs are executed sequentially, then programming simplicity is maintained, but signaling overhead increases
Solution Approach 1:
By segmenting synchronous RPC calls into initiation and wait instructions, the patent enables the processor to issue multiple initiation instructions without immediate waiting, thereby reducing the frequency of signaling operations between the control processor and remote processors. The signaling overhead is reduced because the wait instructions can be batched or optimized, and the initiation instructions can be processed in parallel.
Data Source
AI summary
A method of reducing inter-task latency for software comprising a sequence of instructions including a synchronous remote procedure call to be executed on a multiprocessor system comprising a calling processor and at least one remote engine. The method comprises the steps of: inputting the software; inputting a runtime resource description describing a runtime environment of the multiprocessor system; identifying the synchronous remote procedure call in the sequence of instructions; replacing the synchronous remote procedure call in the sequence of instructions with an initiation instruction and a wait instruction to generate a substitute sequence of instructions; reordering the substitute sequence of instructions with reference to the runtime resource description and the dependencies to generate a reordered sequence of instructions; and outputting the reordered sequence of instructions.


