This limit is by design, because grpc service considers the senario when a servie should handle multiple connections.
However, between two clusters, we may have only a handful connections that each needs to send a large object to the other end.
Sometimes we can superposition computation with such communications but sometimes it is hard to do so, particularly when communication time is much longer than computation time.
For example, we have two secretflow clusters, and one needs to send a large ciphertext to another. Using multiple CPUs to do send and receive can really speed up communications in this case.
Can you provide the feature to use multiple cores when doing send and receive?
The current send and recv is an grpc service. The grpc service limits the use of CPU to 1 core per connection. https://github.com/grpc/grpc-swift/issues/992
This limit is by design, because grpc service considers the senario when a servie should handle multiple connections.
However, between two clusters, we may have only a handful connections that each needs to send a large object to the other end. Sometimes we can superposition computation with such communications but sometimes it is hard to do so, particularly when communication time is much longer than computation time.
For example, we have two secretflow clusters, and one needs to send a large ciphertext to another. Using multiple CPUs to do send and receive can really speed up communications in this case.
Can you provide the feature to use multiple cores when doing send and receive?