ray-project / rayfed

A multiple parties joint, distributed execution engine based on Ray, to help build your own federated learning frameworks in minutes.
https://rayfed.readthedocs.io
Apache License 2.0
91 stars 20 forks source link

Reuse channel to send data. #141

Closed jovany-wang closed 1 year ago

jovany-wang commented 1 year ago

Before this PR, we'll create a new channel object when sending data. We reuse that in this PR to make code clean.

Also, we did a benchmark from @fengsp(Thanks for the contribution) for this PR, and the result is not too good.

The baseline(before this PR) is:

num calls: 10000
total time (ms) =  79241.70279502869
per task overhead (ms) = 7.924171590805054

and the current result after this PR is:

num calls: 10000
total time (ms) =  78388.72385025024
per task overhead (ms) = 7.83887369632721
fengsp commented 1 year ago

Does this benchmark run on LAN? We should get better performance on WAN.

fengsp commented 1 year ago

LGTM