使用ray框架时,可以选择一个选项来选择此任务所需的CPU数量,如here所述。
例如:
@ray.remote(num_cpus=4)
def f():
return 1
但是,目前尚不清楚是否会分配实际的CPU:
4
个CPU(例如,使用CPU亲和力,例如taskset
linux命令或cpuset
docker参数)num_cpus
作为调度元数据。前任要决定他是否可以开始需要16个CPU的新任务,而剩下的只有10个CPU。该任务仍然可以访问所有CPU,并且可以“使用”比num_cpus
选项2似乎更可能出现,但这未在文档中说明。 此外,GPU似乎有一种选择1,这使得调度程序的意图不清楚:
Ray将自动设置环境变量 该过程为CUDA_VISIBLE_DEVICES。
该进程配置为使用某个GPU(但可以通过重置CUDA_VISIBLE_DEVICES
来绕过它)
那么,num_cpus
在ray中如何使用?
答案 0 :(得分:3)
好问题-对于CPU,该分配仅用作元数据(选项2)。对于GPU,分配既用作元数据,又提供隔离。该文档将很快更新(之后将更新答案)。