Understanding resource requirement for tasks and actors

From the documentation Resources — Ray 2.5.1,

by default, actors cannot get scheduled on a zero-cpu node, but an infinite number of them can run on any non-zero cpu node. 

Can you elaborate it? Why would an actor be running on a node if it cannot be scheduled on it?

And I’m setting the head node to have zero cpu as suggested in the cluster config: RayCluster Configuration — Ray 2.5.1
Does it mean that the head node is only used to run the driver code but not the actual task, i.e. the function/class decorated by remote?

Yea, if you set head node to zero cpu then the head node can only run driver code or any task/actors with explicit num_cpus=0.

For the actor resource, I’d suggest you to explicit set num_cpus instead of relying on the default behavior which only exists for historical reasons.