2024-05-23 19:31:18 发布
网友
我有一个远程类,比如(使用rayAPI)
ray
@ray.remote class className ....
我想启动这个类的60个或更多实例,让它们同时做一些工作
但是,我不能同时启动这个类的50多个实例
如何从python脚本内部更改任何给定时间允许的最大线程数
我相信您需要使用自定义资源。我将几个感兴趣的链接放在下面:
其思想是首先为ray.init的resources参数提供一个字典。字典的每个键对应于您为自定义资源指定的名称。与密钥关联的值是该特定资源可用的最大资源号;无论你把哪个值放进去,你都可以认为它代表100%。通常,设置与特定任务/参与者的执行相关的值是有帮助的。例如,在您的例子中,您希望来自同一个类的50个参与者同时执行,因此50个参与者最有意义
ray.init
resources
ray.init(resources={'Custom': 50})
现在,resources也是@ray.remote的一个参数。它同样需要一个字典,相当于提供给ray.init的字典。假设你有你的类定义:
@ray.remote
@ray.remote class MyClass(object): # Methods
您可以通过提供一个自定义资源值来限制并发执行该类的参与者的数量,该值将与ray.init中定义的值进行比较。该值必须为整数,但小于1的情况除外;将@ray.remote中给定的值除以ray.init中相应的值,然后乘以100,即可得到每个任务/参与者所需的此自定义资源的百分比。在您的例子中,您希望设置50个参与者的限制,我们在ray.init中将Custom设置为50。因此,如果每个参与者要求Custom的值等于1,那么只有50个参与者能够同时运行
Custom
@ray.remote(resources={'Custom': 1}) class MyClass(object): # Methods
现在,该类中最多可以同时执行50个参与者
我相信您需要使用自定义资源。我将几个感兴趣的链接放在下面:
其思想是首先为
ray.init
的resources
参数提供一个字典。字典的每个键对应于您为自定义资源指定的名称。与密钥关联的值是该特定资源可用的最大资源号;无论你把哪个值放进去,你都可以认为它代表100%。通常,设置与特定任务/参与者的执行相关的值是有帮助的。例如,在您的例子中,您希望来自同一个类的50个参与者同时执行,因此50个参与者最有意义现在,
resources
也是@ray.remote
的一个参数。它同样需要一个字典,相当于提供给ray.init
的字典。假设你有你的类定义:您可以通过提供一个自定义资源值来限制并发执行该类的参与者的数量,该值将与
ray.init
中定义的值进行比较。该值必须为整数,但小于1的情况除外;将@ray.remote
中给定的值除以ray.init
中相应的值,然后乘以100,即可得到每个任务/参与者所需的此自定义资源的百分比。在您的例子中,您希望设置50个参与者的限制,我们在ray.init
中将Custom
设置为50。因此,如果每个参与者要求Custom
的值等于1,那么只有50个参与者能够同时运行现在,该类中最多可以同时执行50个参与者
相关问题 更多 >
编程相关推荐