1. 程式人生 > >基於Python的分散式高可用擴充套件引擎Ray 0.2.0釋出

基於Python的分散式高可用擴充套件引擎Ray 0.2.0釋出

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 np
import ray

ray.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 ray
import time

ray.init()

@ray.remote
def f(x):
    time.sleep(0.001)
    return
1 @ray.remote def g(*ys): return 1 time.sleep(1) x = 1 for _ 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.3.0釋出

Ray: 0.3釋出 我們很高興宣佈釋出Ray的0.3版本,本次釋出主要包括distributed actor handles 和Ray.tune——一個新的超參搜尋庫,還包括修復一系列bug和提高穩定性。 為了更新到最新版本,執行: pip inst

基於Python分散式可用擴充套件引擎Ray 0.2.0釋出

Ray是為python機器學習、深度學習而開發的高可用、高效能的分散式框架,目前已經發布到0.2.0版本(注:2017-11-1已經發布了0.2.2),下面是版本釋出說明 我們很高興釋出Ray 0.2版本釋出,本次釋出包括以下資訊: * Plasma 物

基於HAProxy+Keepalived可用負載均衡web服務的搭建

1.2 epo cnblogs oba backup 保持 ica mysql redis 一 原理簡介 1.HAProxyHAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。HAProxy特別適用於那

redis進化三:redis的分散式可用

前面的文章中3個單redis節點的分散式並不支援高可用。 高可用的基礎核心:主從複製結構。 redis的主從複製       支援一主多從,多級主從。根據企業經驗來看最多2級,最多6從       否則結構不穩定(經常不能同步資料) redis的主從結構  

陶輝的專欄(聚焦分散式可用系統。個人網站:www.taohui.pub)

高效能網路程式設計 詳細的從底層kernel提供的各種tcp程式設計介面,包括其使用場景和實現邏輯,到高層的執行緒、鎖、各種設計模式,再到更高層的軟體工層上的思考,細緻探討如何使伺服器的TCP程式設計能夠達到高併發、高TPS、高可

Spark叢集搭建+基於zookeeper的可用HA

export JAVA_HOME=/usr/java/jdk1.8.0_20/ export SCALA_HOME=/home/iespark/hadoop_program_files/scala-2.10.6/ export HADOOP_HOME=/home/iespark/hadoop_program

基於zookeeper的可用Hadoop HA叢集安裝

1.Hadoop叢集方式介紹     1.1 hadoop1.x和hadoop2.x都支援的namenode+secondarynamenode方式          優點:搭建環境簡單,適合開發者模式下除錯程式          缺點:namenode作為很重

kubernetes1.9.2基於kubeadm的可用安裝HA_Kubernetes中文社群

使用kubeadm安裝安全高可用kubernetes叢集 [安裝包地址] 非高可用安裝三步即可 在master上 cd shell && init.sh && master.sh 在node上 init.sh 在node上執行master輸出的join命令

分散式可用高效能檔案系統TFS

簡介 TFS(Taobao !FileSystem)是一個高可擴充套件、高可用、高效能、面向網際網路服務的分散式檔案系統,主要針對海量的非結構化資料,它構築在普通的Linux機器叢集上,可為外部提供高可靠和高併發的儲存訪問。TFS為淘寶提供海量小檔案儲存,通常檔案大小不

jeesz分散式架構-分散式可用

什麼是高可用 高可用HA(High Availability)是分散式系統架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統不能提供服務的時間。 常見網際網路分散式架構如上,分為: (1)客戶端層:典型呼叫方是瀏覽器browser或者手機應用APP  (2)反向代理

分散式可用性ID伺服器設計實現

服務端/後臺開發中如何生成id是每個開發者都會遇到的問題,在電商、遊戲領域尤其突出。如何保證生成id的唯一性、可靠性、高可用性,如何組織id的格式,在不同的應用場景和限制下實現方式也不盡相同。 我們的應用場景類似電商,在一個訂單的生命週期內,有多個邏輯需要生成各自的id,還要考慮到可讀性和靈活性

基於 ES 的可用搜索服務架構

搜尋,對大家而言既耳熟能詳又廣為使用,且與我們日常生活密切相關,相信大家每天都離不開Google或百度等,電商像淘寶、京東、亞馬遜都提供了非常強大的搜尋功能。本場Chat結合當前主流開源搜尋產品ElasticSearch,從技術角度向大家介紹高可用搜索服務架構。文章主要內容如

分散式可用架構學習筆記

      大型網站系統的系統架構需要考慮網站的業務架構和肺功能性架構,非功能性需要包括效能、可用性和可伸縮性。效能通過快取、負載叢集、非同步和後端代理實現。可用性需要考慮冗餘備份和故障恢復時間兩個方面

如何基於Python構建一個可擴充套件的運維自動化平臺

嘉賓簡介 劉天斯 從事網際網路運維工作已13年,目前就職於騰訊-互動娛樂部,負責遊戲大資料的運營,曾就職於天涯社群,擔任首席架構師/系統管理員。 熱衷開源技術的研究,包括系統架構、運維開發、負載均衡、快取技術、資料庫、NOSQL、分散式儲存、訊息中介軟體、大

Memcached叢集/分散式/可用 及 Magent快取代理搭建過程 詳解

當網站訪問量達到一定時,如何做Memcached叢集,又如何高可用,是接下來要討論的問題。有這麼一段文字來描述“Memcached叢集”Memcached如何處理容錯的?不處理!:) 在memcached節點失效的情況下,叢集沒有必要做任何容錯處理。如果發生了節點失效,應對的措施完全取決於使用者。節點失效時,

基於Docker的可用解決方案

Docker從2013年釋出第一個版本以來,已經火遍全球,技術迭代也比較頻繁,其周邊產品和技術也越來越豐富。Docker的輕量級容器不僅實現了資源隔離,而且幾乎可以執行在任何地方,使得部署和擴充套件變得非常容易,隨著Docker的日趨完善,目前Docker已經被越來越多的公司

使用Docker Compose部署基於Sentinel的可用Redis叢集

大家一定非常熟悉如何利用Docker啟動單個Redis容器用於開發環境,本文將介紹如何利用Docker Compose模板在本機和雲端部署基於Sentinel的高可用Redis 3叢集。Redis叢集可以在一組redis節點之間實現高可用性和sharding。今天我們重點圍繞master-slave的高可用模

HaProxy+keepalived+mycat分散式可用架構

  叢集部署圖的理解: 1、keepalive和haproxy必須裝在同一臺機器上,keepalived負責為該伺服器搶佔VIP。 2、192.168.1.107上的keepalived會搶佔

MaxCompute,基於Serverless的可用大數據服務

插入 很多 挑戰 兩個 導入 可用 以及 server 針對 摘要:2019年1月18日,由阿裏巴巴MaxCompute開發者社區和阿裏雲棲社區聯合主辦的“阿裏雲棲開發者沙龍大數據技術專場”走近北京聯合大學,本次技術沙龍上,阿裏巴巴高級技術專家吳永明為大家分享了MaxCom

三分鐘快速搭建分散式可用的Redis叢集

![](https://img2020.cnblogs.com/blog/145687/202005/145687-20200512085745093-1337803618.jpg) 這裡的Redis叢集指的是Redis Cluster,它是Redis在3.0版本正式推出的專用叢集方案,有效地解決了Red