python分布式集ray_Ray⾸页、⽂档和下载-分布式执⾏引擎Ray 是⼀个⾼性能的分布式执⾏引擎,开源的⼈⼯智能框架,⽬标之⼀在于:让开发者可以⽤⼀个运⾏在笔记本电脑上的原型算法,仅需添加数⾏代码就能轻松转为适合于计算机集运⾏的(或单个多核⼼计算机的)⾼性能分布式应⽤。这样的框架需要包含⼿动优化系统的性能优势,同时⼜不需要⽤户关⼼那些调度、数据传输和硬件错误等问题。
与深度学习框架的关系:Ray 与 TensorFlow、PyTorch 和 MXNet 等深度学习框架互相兼容,在很多应⽤上,在 Ray 中使⽤⼀个或多个深度学习框架都是⾮常⾃然的(例如,UC Berkeley 的强化学习库就⽤到了很多 TensorFlow 与 PyTorch)。
与其他分布式系统的关系:⽬前的很多流⾏分布式系统都不是以构建 AI 应⽤为⽬标设计的,缺乏⼈⼯智能应⽤的相应⽀持与 API,UC Berkeley 的研究⼈员认为,⽬前的分布式系统缺乏以下⼀些特性:⽀持毫秒级的任务处理,每秒处理百万级的任务;
嵌套并⾏(任务内并⾏化任务,例如超参数搜索内部的并⾏模拟,见下图);
在运⾏时动态监测任意任务的依赖性(例如,忽略等待慢速的⼯作器);
在共享可变的状态下运⾏任务(例如,神经⽹络权重或模拟器);
⽀持异构计算(CPU、GPU 等等)。
Ray 有两种主要使⽤⽅法:通过低级 API 或⾼级库。⾼级库是构建在低级 API 之上的。⽬前它们包括 Ray RLlib,⼀个可扩展强化学习库;和 Ray.tune,⼀个⾼效分布式超参数搜索库。
Ray 的低层 API
开发 Ray API 的⽬的是让我们能更⾃然地表达⾮常普遍的计算模式和应⽤,⽽不被限制为固定的模式,就像 MapReduce 那样。
动态任务图
Ray 应⽤的基础是动态任务图。这和 TensorFlow 中的计算图很不⼀样。TensorFlow 的计算图⽤于表征神经⽹络,在单个应⽤中执⾏很多次,⽽ Ray 的任务图⽤于表征整个应⽤,并仅执⾏⼀次。任务图对于前台是未知的,随着应⽤的运⾏⽽动态地构建,且⼀个任务的执⾏可能创建更多的任务。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论