配置
目录
配置¶
应为您的集群配置 Dask-jobqueue,以便它知道每个作业要请求多少资源以及如何分配这些资源。您可以在创建 Cluster
对象时使用关键字参数或通过配置文件指定配置。
关键字参数¶
您可以将关键字传递给 Cluster 对象,以定义 Dask-jobqueue 应如何定义单个作业
cluster = PBSCluster(
# Dask-worker specific keywords
cores=24, # Number of cores per job
memory='100GB', # Amount of memory per job
shebang='#!/usr/bin/env zsh', # Interpreter for your batch script (default is bash)
processes=6, # Number of Python processes to cut up each job
local_directory='$TMPDIR', # Location to put temporary data if necessary
# Job scheduler specific keywords
resource_spec='select=1:ncpus=24:mem=100GB',
queue='regular',
account='my-account',
walltime='02:00:00',
)
请注意,上面的 cores
和 memory
关键字不是指您期望的完整部署,而是指单个作业的大小,单个作业的大小不应超过集群中单个机器的大小。
您将单独使用 scale 方法指定要部署多少个作业。您可以指定工作者数量,或所需的总核心数或内存容量。
cluster.scale(jobs=2) # launch 2 workers, each of which starts 6 worker processes
cluster.scale(cores=48) # Or specify cores or memory directly
cluster.scale(memory="200 GB") # Or specify cores or memory directly
它们都实现相同的功能。您可以选择对您最有意义的方式。
配置文件¶
每次都为 Cluster 构造函数指定所有参数可能会出错,尤其是在与新用户共享此工作流程时。相反,我们建议使用如下所示的配置文件
# jobqueue.yaml file
jobqueue:
pbs:
cores: 24
memory: 100GB
processes: 6
shebang: "#!/usr/bin/env zsh"
interface: ib0
local-directory: $TMPDIR
resource-spec: "select=1:ncpus=24:mem=100GB"
queue: regular
account: my-account
walltime: 00:30:00
请参阅配置示例以获取实际示例。
如果您将此文件放置在 ~/.config/dask/
目录中,则 Dask-jobqueue 将默认使用这些值。然后您无需使用关键字参数即可构建 Cluster 对象,这些参数将作为默认值使用。
cluster = PBSCluster()
您仍然可以使用关键字参数覆盖配置值
cluster = PBSCluster(processes=12)
如果您导入了 dask_jobqueue
,则会自动在 ~/.config/dask/jobqueue.yaml
中添加一个空白的 jobqueue.yaml
文件。您应该使用该配置文件中与您的作业调度器相对应的部分。上面我们使用了 PBS,但其他作业调度器的工作方式相同。您应该能够与同事分享这些文件。如果您能说服您的 IT 人员,您也可以将此类文件放置在 /etc/dask/
中,它将自动影响集群上的所有人。
有关配置 Dask 的更多信息,请参阅 Dask 配置文档