gpt4 book ai didi

支持python的分布式计算框架Ray详解

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章支持python的分布式计算框架Ray详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

项目地址:https://github.com/ray-project/ray 。

1、简介

Ray为构建分布式应用程序提供了一个简单、通用的API。Ray是一种分布式执行框架,便于大规模应用程序和利用先进的机器学习库.

Ray通过以下方式完成这项任务:

为构建和运行分布式应用程序提供简单的原语.

使最终用户能够并行化单个机器代码,而代码更改很少到零.

在核心Ray之上包含大量应用程序、库和工具,以支持复杂的应用程序.

支持python的分布式计算框架Ray详解

2、安装

安装方式比较简单: pip install ray==1.4.1 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
[root@node2 ~] # pip install 'ray[default]'
Looking in indexes: https: / / mirrors.aliyun.com / pypi / simple /
Collecting ray[default]
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 13 / ec / f727ddd3fbcdc6102eace62c9d5dd9d9ad8112d40eeb7de8783676aca24d / ray - 1.4 . 1 - cp36 - cp36m - manylinux2014_x86_64.whl ( 51.6 MB)
      |████████████████████████████████| 51.6 MB 269 kB / s
Collecting aiohttp
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 31 / 28 / 7b49246d7825c61e1a14306ab050e8eec48fcf5b009b19c8f6ea4e312467 / aiohttp - 3.7 . 4.post0 - cp36 - cp36m - manylinux2014_x86_64.whl ( 1.3 MB)
      |████████████████████████████████| 1.3 MB 121.5 MB / s
Requirement already satisfied: dataclasses in / usr / local / lib / python3. 6 / site - packages ( from ray[default]) ( 0.8 )
Collecting protobuf> = 3.15 . 3
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 53 / 4e / e2db88d0bb0bda6a879eea62fddbaf813719ce3770d458bc5580512d9c95 / protobuf - 3.17 . 3 - cp36 - cp36m - manylinux_2_5_x86_64.manylinux1_x86_64.whl ( 1.0 MB)
      |████████████████████████████████| 1.0 MB 136.1 MB / s
Collecting jsonschema
   Downloading https: / / mirrors.aliyun.com / pypi / packages / c5 / 8f / 51e89ce52a085483359217bc72cdbf6e75ee595d5b1d4b5ade40c7e018b8 / jsonschema - 3.2 . 0 - py2.py3 - none - any .whl ( 56 kB)
      |████████████████████████████████| 56 kB 7.1 MB / s
Collecting aioredis
   Downloading https: / / mirrors.aliyun.com / pypi / packages / b0 / 64 / 1b1612d0a104f21f80eb4c6e1b6075f2e6aba8e228f46f229cfd3fdac859 / aioredis - 1.3 . 1 - py3 - none - any .whl ( 65 kB)
      |████████████████████████████████| 65 kB 6.3 MB / s
Collecting pydantic> = 1.8
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 2b / 7c / 7d0b3f2d7959b7193018896db236ded165f9bca1bb75f46f4c32fa6f4f9d / pydantic - 1.8 . 2 - cp36 - cp36m - manylinux2014_x86_64.whl ( 10.2 MB)
      |████████████████████████████████| 10.2 MB 420 kB / s
Collecting pyyaml
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 7a / 5b / bc0b5ab38247bba158504a410112b6c03f153c652734ece1849749e5f518 / PyYAML - 5.4 . 1 - cp36 - cp36m - manylinux1_x86_64.whl ( 640 kB)
      |████████████████████████████████| 640 kB 19.1 MB / s
Collecting numpy> = 1.16
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 14 / 32 / d3fa649ad7ec0b82737b92fefd3c4dd376b0bb23730715124569f38f3a08 / numpy - 1.19 . 5 - cp36 - cp36m - manylinux2010_x86_64.whl ( 14.8 MB)
      |████████████████████████████████| 14.8 MB 296 kB / s
