基于Python的分布式高可用扩展引擎Ray 0.2.0发布
来源:互联网 发布:ubuntu卸载程序命令 编辑:程序博客网 时间:2024/05/18 00:21
翻译自https://ray-project.github.io/2017/09/30/ray-0.2-release.html
Ray是为python机器学习、深度学习而开发的高可用、高性能的分布式框架,目前已经发布到0.2.0版本(注:2017-11-1已经发布了0.2.2),下面是版本发布说明
我们很高兴发布Ray 0.2版本发布,本次发布包括以下信息:
* Plasma 对象存储性能的重大提升
* 增加基于Jpuyter 的web UI页面
* 开始可扩展增强学习库的开发
* 行为容错处理
Plasma
自从上次发布后,Plasma对象已经从Ray项目的基础代码移出,Plasma已经成为Apache Arrow项目的一部分,所以他可以在其他大型高可用型内存计算项目单独使用。此外,我们的基于Arrow的序列化库已经移动到pyarrow了。
在0.2版本中,我们提高了写对象的吞吐量至15Gb/s(从单一客户端写),实现这种性能要求需要巨大的页面(减少TLB缓存未命中),可以看这里的指导意见。
对象被写入速度是是一个关键指标,比如,他是A3C和许多其他算法的瓶颈。
你可以通过下面的方法来测试性能瓶颈
import numpy as npimport rayray.init()x = np.ones(10 ** 9, dtype=np.uint8)# Measure the time required to write 1GB to the Plasma store.%time x_id = ray.put(x)
Web UI
我们基于Jupyter-notebook建立了web UI框架,方便立即和调试应用的性能。查看如何使用这个框架,这个UI包括一个基于chrome tracing的任务时间线,我们可以看到任务在哪执行,任务执行了多久,还有任务之间的依赖情况,下面是任务的可视化样例。
这种类型的可视化可以很方便查看问题、任务,以及任务的平衡情况。
上面的可视化效果中的任务可以在通过下面的脚本生成出来
import rayimport timeray.init()@ray.remotedef f(x): time.sleep(0.001) return 1@ray.remotedef g(*ys): return 1time.sleep(1)x = 1for _ in range(3): ys = [f.remote(x) for _ in range(8)] x = g.remote(*ys)
RLlib
我们开始开发基于Ray的可扩展增强学习库,到目前为止,它包括如下算法:
* 近端优化(PPO)
* 深度学习(QDN)
* 异步优化(A3C)
* 进化策略(ES)
其中DQN、A3C、ES都是基于OpenAI baselines,可以通过下面的方法来使用
# On a single machine.python ray/python/ray/rllib/train.py --alg=PPO \ --env=CartPole-v0# On a cluster.python ray/python/ray/rllib/train.py --alg=PPO \ --env=CartPole-v0 \ --redis-address=<head-node-ip>:6379
这个使用PPO算法来训练一个策略来控制CartPole环境中的客户端。
在亚马逊云上的一组15个m4.16xlarge实例和一个p2.16xlarge实例上利用运行这个(在Humanoid-v1环境训练行走机器人)应用,我们在35分钟内获得超过6000的奖励。推出的产品在512个物理内核上并行化,策略优化在6个GPU上并行化。此实验的相关超参数在 这里。
这个RL库还在开发中,我们正在寻找包括更多的算法实现。
行为容错
我们已经为actor启用了容错功能,如下所示。如果机器发生故障,则在其他机器上重新创建在该机器上运行的行为,并且重播先前在这些演员上执行的任务,以重新创建故障机器的状态。我们正在努力通过使检查点恢复行为状态来提高恢复速度。请参阅Ray中容错的概述。
- 基于Python的分布式高可用扩展引擎Ray 0.2.0发布
- 基于Python的分布式高可用扩展引擎Ray 0.3.0发布
- Redis 3.0.0正式版发布,全新的分布式高可用数据库
- 转载:基于MySQL的高可用可扩展架构探讨
- 基于 MySQL的高可用可扩展架构探讨
- 基于MySQL的高可用可扩展架构探讨
- 基于python的高性能实时并行机器学习框架之Ray介绍
- 分布式系统本质:高吞吐、高可用、可扩展
- 分布式系统本质:高吞吐、高可用、可扩展
- python爬虫进阶(八):分布式系统的高可用与高并发处理
- 高可用、可扩展mysql数据库分布式集群架构
- 基于MySQL的高可用可扩展架构探讨-原文已发表于《程序员》
- 基于弹性计算平台——构建高可用、可扩展的应用
- 基于弹性计算平台——构建高可用、可扩展的应用
- 如何构建高可用的分布式系统
- PhxQueue:高可用、高可靠、高性能的分布式队列
- 数据库高可用、性能扩展的实现
- 高可用分布式集群
- 关于Bootstrap的定制
- Linux下date命令格式化时间格式shell脚本获取指定格式日期
- bootstrap-table显示行号
- Linux_开发注意事项
- 机器学习面试1-10题
- 基于Python的分布式高可用扩展引擎Ray 0.2.0发布
- 如何快速转载CSDN中的博客
- codeforces740D
- SpringMVC框架前端控制器、处理适配器和处理器映射器、视图解析器的配置
- Morse Code:摩尔斯电码介绍与科普
- 使用HAL库出现No Cortex-M SW Device Found
- git客户端乱码解决
- flex div
- 如何防止过拟合