更改python脚本中允许的最大同时参与者数

2024-05-23 19:31:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个远程类,比如(使用rayAPI)

@ray.remote
class className
   ....

我想启动这个类的60个或更多实例,让它们同时做一些工作

但是,我不能同时启动这个类的50多个实例

如何从python脚本内部更改任何给定时间允许的最大线程数


Tags: 实例脚本远程remote时间线程classray
1条回答
网友
1楼 · 发布于 2024-05-23 19:31:18

我相信您需要使用自定义资源。我将几个感兴趣的链接放在下面:

其思想是首先为ray.initresources参数提供一个字典。字典的每个键对应于您为自定义资源指定的名称。与密钥关联的值是该特定资源可用的最大资源号;无论你把哪个值放进去,你都可以认为它代表100%。通常,设置与特定任务/参与者的执行相关的值是有帮助的。例如,在您的例子中,您希望来自同一个类的50个参与者同时执行,因此50个参与者最有意义

ray.init(resources={'Custom': 50})

现在,resources也是@ray.remote的一个参数。它同样需要一个字典,相当于提供给ray.init的字典。假设你有你的类定义:

@ray.remote
class MyClass(object):
    # Methods

您可以通过提供一个自定义资源值来限制并发执行该类的参与者的数量,该值将与ray.init中定义的值进行比较。该值必须为整数,但小于1的情况除外;将@ray.remote中给定的值除以ray.init中相应的值,然后乘以100,即可得到每个任务/参与者所需的此自定义资源的百分比。在您的例子中,您希望设置50个参与者的限制,我们在ray.init中将Custom设置为50。因此,如果每个参与者要求Custom的值等于1,那么只有50个参与者能够同时运行

@ray.remote(resources={'Custom': 1})
class MyClass(object):
    # Methods

现在,该类中最多可以同时执行50个参与者

相关问题 更多 >