Python 如何在ray中打印哪个工作人员执行的函数,而不是在仪表板上查找?

Python 如何在ray中打印哪个工作人员执行的函数,而不是在仪表板上查找?,python,ray,Python,Ray,我能够在ray仪表板上看到哪些函数被分配给了哪个worker。是否可以打印出由哪个工作人员执行的函数,而不是在仪表板上查找 代码示例: @ray.remote def mul1(x): return x*x @ray.remote def mul2(y): return y*y @ray.remote def add(x,y): return x+y futures = add.remote(mul1.remote(2), mul2.remote(3)) ray.g

我能够在ray仪表板上看到哪些函数被分配给了哪个worker。是否可以打印出由哪个工作人员执行的函数,而不是在仪表板上查找

代码示例:

@ray.remote
def mul1(x):
    return x*x

@ray.remote
def mul2(y):
    return y*y

@ray.remote
def add(x,y):
    return x+y

futures = add.remote(mul1.remote(2), mul2.remote(3))
ray.get(futures)

所需输出

PID: 2838 - mul2()
PID: 2848 - black()
PID: 2838 - add()

我绝对没有使用ray的经验,但从纯python的角度来看,您可以编写一个简单的装饰器:

def print_name(func):
    @wraps(func)
    def deco(*args, **kwargs):
        print(func.__name__)
        return func(*args, **kwargs)
    return deco
将其放在
@ray.remote

使用示例:

@ray.remote
@print_name
def my_func():
    pass

我绝对没有使用ray的经验,但从纯python的角度来看,您可以编写一个简单的装饰器:

def print_name(func):
    @wraps(func)
    def deco(*args, **kwargs):
        print(func.__name__)
        return func(*args, **kwargs)
    return deco
将其放在
@ray.remote

使用示例:

@ray.remote
@print_name
def my_func():
    pass

我在
def print\u name(func)
之前添加了
@ray.remote
,调用了您的函数,并使用
ray.get(print\u name.remote(add))
传递了问题中提到的函数之一。输出为
。为了从ray获取输出,您必须使用
ray.get(在此处插入函数\u name\u.remote(在此处传递变量)
。我不确定您是否打算让我这样使用它?请您详细说明如何使用您提到的函数获取输出?@PolarBear10我添加了一个使用示例非常感谢!这很有魅力!这是我的输出
(pid=11927)蓝色(pid=11928)黄色(pid=11931)黑色(pid=11937)颜色(pid=11935)绿色(pid=11932)橙色(pid=11928)乘矩阵2(pid=11937)乘矩阵1(pid=11932)乘矩阵3(pid=11937)乘矩阵1(pid=11932)乘矩阵2(pid=11932)multi_3
虽然没有直接关系,但是否有办法将pid的所有值存储在一个变量中,例如,
pid=11932
,以便我以后能够对它们进行分组,以查看哪个pid执行了多少功能?我在
def print_name(func)之前添加了
@ray.remote
调用了您的函数,并使用
ray.get(print\u name.remote(add))
传递了问题中提到的函数之一。输出是
。为了从ray获取输出,您必须使用
ray.get(在此处插入函数名。\u remote(在此处传递变量)\u)
。我不确定您是否打算让我这样使用它?请您详细说明如何使用您提到的函数获取输出?@PolarBear10我添加了一个使用示例非常感谢!这很有魅力!这是我的输出
(pid=11927)蓝色(pid=11928)黄色(pid=11931)黑色(pid=11937)颜色(pid=11935)绿色(pid=11932)橙色(pid=11928)乘矩阵2(pid=11937)乘矩阵1(pid=11932)乘矩阵3(pid=11937)乘矩阵1(pid=11932)乘矩阵2(pid=11932)multi_3
虽然没有直接关系,但是否有办法将pid的所有值(例如,
pid=11932
)存储在一个变量中,以便我以后能够对它们进行分组,以查看哪个pid执行了多少功能?