A minimal communication layer for the implementation of immortal algorithms and for facilitating their broad use.
Apache License 2.0
5
stars
1
forks
source link
Embed all tests to be GoogleTest-enabled, C++ tests. Fix a number of minor issues as well, such as reduce the requirements of some tests regarding IB card or memory requirements. Refactor some tests from C to C++ as well. Up the C++ standard from 11 to 17. Use recent CMake and GoogleTest releases. #25
I propose to empirically find the m_maxSrs (maximum number of send requests in a queue pair) in the IBVerbs constructor, not just relying on device information about max_qp_wr, but actually trying to create QPs via ibv_create_qp with different max_send_wr until we find the largest still working number (via binary search). This becomes the updated m_maxSrs. Independently, the 100K element test manyPuts needs to be downgraded to 5K for our cluster, as our count is just over 10K, but actually 10K does not work as well (not sure why?)
This MR is slightly contaminated by fixing some tests. In a new MR, I will only deal with enabling Gtest for tests, and a separate MR will be fixing tests.
I propose to empirically find the m_maxSrs (maximum number of send requests in a queue pair) in the IBVerbs constructor, not just relying on device information about max_qp_wr, but actually trying to create QPs via ibv_create_qp with different max_send_wr until we find the largest still working number (via binary search). This becomes the updated m_maxSrs. Independently, the 100K element test manyPuts needs to be downgraded to 5K for our cluster, as our count is just over 10K, but actually 10K does not work as well (not sure why?)