Dask 如何保持PBSCluster运行?

Dask 如何保持PBSCluster运行?,dask,dask-distributed,dask-jobqueue,Dask,Dask Distributed,Dask Jobqueue,我可以访问运行PBS Pro的群集,并希望在headnode上保持PBSCluster实例的运行。我当前的(显然已损坏)脚本是: import dask_jobqueue from paths import get_temp_dir def main(): temp_dir = get_temp_dir() scheduler_options = {'scheduler_file': temp_dir / 'scheduler.json'} cluster = da

我可以访问运行PBS Pro的群集,并希望在headnode上保持PBSCluster实例的运行。我当前的(显然已损坏)脚本是:

import dask_jobqueue

from paths import get_temp_dir


def main():
    temp_dir = get_temp_dir()
    scheduler_options = {'scheduler_file': temp_dir / 'scheduler.json'}
    cluster = dask_jobqueue.PBSCluster(cores=24, memory='100GB', processes=1, scheduler_options=scheduler_options)


if __name__ == '__main__':
    main()
此脚本显然已中断,因为在创建集群后,
main()
函数退出,集群被销毁。 我想我必须调用某种类型的
execute\io\u loop
函数,但在这个函数中找不到任何东西


那么,如何保持我的PBSCluster的活力呢?

我认为文档中的部分可能是解决此问题的一个好方法

请注意,这是一个如何创建调度程序和工作程序的示例,但我假设该逻辑可以以类似的方式用于您的案例

导入异步IO
异步def create_cluster():
临时目录=获取临时目录()
调度器_选项={'scheduler_file':temp_dir/'scheduler.json'}
cluster=dask\u jobqueue.PBSCluster(内核=24,内存=100GB,进程=1,调度程序选项=scheduler\u选项)
如果名称=“\uuuuu main\uuuuuuuu”:
asyncio.get_event_loop()。运行_直到完成(创建_cluster())
您可能需要稍微更改代码,但它应该保持
create\u集群
运行,直到完成


让我知道这是否适合您。

我不确定您提供的代码是否正确(可能缺少一些“等待”或“返回”),但感谢您的链接!这就是我要找的文档页面。