Communication Adapter Offloading for Network Request Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cluster computing, a significant fraction of server CPU time is devoted to servicing network requests, with the CPU cost of initiating processes and accessing packets through different software layers being substantial, despite the minor work performed at the responding server.
Innovation Solution
Offloading computation to a communication adapter by executing procedure images in communication adapter memory, where a procedure image is an executable image that performs application layer processing, allowing the communication adapter to handle tasks independently of the host processor, thereby reducing CPU load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If computation is performed on the host processor for network requests, then processing capability is sufficient, but CPU time and latency increase significantly
Solution Approach 1:
The patent segments the network request processing function from the host CPU by introducing a separate communication adapter with its own processor. The adapter handles packet reception, procedure image execution, and memory operations independently, dividing the system into distinct functional units that can operate in parallel without contending for CPU resources.
Solution Approach 2:
The communication adapter acts as an intermediary between the network and the host application. It receives network packets, executes appropriate procedure images from shared memory, performs data manipulation, and commits results back to host memory without requiring host CPU intervention for each network operation, thus reducing CPU time while maintaining processing capability.
2Productivity
If the communication adapter executes procedure images independently, then CPU load is reduced, but memory access coordination becomes more complex
Solution Approach 1:
The communication adapter performs self-service by independently acquiring latches on shared memory blocks before executing procedure images and committing results. This self-service mechanism allows the adapter to autonomously manage memory access coordination without requiring host CPU intervention, reducing CPU load while handling the complexity of synchronized memory access through dedicated latch management logic.
3Ease of operation
If procedure images are stored in shared memory, then adapter can access them independently, but memory consistency requirements increase
Solution Approach 1:
The system uses preliminary action by requiring the communication adapter to acquire latches on shared memory blocks before reading or writing procedure images and data. This preliminary latch acquisition ensures that the adapter reads consistent data and that its writes are not interfered with by host memory operations, maintaining memory consistency and data integrity while allowing independent adapter operation.
Data Source
AI summary
A method for offloading computation flexibly to a communication adapter includes receiving a message that includes a procedure image identifier associated with a procedure image of a host application, determining a procedure image and a communication adapter processor using the procedure image identifier, and forwarding the first message to the communication adapter processor configured to execute the procedure image. The method further includes executing, on the communication adapter processor independent of a host processor, the procedure image in communication adapter memory by acquiring a host memory latch for a memory block in host memory, reading the memory block in the host memory after acquiring the host memory latch, manipulating, by executing the procedure image, the memory block in the communication adapter memory to obtain a modified memory block, committing the modified memory block to the host memory, and releasing the host memory latch.


