python - 为 DASK 工作人员使用新的 python 环境

标签 python dask dask-distributed dask-kubernetes

我正在 hpc 上运行我的 DASK 服务器,其中我拥有运行 dask 所需的所有基本模块,并且我正在 jupyter 笔记本中加载该模块。我想使用 dask 和 dask 基础环境中不可用的模块来运行一些处理任务。为此,我使用 conda 创建了自定义环境。在运行我的任务之前,有没有一种简单的方法可以将这个新的公寓环境链接到 dask 客户端。

我尝试过使用

from dask.distributed import Client,LocalCluster
client = Client(scheduler_file=schedule_json)
print(client)
client.upload_file('condaenvfile.tar')

我也尝试过使用 client.run(os.system,'conda install -c conda-forge package -y') 但我仍然收到类似模块未找到的消息。


我正在使我的问题更加清晰,以便我可以找出是否有其他替代方案来处理此类问题。

import skimage
import dask.distributed import Client

client=Client(schedule_json)


def myfunc(param):
   process using skimage


r=[]
for in [list]:
     myres=dask.delayed(myfun)(param)
     r.append(myres)

allres=dask.compute(*r)

在上面的示例中,我有在 hpc 环境中运行的 dask 模块,我没有任何控制权,只是可以加载该模块。我的用户配置文件中有自己的公寓环境,我必须使用 dask 工作人员使用sklearn(和其他模块)运行一些进程。有什么替代方案可以解决此类问题?

最佳答案

一旦 dask 运行,您就无法切换底层 Python 环境。相反,您应该构建一个包含所需的所有库和依赖项的环境,并从新创建的环境运行。为了帮助创建环境,我建议使用 conda-pack 。如果您想修改现有环境,您可以这样做,但我不推荐这样做。如果您非常关心这个问题,您可能会对 https://github.com/dask/distributed/issues/3111 感兴趣。

关于python - 为 DASK 工作人员使用新的 python 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62494246/

相关文章:

python - 如何将其打印为新列表?

将多个类方法应用于对象列表的 Pythonic 方式

python - 将图像存储在内存中,然后写入磁盘

python dask DataFrame,支持(可简单并行化)行吗?

python - Dask分布式异常处理方式

python - 在 python for 循环中一次运行 3 个变量。

python dask to_parquet 占用大量内存

python - 如何使用 Dask 从谷歌云存储中读取多个大型 CSV 文件的 block ,而不会使内存一次性重载

python - 无法在 dask worker 中加载模块

python - 使用 Dask 或 Joblib 进行并行 Sklearn 模型构建