cube-studio/job-template/job/ray
2022-07-26 20:47:20 +08:00
..
build.sh 修改镜像仓库地址 2022-06-08 16:47:57 +08:00
demo.py 模板demo示例 2022-07-26 20:47:20 +08:00
Dockerfile-cpu 添加spark serverless支持 2022-07-19 12:07:29 +08:00
Dockerfile-gpu 添加spark serverless支持 2022-07-19 12:07:29 +08:00
info.json add job template 2022-02-26 22:36:02 +08:00
job_example.py add job template 2022-02-26 22:36:02 +08:00
launcher.py add job template 2022-02-26 22:36:02 +08:00
README.md 模板demo示例 2022-07-26 20:47:20 +08:00
start.sh add job template 2022-02-26 22:36:02 +08:00

安装包

pip install ray

使用

原有代码

# import ray

def fun1(index):
    # 这里是耗时的任务
    return 'back_data'

def main():
    for index in [...]:
         fun1(index)    # 直接执行任务

if __name__=="__main__":
    main()

启用ray框架的代码示例demo.py

import ray,os,time


@ray.remote
def fun1(arg):
    # 这里是耗时的任务,函数内不能引用全局变量,只能使用函数内的局部变量。
    print(arg)
    time.sleep(1)
    return 'back_data'


def main():
    tasks=[]
    tasks_args = range(100)
    for arg in tasks_args:
        tasks.append(fun1.remote(arg))  # 建立远程函数
    result = ray.get(tasks)  # 获取任务结果


if __name__ == "__main__":

    head_service_ip = os.getenv('RAY_HOST', '')
    if head_service_ip:
        # 集群模式
        head_host = head_service_ip + ".pipeline" + ":10001"
        ray.util.connect(head_host)
    else:
        # 本地模式
        ray.init()

    main()