python-ray集群搭建 - Go语言中文社区

python-ray集群搭建


Ray简介

Ray是UC Berkeley RISE Lab新推出的高性能分布式执行框架,它使用了和传统分布式计算系统不一样的架构和对分布式计算的抽象方式,具有比Spark更优异的计算性能。Ray是一个基于Python的分布式执行引擎。相同的代码可以在单个机器上运行以实现高效的多处理,并且可以在群集上用于大量的计算。

Ray学习文档地址:
https://ray.readthedocs.io/en/latest/index.html

github地址:
https://github.com/ray-project/ray

近期,研究了其在python环境下集群的搭建,在此做个记录。

准备工作

系统准备

两台或两台以上ubuntu电脑

软件环境

python 3.7.9
ray 0.8.7

网络环境

两台电脑的ip分别为:
头节点:10.201.83.14
从节点:10.201.224.169
在两台电脑上均运行以下命令,以打开所有端口:

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables-save

目前,官方文档里面的步骤只开放了6379端口,但实际上,还需要开放其他端口。但是,为并没有找到具体的需要开放的端口,这里就只能全部打开了。

搭建集群

头节点

ray start --head --port=6379

任选一台电脑作为头节点,首先激活含有ray的python环境,然后运行上述命令。执行结果如下图:

启用头节点

从图中可以看到,头节点的IP是10.201.83.14;从节点可以通过运行"ray start --address=‘10.201.83.14:6379’ --redis-password=‘5241590000000000’"加入集群;若想关闭ray,则可以通过"ray stop"命令停止ray。在使用过程中,还可以通过"localhost:8265"查看集群的资源情况,即下图:

头节点启用后的资源情况

从节点

ray start --address='10.201.83.14:6379' --redis-password='5241590000000000'

在非头节点的所有电脑上,首先激活含有ray的python环境,然后运行上述命令。'10.201.83.14:6379’是头节点的ip和主端口,'5241590000000000’是头节点启用后显示的密码。另外,可用–num-cpus=10 和 --num-gpus=1分别指定cpu和gpu数量。

从节点运行命令后的窗口图:

在这里插入图片描述

从节点加入集群后,可以在主节点上看下资源情况:

在这里插入图片描述

可以发现,上面多了一个电脑。

python测试

从节点测试

import time
import ray
ray.init(redis_address="10.201.83.14:6379")

def  f1():
    time.sleep(1)

@ray.remote
def f2():
    time.sleep(1)

#不使用ray 以下时间长
time1=time.time()
[ f1() for _ in range(50)]
print(time.time()-time1)

#使用ray 以下时间短
time2=time.time()
ray.get([ f2.remote() for _ in range(50)])
print(time.time()-time2)

在从节点,新建main.py文件,代码如上,然后在命令行用python main.py运行即可。如下图所示,两个时间分别是50秒和7秒,用了ray的时间明显变短。

在这里插入图片描述

主节点测试

在这里插入图片描述

同样地用python运行程序,运行时间与从节点的类似。

作者:hui_0_
出处:https://blog.csdn.net/hui_0_/article/details/111568809

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hui_0_/article/details/111568809
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