Collecting gpustat
   Downloading https: / / mirrors.aliyun.com / pypi / packages / b4 / 69 / d8c849715171aeabd61af7da080fdc60948b5a396d2422f1f4672e43d008 / gpustat - 0.6 . 0.tar .gz ( 78 kB)
      |████████████████████████████████| 78 kB 7.3 MB / s
Collecting redis> = 3.5 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / a7 / 7c / 24fb0511df653cf1a5d938d8f5d19802a88cef255706fdda242ff97e91b7 / redis - 3.5 . 3 - py2.py3 - none - any .whl ( 72 kB)
      |████████████████████████████████| 72 kB 968 kB / s
Collecting aiohttp - cors
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 13 / e7 / e436a0c0eb5127d8b491a9b83ecd2391c6ff7dcd5548dfaec2080a2340fd / aiohttp_cors - 0.7 . 0 - py3 - none - any .whl ( 27 kB)
Collecting py - spy> = 0.2 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 9d / 4d / 1a9cbe9a0b543e6733cb38afe26451522a9ef8e4897b59e74cc76838f245 / py_spy - 0.3 . 7 - py2.py3 - none - manylinux1_x86_64.whl ( 3.1 MB)
      |████████████████████████████████| 3.1 MB 131 kB / s
Requirement already satisfied: requests in / usr / local / lib / python3. 6 / site - packages ( from ray[default]) ( 2.24 . 0 )
Collecting colorama
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 44 / 98 / 5b86278fbbf250d239ae0ecb724f8572af1c91f4a11edf4d36a206189440 / colorama - 0.4 . 4 - py2.py3 - none - any .whl ( 16 kB)
Collecting filelock
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 93 / 83 / 71a2ee6158bb9f39a90c0dea1637f81d5eef866e188e1971a1b1ab01a35a / filelock - 3.0 . 12 - py3 - none - any .whl ( 7.6 kB)
Collecting prometheus - client> = 0.7 . 1
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 09 / da / 4e8471ff825769581593b5b84769d32f58e5373b59fccaf355d3529ad530 / prometheus_client - 0.11 . 0 - py2.py3 - none - any .whl ( 56 kB)
      |████████████████████████████████| 56 kB 4.2 MB / s
Collecting msgpack< 2.0 . 0 ,> = 1.0 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 0c / 0d / b1d9d32d03ce38ba5e2a37fbae850afd4530a14cc441e8335f1865a03705 / msgpack - 1.0 . 2 - cp36 - cp36m - manylinux1_x86_64.whl ( 272 kB)
      |████████████████████████████████| 272 kB 127.6 MB / s
Requirement already satisfied: click> = 7.0 in / usr / local / lib / python3. 6 / site - packages ( from ray[default]) ( 7.1 . 2 )
Collecting opencensus
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 18 / 59 / 12044123133d000f705383ad98579aeb0dd82d66b33a254a21b54bf0d6bb / opencensus - 0.7 . 13 - py2.py3 - none - any .whl ( 127 kB)
      |████████████████████████████████| 127 kB 128.9 MB / s
Collecting grpcio> = 1.28 . 1
   Downloading https: / / mirrors.aliyun.com / pypi / packages / eb / 32 / 332a2bb0cee0d4040331952c5ef3d040d119a15b3c622b60bdcbe768bded / grpcio - 1.39 . 0 - cp36 - cp36m - manylinux2014_x86_64.whl ( 4.3 MB)
      |████████████████████████████████| 4.3 MB 417 kB / s
Collecting colorful
   Downloading https: / / mirrors.aliyun.com / pypi / packages / b0 / 8e / e386e248266952d24d73ed734c2f5513f34d9557032618c8910e605dfaf6 / colorful - 0.5 . 4 - py2.py3 - none - any .whl ( 201 kB)
      |████████████████████████████████| 201 kB 113.9 MB / s
