Ray Adapter作业提交系统JobSubmissionClient的完整使用指南【免费下载链接】ray-adapterCompatible with the core interfaces of the open-source software Ray, it facilitates the seamless migration of workloads running on Ray (such as vllm/verl, etc.) to the Yuanrong cluster, while also enjoying the performance advantages brought by Yuanrongs deep optimization on Huawei Kunpeng and Ascend hardware.项目地址: https://gitcode.com/openeuler/ray-adapter前往项目官网免费下载https://ar.openeuler.org/ar/想要在openYuanrong集群上高效管理和调度Ray工作负载吗 JobSubmissionClient是你的终极解决方案本文将为你提供完整的Ray Adapter作业提交系统使用指南让你轻松掌握如何将Ray应用无缝迁移到openYuanrong集群享受华为鲲鹏和昇腾硬件带来的性能优势。 什么是JobSubmissionClientJobSubmissionClient是Ray Adapter项目中的核心作业提交客户端位于ray_adapter/job_submission/sdk.py。它提供了一套完整的API接口用于向openYuanrong集群提交、管理、监控和删除作业。通过这个强大的工具你可以像在原生Ray环境中一样管理分布式计算任务同时享受openYuanrong的硬件优化优势。 快速开始安装与初始化首先你需要安装Ray Adapterpip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/ray_adapter-0.7.0-py3-none-any.whl然后导入并初始化JobSubmissionClientfrom ray_adapter.job_submission.sdk import JobSubmissionClient # 默认连接到本地Dashboard端口9080 client JobSubmissionClient() # 或者指定远程Dashboard地址 client JobSubmissionClient(addresshttp://your-cluster:9080) 核心功能详解1. 提交作业submit_job方法这是最常用的功能用于向集群提交新的作业任务# 提交一个简单的作业 job_id client.submit_job( entrypointpython my_script.py, job_idmy_job_001, runtime_env{pip: [numpy, pandas]}, metadata{project: data_analysis, user: alice} ) print(f作业提交成功作业ID: {job_id})关键参数说明entrypoint作业入口点命令必需job_id自定义作业ID可选runtime_env运行时环境配置metadata作业元数据信息entrypoint_num_cpus/entrypoint_num_gpusCPU/GPU资源需求2. 获取作业信息get_job_info方法实时监控作业状态和详细信息# 获取作业详细信息 job_details client.get_job_info(my_job_001) print(f作业状态: {job_details.status}) print(f提交时间: {job_details.start_time}) print(f运行节点: {job_details.driver_info.node_ip_address}) print(f元数据: {job_details.metadata})3. 列出所有作业list_jobs方法查看集群中所有作业的概览# 列出所有作业 all_jobs client.list_jobs() print(f集群中共有 {len(all_jobs)} 个作业) for job in all_jobs: print(f- {job.submission_id}: {job.status})4. 停止作业stop_job方法优雅地停止正在运行的作业# 停止指定作业 success client.stop_job(my_job_001) if success: print(作业已成功停止)5. 删除作业delete_job方法从系统中完全移除作业记录# 删除作业 deleted client.delete_job(my_job_001) if deleted: print(作业已成功删除) 高级配置选项自定义连接参数JobSubmissionClient支持多种连接配置client JobSubmissionClient( addresshttp://cluster-master:9080, # Dashboard地址 cookies{session: your_session_token}, # 认证cookie metadata{department: AI_team}, # 默认元数据 headers{Authorization: Bearer your_token}, # 自定义请求头 verifyFalse # SSL验证开发环境 )环境变量配置你可以通过环境变量设置默认Dashboard地址export ray_adapter_DASHBOARD_ADDRESShttp://your-cluster:9080这样在代码中就可以直接使用默认客户端client JobSubmissionClient() # 自动使用环境变量配置 实战应用场景场景1机器学习训练作业# 提交深度学习训练任务 training_job client.submit_job( entrypointpython train_model.py --epochs100 --batch_size32, job_iddl_training_v1, runtime_env{ pip: [torch2.0.0, transformers, datasets], env_vars: {CUDA_VISIBLE_DEVICES: 0,1} }, entrypoint_num_gpus2, entrypoint_memory16000, # 16GB内存 metadata{ model: bert-base, dataset: glue, framework: pytorch } )场景2数据处理流水线# 批量数据处理作业 data_jobs [] for i in range(10): job_id fdata_process_batch_{i} job client.submit_job( entrypointfpython process_data.py --batch{i}, job_idjob_id, entrypoint_num_cpus4, metadata{data_source: ffile_{i}.csv, priority: high} ) data_jobs.append(job) print(f提交数据处理作业: {job_id})场景3作业监控与管理import time def monitor_job_progress(job_id, interval30): 监控作业进度 while True: job_info client.get_job_info(job_id) print(f[{time.strftime(%H:%M:%S)}] 作业 {job_id} 状态: {job_info.status}) if job_info.status in [SUCCEEDED, FAILED, STOPPED]: print(f作业完成最终状态: {job_info.status}) if job_info.message: print(f作业消息: {job_info.message}) break time.sleep(interval) # 启动监控 monitor_job_progress(my_job_001)️ 错误处理与调试异常处理最佳实践from ray_adapter.job_submission.sdk import JobSubmissionClient import requests try: client JobSubmissionClient(addresshttp://invalid-host:9080) job_id client.submit_job(entrypointecho test) except RuntimeError as e: print(f作业提交失败: {e}) except requests.exceptions.ConnectionError: print(无法连接到Dashboard服务器请检查网络和地址配置)调试技巧检查Dashboard连接import requests response requests.get(http://your-cluster:9080/api/jobs/) print(fDashboard状态: {response.status_code})验证作业参数# 确保runtime_env格式正确 valid_runtime_env { pip: [package1, package2], # 列表格式 env_vars: {KEY: VALUE}, # 字典格式 working_dir: ./ # 字符串格式 } 性能优化建议1. 合理配置资源根据作业需求精确设置CPU/GPU数量避免资源浪费和竞争2. 批量作业管理使用循环批量提交相关作业实现作业依赖关系管理3. 元数据利用使用metadata字段记录作业上下文信息便于后续查询和分析 测试与验证Ray Adapter提供了完整的测试用例位于ray_adapter/tests/test_jobclient.py。你可以参考这些测试来验证你的实现# 参考测试用例 def test_submit_jobs(self): client JobSubmissionClient() submission_id client.submit_job( entrypointecho 3, submission_idtest_job123 ) self.assertEqual(submission_id, test_job123) 总结JobSubmissionClient是Ray Adapter项目中的关键组件它为openYuanrong集群提供了强大而灵活的作业管理能力。通过本文的完整指南你已经掌握了✅基础使用安装、初始化和基本API调用✅核心功能作业提交、监控、停止和删除✅高级配置自定义连接参数和环境变量✅实战应用机器学习训练、数据处理等场景✅最佳实践错误处理、调试技巧和性能优化现在你可以自信地将Ray应用迁移到openYuanrong集群享受华为鲲鹏和昇腾硬件带来的极致性能下一步行动建议尝试提交你的第一个作业探索runtime_env的更多配置选项实现作业状态监控面板优化资源调度策略记住Ray Adapter的完整源代码和文档都在项目中随时可以查阅ray_adapter/job_submission/目录获取更多细节。祝你在openYuanrong集群上的分布式计算之旅顺利【免费下载链接】ray-adapterCompatible with the core interfaces of the open-source software Ray, it facilitates the seamless migration of workloads running on Ray (such as vllm/verl, etc.) to the Yuanrong cluster, while also enjoying the performance advantages brought by Yuanrongs deep optimization on Huawei Kunpeng and Ascend hardware.项目地址: https://gitcode.com/openeuler/ray-adapter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考