Thread State Management for InfiniBand Data Reception
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In InfiniBand communication, the processing load for checking data reception completion is increased due to repeated thread suspensions and wake-ups, leading to high context switching overhead as the delay time for completion notifications in completion queues (CQs) lengthens.
Innovation Solution
Implementing a mechanism where a first thread issues a reception request and transitions to a suspended state if no completion notification is found, allowing a second thread to execute and periodically check the CQ, reducing the number of suspended and returned states, and transferring data only when the notification is detected.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a thread continuously polls the completion queue to check for data reception completion, then the responsiveness of data reception is improved, but the processing load and context switching overhead increase significantly
Solution Approach 1:
The patent applies dynamics by transitioning the thread between suspended and executed states based on completion notification availability. The thread suspends when no completion notification is present and executes only when needed, creating a dynamic state management approach that reduces continuous polling overhead while maintaining responsive data reception capability
Solution Approach 2:
The system implements self-service through automatic thread state management where the completion queue mechanism itself triggers thread resumption when data is received. The thread doesn't need to actively check or be continuously managed - the system automatically services the thread by transitioning it from suspended to executed state when completion notifications arrive, reducing processing load while maintaining responsiveness
2Reliability
If a thread repeatedly suspends and wakes up to check completion notifications, then the ability to respond to completion is maintained, but context switching overhead increases
Solution Approach 1:
The thread transitions dynamically between suspended and executed states based on completion notification availability. By suspending when no completion notification is present and only executing when needed, the system maintains reliable completion detection while minimizing context switching overhead through state-based management rather than repeated suspension/wake-up cycles
Solution Approach 2:
The completion queue provides feedback to the thread about data reception status. When completion notifications are received, this feedback automatically triggers thread resumption from suspended state, ensuring reliable completion detection without requiring repeated active checking or unnecessary context switching
3Productivity
If the delay time for completion notifications increases, then the processing load for checking completion is reduced, but the time to detect data reception completion increases
Solution Approach 1:
The system uses self-service through automatic thread state management where the completion queue mechanism itself triggers thread resumption when data is received. The thread suspends during periods without completion notifications (reducing processing load) and is automatically resumed by the system when notifications arrive, eliminating the need for active checking while maintaining timely detection
Data Source
AI summary
An information processing apparatus including a communication interface to communicate with another information processing apparatus, and a processor that executes a process including issuing, by a first thread, a reception request of data from the another information processing apparatus to the communication interface, determining, by using the first thread, whether a completion notification is stored in a queue that stores data transmitted from the other information processing apparatus, causing the first thread to transit to a suspended state when the completion notification is not stored, executing a processing by using a second thread included in the plurality of threads when the first thread is in the suspended state, determining whether the completion notification is stored in the queue after the processing, and transferring the received data to the first thread and causing the first thread to return from the suspended state, upon a storing of the completion notification.


