Best way to config ray workers

Say if I have 64Cores and 128GB Memory in total, what is the best practice to partition to ray workers?

Way1: 64 workers with 1Core 2GB Memory
Way2: 1 worker with 64Cores 128GB Memory.

If I specify ray.remote(num_cpus=1, memory=512M) and I have 64 tasks, in Way2, will the 64 tasks be scheduled for the worker simultaneously? If that is the case, does that mean it is more flexible to assign a large resources to Ray workers?

cc @sangcho can you please help to answer this? Thanks!

When you say ray workers, you meant the machine or process?

I use k8s deployment, each pod will start a ray worker node

I think it is better to use a larger node with more resources. Also, it is always better to have at least 4 cores for each ray worker node (because you will have components for ray itself).

ok, make sense. So if I specify ray.remote(num_cpus=1, memory=512M), and each worker has 4 cores, for example, it is possible to launch 4 actors in that worker right?

Yes, that’s correct!

1 Like