Message size Best practice ( 1 send tagged + 1 get vs 2 send tagged) #6528
-
Hi , we are currently using UCX to accelerate a Big Data platform, part of the requirement is that we need to support both TCP and RDMA transport (in java). However, we are struggling a bit with extracting the best performance regarding message size and when to select RMA vs B-Copy. The question boils down to this, when is it preferred to do the following flow :
Vs :
What is the data size cutoff point where it is preferred to do the first flow vs the second flow (1MB , 4MB, 16MB, 4k , 64k, 128k 512k,... ) ? Also does the transport (TCP vs IB) type affect the decision? Note that we assume we a pre-allocated buffer cache to reuse rkey, reduce registration, etc.. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 12 replies
-
From our experience with SparkUCX project - the best performance is when you can exchange (address + rkey) beforehand and use one-sided RDMA API at critical data path, because it doesn't require active progress on the other side. Of course, it won't work with TCP. So if you can't support initial metadata exchange - tagged or active messages API would work better, because:
|
Beta Was this translation helpful? Give feedback.
From our experience with SparkUCX project - the best performance is when you can exchange (address + rkey) beforehand and use one-sided RDMA API at critical data path, because it doesn't require active progress on the other side. Of course, it won't work with TCP. So if you can't support initial metadata exchange - tagged or active messages API would work better, because: