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

Enable placing ProxyActor to specific Nodes #134

Open NKcqx opened 1 year ago

NKcqx commented 1 year ago

ProxyActor need a external port to send / recv RPCs across parties, and in many senarioes, the port can only be opened on certain Nodes for safety reasons. However, as a Ray Actor, the inner proxy actor is hidden by RayFed and can't be explicitly placed.

NKcqx commented 1 year ago

The solution is: using ActorClass.options to declare ProxyActor's resources so that it can be scheduled (by Ray) to certain Nodes having that resources.

The plan is:

  1. [1/N] Gives a parameter to set ProxyActor's resource.
  2. [2/N] As there're too many ProxyActor related configs in fed.init, merging them into one "XXConfig" entity and exposing as a whole to user.