Requirement already satisfied: six> = 1.5 . 2 in / usr / local / lib / python3. 6 / site - packages ( from grpcio> = 1.28 . 1 - >ray[default]) ( 1.15 . 0 )
Requirement already satisfied: typing - extensions> = 3.7 . 4.3 in / usr / local / lib / python3. 6 / site - packages ( from pydantic> = 1.8 - >ray[default]) ( 3.10 . 0.0 )
Collecting multidict< 7.0 ,> = 4.5
   Downloading https: / / mirrors.aliyun.com / pypi / packages / a1 / 35 / b22524d6b9cacfb4c5eff413a069bbc17c6ea628e54da5c6c989998ced5f / multidict - 5.1 . 0 - cp36 - cp36m - manylinux2014_x86_64.whl ( 141 kB)
      |████████████████████████████████| 141 kB 120.6 MB / s
Collecting idna - ssl> = 1.0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 46 / 03 / 07c4894aae38b0de52b52586b24bf189bb83e4ddabfe2e2c8f2419eec6f4 / idna - ssl - 1.1 . 0.tar .gz ( 3.4 kB)
Collecting attrs> = 17.3 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 20 / a9 / ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc / attrs - 21.2 . 0 - py2.py3 - none - any .whl ( 53 kB)
      |████████████████████████████████| 53 kB 3.9 MB / s
Requirement already satisfied: chardet< 5.0 ,> = 2.0 in / usr / local / lib / python3. 6 / site - packages ( from aiohttp - >ray[default]) ( 3.0 . 4 )
Collecting yarl< 2.0 ,> = 1.0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / da / 08 / 52b26b44bce7b818b410aee37c5e424c9ea420c557bca97dc2adac29b151 / yarl - 1.6 . 3 - cp36 - cp36m - manylinux2014_x86_64.whl ( 293 kB)
      |████████████████████████████████| 293 kB 130.8 MB / s
Collecting async - timeout< 4.0 ,> = 3.0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / e1 / 1e / 5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4 / async_timeout - 3.0 . 1 - py3 - none - any .whl ( 8.2 kB)
Requirement already satisfied: idna> = 2.0 in / usr / local / lib / python3. 6 / site - packages ( from idna - ssl> = 1.0 - >aiohttp - >ray[default]) ( 2.10 )
Collecting hiredis
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 82 / 72 / 313fb6d30b7e413c8662447f9a0abe9105494ceb9266ecb08d442c14afbb / hiredis - 2.0 . 0 - cp36 - cp36m - manylinux2010_x86_64.whl ( 84 kB)
      |████████████████████████████████| 84 kB 4.8 MB / s
Collecting nvidia - ml - py3> = 7.352 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 6d / 64 / cce82bddb80c0b0f5c703bbdafa94bfb69a1c5ad7a79cff00b482468f0d3 / nvidia - ml - py3 - 7.352 . 0.tar .gz ( 19 kB)
Collecting psutil
   Downloading https: / / mirrors.aliyun.com / pypi / packages / da / 82 / 56cd16a4c5f53e3e5dd7b2c30d5c803e124f218ebb644ca9c30bc907eadd / psutil - 5.8 . 0 - cp36 - cp36m - manylinux2010_x86_64.whl ( 291 kB)
      |████████████████████████████████| 291 kB 131.6 MB / s
Collecting blessings> = 1.6
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 03 / 74 / 489f85a78247609c6b4f13733cbf3ba0d864b11aa565617b645d6fdf2a4a / blessings - 1.7 - py3 - none - any .whl ( 18 kB)
Requirement already satisfied: setuptools in / usr / lib / python3. 6 / site - packages ( from jsonschema - >ray[default]) ( 39.2 . 0 )
Collecting pyrsistent> = 0.14 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 6c / 19 / 1af501f6f388a40ede6d0185ba481bdb18ffc99deab0dd0d092b173bc0f4 / pyrsistent - 0.18 . 0 - cp36 - cp36m - manylinux1_x86_64.whl ( 117 kB)
      |████████████████████████████████| 117 kB 138.2 MB / s
