Skip to content

Commit

Permalink
runtime env
Browse files Browse the repository at this point in the history
  • Loading branch information
luweizheng committed Apr 24, 2024
1 parent 7f26e6a commit 4a58040
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
14 changes: 13 additions & 1 deletion ch-dask/dask-distributed.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,8 @@
"source": [
"## 使用命令行启动一个 Dask 集群\n",
"\n",
"### 启动 Dask 集群\n",
"\n",
"当我们有更多的计算节点时,可以使用命令行在不同的计算节点上启动 Dask Scheduler 和 Dask Worker。比如,在 IP 地址为 `192.0.0.1` 的计算节点上启动 Dask Scheduler,在命令行里输入下面的命令。\n",
"\n",
"```sh\n",
Expand Down Expand Up @@ -374,11 +376,21 @@
"Dask Scheduler 默认使用 `8786` 作为连接端口号,如果使用其他端口号,需要使用 `--port` 告知 Dask 使用该端口。\n",
"\n",
"```\n",
"$ dask scheduler --port 8000\n",
"$ dask scheduler --port 9786\n",
"```\n",
"\n",
"除了 `--port` 之外,Dask Scheduler 还有很多其他参数,用户可以根据自身需要设置。\n",
"\n",
"### 连接 Dask 集群\n",
"\n",
"假如 Dask Scheduler 启动后返回的地址为 `192.0.0.1:8786`,使用下面的代码连接到这个集群上,基于 Dask Array、Dask DataFrame 的 `.compute()` 的代码会自动调度到这个集群上。\n",
"\n",
"```python\n",
"from dask.distributed import Client\n",
"\n",
"client = Client(\"192.0.0.1:8786\")\n",
"```\n",
"\n",
"## Python 环境和依赖包管理\n",
"\n",
"在集群上使用 Dask 时,要注意所有计算节点都安装所需要的 Python 依赖包。\n",
Expand Down
14 changes: 7 additions & 7 deletions ch-ray-cluster/ray-job.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
(sec-ray-job)=
# Ray 作业

部署好一个 Ray 集群后,我们就可以向集群上提交作业了。Ray 作业指的是用户编写的,基于 Task、Actor 或者 Ray 各类生态(Ray Train 等)的具体的计算任务。向 Ray 集群上提交作业主要有三类方式:
部署好一个 Ray 集群后,我们就可以向集群上提交作业了。Ray 作业指的是用户编写的,基于 Task、Actor 或者 Ray 各类生态(Ray Train、Ray Tune、Ray Serve、RLlib 等)的具体的计算任务。Ray 集群提供了多租户的服务,可以同时运行多个用户多种不同类型的计算任务。由于 Ray 集群提供多租户服务的特点,不同的 Ray 作业的源代码、配置文件和软件包环境不一样,因此,在提交作业时除了需要指定当前作业的 `__main__` 函数的入口外,还需要:

* 工作目录:这个作业所需要的 Python 源代码和配置文件
* 软件环境:这个作业所依赖的 Python 软件包和环境变量

向 Ray 集群上提交作业主要有三类方式,使用这三类都需要指定以上作业相关信息。

* Ray Jobs 命令行
* Python Software Development Kit (SDK)
* Ray 客户端

一个 Ray 作业除了需要 `__main__` 函数的入口外,还需要:

* 工作目录:这个作业所需要的 Python 代码和配置文件
* 软件环境:这个作业所依赖的 Python 软件包和环境变量

## Ray Jobs 命令行

### `ray job`
Expand Down Expand Up @@ -115,7 +115,7 @@ ray.get(gpu_task.remote())

### 依赖管理

Ray 集群中可能运行着不同的作业,不同作业对 Python 各个依赖的版本要求不同,Ray 提供了运行时环境的功能,比如在启动这个作业时,设置 `--runtime-env-json`,他是一个 JSON,包括:需要 `pip` 安装的 Python 包,或环境变量(`env_vars`),或工作目录(`working_dir`)。
Ray 集群是多租户的,上面可能运行着不同的用户的作业,不同作业对 Python 各个依赖的版本要求不同,Ray 提供了运行时环境的功能,比如在启动这个作业时,设置 `--runtime-env-json`,他是一个 JSON,包括:需要 `pip` 安装的 Python 包,或环境变量(`env_vars`),或工作目录(`working_dir`)。Ray 集群的运行时环境大概原理是为每个作业创建一个独立的虚拟环境([virtualenv](https://virtualenv.pypa.io/))。

```json
{
Expand Down
4 changes: 2 additions & 2 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Dask、Ray、Xorbits、mpi4py
鲁蔚征
^^^

中国人民大学助理研究员,CCF高性能计算专业委员会执行委员,主要研究大数据与机器学习系统,《Flink原理与实践》作者。
现就职于中国人民大学,CCF高性能计算专业委员会执行委员,主要研究大数据与机器学习系统,《Flink原理与实践》作者。
:::

:::{grid-item-card}
Expand All @@ -103,7 +103,7 @@ Dask、Ray、Xorbits、mpi4py
秦续业
^^^

未来速度联合创始人兼 CEO,开源项目 Xorbits 负责人,前阿里巴巴技术专家,所开发的开源项目在 GitHub 上共收获 5k 星
未来速度联合创始人兼 CEO,开源项目 Xorbits 负责人,前阿里巴巴技术专家,主导开发了多款开源项目
:::

::::
Expand Down

0 comments on commit 4a58040

Please sign in to comment.