2

我在 hpc 上运行我的 DASK 服务器,在那里我拥有运行 dask 所需的所有基本模块,并且我在 jupyter notebook 中加载该模块。我想使用 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 工作人员使用skilearn(和其他模块)运行一些进程。解决此类问题的替代方法是什么?

4

1 回答 1

3

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

于 2020-06-22T14:05:39.103 回答