Requirement already satisfied: importlib - metadata in / usr / local / lib / python3. 6 / site - packages ( from jsonschema - >ray[default]) ( 4.3 . 0 )
Requirement already satisfied: zipp> = 0.5 in / usr / local / lib / python3. 6 / site - packages ( from importlib - metadata - >jsonschema - >ray[default]) ( 3.4 . 1 )
Collecting opencensus - context = = 0.1 . 2
   Downloading https: / / mirrors.aliyun.com / pypi / packages / f1 / 33 / 990f1bd9e7ee770fc8d3c154fc24743a96f16a0e49e14e1b7540cc2fdd93 / opencensus_context - 0.1 . 2 - py2.py3 - none - any .whl ( 4.4 kB)
Collecting google - api - core< 2.0 . 0 ,> = 1.0 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / aa / 51 / 629a31d4e7db2bbc0b0b789ac4034108c68647bea9cf5b54c8366df47b8e / google_api_core - 1.31 . 0 - py2.py3 - none - any .whl ( 93 kB)
      |████████████████████████████████| 93 kB 1.6 MB / s
Collecting contextvars
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 83 / 96 / 55b82d9f13763be9d672622e1b8106c85acb83edd7cc2fa5bc67cd9877e9 / contextvars - 2.4 .tar.gz ( 9.6 kB)
Collecting google - auth< 2.0dev ,> = 1.25 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / d7 / 13 / 35b1e0a63e160ecad04985e60339382e48e6020d22f8328a2ab47226c910 / google_auth - 1.33 . 1 - py2.py3 - none - any .whl ( 152 kB)
      |████████████████████████████████| 152 kB 127.7 MB / s
Collecting packaging> = 14.3
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 3c / 77 / e2362b676dc5008d81be423070dd9577fa03be5da2ba1105811900fda546 / packaging - 21.0 - py3 - none - any .whl ( 40 kB)
      |████████████████████████████████| 40 kB 6.1 MB / s
Collecting googleapis - common - protos< 2.0dev ,> = 1.6 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 55 / 08 / 796a6bc0b550e2b7116041c953d3d5100016abea106131d71e5651826e7b / googleapis_common_protos - 1.53 . 0 - py2.py3 - none - any .whl ( 198 kB)
      |████████████████████████████████| 198 kB 136.3 MB / s
Collecting setuptools
   Downloading https: / / mirrors.aliyun.com / pypi / packages / bd / 25 / 5bdf7f1adeebd4e3fa76b2e2f045ae53ee208e40a4231ad0f0c3007e4353 / setuptools - 57.4 . 0 - py3 - none - any .whl ( 819 kB)
      |████████████████████████████████| 819 kB 127.0 MB / s
Requirement already satisfied: pytz in / usr / local / lib / python3. 6 / site - packages ( from google - api - core< 2.0 . 0 ,> = 1.0 . 0 - >opencensus - >ray[default]) ( 2020.1 )
Collecting cachetools< 5.0 ,> = 2.0 . 0
   Downloading https: / / mirrors.aliyun.com / pypi / packages / bf / 28 / c4f5796c67ad06bb91d98d543a5e01805c1ff065e08871f78e52d2a331ad / cachetools - 4.2 . 2 - py3 - none - any .whl ( 11 kB)
Collecting pyasn1 - modules> = 0.2 . 1
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 95 / de / 214830a981892a3e286c3794f41ae67a4495df1108c3da8a9f62159b9a9d / pyasn1_modules - 0.2 . 8 - py2.py3 - none - any .whl ( 155 kB)
      |████████████████████████████████| 155 kB 21.5 MB / s
Collecting rsa< 5 ,> = 3.1 . 4
   Downloading https: / / mirrors.aliyun.com / pypi / packages / e9 / 93 / 0c0f002031f18b53af7a6166103c02b9c0667be528944137cc954ec921b3 / rsa - 4.7 . 2 - py3 - none - any .whl ( 34 kB)
