How severe does this issue affect your experience of using Ray?
None: Just asking a question out of curiosity
Hi there.
I just read the document about Ray architecture (link), in particular, a paragraph of Resource Management and Scheduling, which say an Actor will request 0 CPU for execution by default but request 1 CPUs for placement. As far as I understand, when creating an actor Ray reserves 1 CPUs for the actor. When executing a method of the actor Ray has to use 1 CPUs for execution. I am confused a little. What does it mean “an Actor will request 0 CPU for execution”?
Hi, maybe the comment there is wrong. Basically, the current mechanism is as follow;
When actor is scheduled, it requires 1 CPU
Once actor is created, it requires 0 CPU.
So this ensures only up to num_cpus actors can be created at the same time, but you can eventually have unlimited # of actors if you don’t specify num_cpus. By schduling policy, actors are spread across the cluster by default
Hi @sangcho, thank you for your response. I am a little confused about your second point. Once actor is created, it requires 0 CPU. But neither a remote task nor another actor can’t be scheduled to the worker that already holds the actor created so I think it still requires 1 CPU. Isn’t it so?
when you say “worker”, did you mean worker process?
you cannot create a new actor to a worker process that already initiated an actor. But ray can have more than num_cpus worker process (it is not a hard cap) per each node
when you say “worker”, did you mean worker process?
This is exactly what I mean.
you cannot create a new actor to a worker process that already initiated an actor. But ray can have more than num_cpus worker process (it is not a hard cap) per each node