如何在 ray 中打印出哪个 worker 执行了什么功能,而不是在仪表板上查找?

How to print out what function was executed by which worker in ray instead of looking it up on the dashboard?

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

代码示例:

@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