Collecting pyparsing> = 2.0 . 2
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 8a / bb / 488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d / pyparsing - 2.4 . 7 - py2.py3 - none - any .whl ( 67 kB)
      |████████████████████████████████| 67 kB 7.2 MB / s
Collecting pyasn1< 0.5 . 0 ,> = 0.4 . 6
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 62 / 1e / a94a8d635fa3ce4cfc7f506003548d0a2447ae76fd5ca53932970fe3053f / pyasn1 - 0.4 . 8 - py2.py3 - none - any .whl ( 77 kB)
      |████████████████████████████████| 77 kB 7.0 MB / s
Requirement already satisfied: certifi> = 2017.4 . 17 in / usr / local / lib / python3. 6 / site - packages ( from requests - >ray[default]) ( 2020.6 . 20 )
Requirement already satisfied: urllib3! = 1.25 . 0 ,! = 1.25 . 1 ,< 1.26 ,> = 1.21 . 1 in / usr / local / lib / python3. 6 / site - packages ( from requests - >ray[default]) ( 1.25 . 10 )
Collecting immutables> = 0.9
   Downloading https: / / mirrors.aliyun.com / pypi / packages / 4a / 52 / e64a14a99c509cbdfe0405e9f076aef0331cb9548a3efa1d5bacd524978a / immutables - 0.15 - cp36 - cp36m - manylinux1_x86_64.whl ( 100 kB)
      |████████████████████████████████| 100 kB 18.2 MB / s
Using legacy 'setup.py install' for idna - ssl, since package 'wheel' is not installed.
Using legacy 'setup.py install' for gpustat, since package 'wheel' is not installed.
Using legacy 'setup.py install' for nvidia - ml - py3, since package 'wheel' is not installed.
Using legacy 'setup.py install' for contextvars, since package 'wheel' is not installed.
Installing collected packages: pyasn1, setuptools, rsa, pyparsing, pyasn1 - modules, protobuf, multidict, immutables, cachetools, yarl, packaging, idna - ssl, googleapis - common - protos, google - auth, contextvars, attrs, async - timeout, pyrsistent, psutil, opencensus - context, nvidia - ml - py3, hiredis, google - api - core, blessings, aiohttp, redis, pyyaml, pydantic, py - spy, prometheus - client, opencensus, numpy, msgpack, jsonschema, grpcio, gpustat, filelock, colorama, aioredis, aiohttp - cors, ray, colorful
   Attempting uninstall: setuptools
     Found existing installation: setuptools 39.2 . 0
     Uninstalling setuptools - 39.2 . 0 :
       Successfully uninstalled setuptools - 39.2 . 0
     Running setup.py install for idna - ssl ... done
     Running setup.py install for contextvars ... done
     Running setup.py install for nvidia - ml - py3 ... done
     Running setup.py install for gpustat ... done
Successfully installed aiohttp - 3.7 . 4.post0 aiohttp - cors - 0.7 . 0 aioredis - 1.3 . 1 async - timeout - 3.0 . 1 attrs - 21.2 . 0 blessings - 1.7 cachetools - 4.2 . 2 colorama - 0.4 . 4 colorful - 0.5 . 4 contextvars - 2.4 filelock - 3.0 . 12 google - api - core - 1.31 . 0 google - auth - 1.33 . 1 googleapis - common - protos - 1.53 . 0 gpustat - 0.6 . 0 grpcio - 1.39 . 0 hiredis - 2.0 . 0 idna - ssl - 1.1 . 0 immutables - 0.15 jsonschema - 3.2 . 0 msgpack - 1.0 . 2 multidict - 5.1 . 0 numpy - 1.19 . 5 nvidia - ml - py3 - 7.352 . 0 opencensus - 0.7 . 13 opencensus - context - 0.1 . 2 packaging - 21.0 prometheus - client - 0.11 . 0 protobuf - 3.17 . 3 psutil - 5.8 . 0 py - spy - 0.3 . 7 pyasn1 - 0.4 . 8 pyasn1 - modules - 0.2 . 8 pydantic - 1.8 . 2 pyparsing - 2.4 . 7 pyrsistent - 0.18 . 0 pyyaml - 5.4 . 1 ray - 1.4 . 1 redis - 3.5 . 3 rsa - 4.7 . 2 setuptools - 57.4 . 0 yarl - 1.6 . 3

3、单机

下面是不使用分布式的代码示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# test_ray.py
import ray
import cv2
import numpy
 
import time
 
#@ray.remote
def test(img):
     orb = cv2.AKAZE_create()
     kb = orb.detect(img, None )
     kp, des = orb.compute(img, kp)
     return des
 
# 不使用注解的方式
test_remote = ray.remote(test)
 
# 函数test 加注解时使用方式
# test_remote = test.remote(test)
 
img = cv2.imread( "/tmp/test.jpg" )
 
start_time = time.time()
 
for i in range ( 10 ):
     test(img)
 
print (time.time() - start_time)

运行:python test_ray.py 。

4、集群

如果需要启动集群模式,则需要先启动服务,选择一台机器作为主服务器,然后按虾米那命令启动:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node1 ~] # ray start --head --port=8888     
Local node IP: 192.168 . 0.81
2021 - 07 - 28 09 : 58 : 44 , 051 INFO services.py: 1274 - - View the Ray dashboard at http: / / 127.0 . 0.1 : 8265
 
- - - - - - - - - - - - - - - - - - - -
Ray runtime started.
- - - - - - - - - - - - - - - - - - - -
 
Next steps
   To connect to this Ray runtime from another node, run
     ray start - - address = '192.168.0.81:8888' - - redis - password = '5241590000000000'
  
   Alternatively, use the following Python code:
     import ray
     ray.init(address = 'auto' , _redis_password = '5241590000000000' )
  
   If connection fails, check your firewall settings and network configuration.
  
   To terminate the Ray runtime, run
     ray stop

可以看到里面提示具体的用法。此时通过ray的web界面,端口8265访问,看到已有一台机器.

支持python的分布式计算框架Ray详解

然后在另外两台机启动客户端节点,保证各个节点的ray版本一致,查看版本:

# pip freeze |grep ray 。

版本不一致的话,要升级为一致:pip install -U ray, 此处选择的版本为1.4.1 。

从节点启动方式(密码可以在主节点启动时显示):

?
1
ray start - - address = '192.168.0.81:8888' - - redis - password = '5241590000000000'

支持python的分布式计算框架Ray详解

改写程序,用于分布式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# test_ray.py
import ray
import cv2
import numpy
 
import time
 
@ray .remote
def test(img):
     orb = cv2.AKAZE_create()
     kb = orb.detect(img, None )
     kp, des = orb.compute(img, kp)
     return des
 
# 不使用注解的方式
#test_remote = ray.remote(test)
 
# 函数test 加注解时使用方式
test_remote = test.remote(test)
 
if __name__ = = "__main__" :
     ray.init(address = 'auto' , _redis_password = '5241590000000000' )
     start_time = time.time()
     img = cv2.imread( "/tmp/test.jpg" )
     futures = [test_remote.remote(img) for i in range ( 100 )]
     ray.get(futures)
     start_time = time.time()
     print (time.time() - start_time)

在主节点运行程序,程序会在3台机器上启动。停止ray服务的方式:ray stop. 。

到此这篇关于支持python的分布式计算框架Ray的文章就介绍到这了,更多相关python的分布式计算框架Ray内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/Ajinnv/article/details/119153287 。

最后此篇关于支持python的分布式计算框架Ray详解的文章就讲到这里了,如果你想了解更多关于支持python的分布式计算框架Ray详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com