首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dask能取代资源管理系统吗?

dask能取代资源管理系统吗?
EN

Stack Overflow用户
提问于 2018-01-16 22:02:39
回答 2查看 227关注 0票数 1

地球问候,

dask能否取代资源管理系统(如SGE )作为调度程序?

我注意到dask可以使用SGE,但从长远来看,我真正想要的是用我可以从conda安装的东西替换SGE,看看dask文档,尝试一下似乎很有趣。SGE不再在较新的linux系统上轻松安装,因此如果dask可以在简单的anaconda安装之后使用,它可能会更好,特别是因为它运行在windows上。

然而,看一看文档,我仍然不清楚dask是否能做以下工作:

  1. 替换qsub命令
  2. 管理限制每台机器的进程数。
  3. 允许作业之间的依赖关系--在启动新批之前,我需要等待一批作业完成。

我查看了这个文档页面,它表明dask不适合我的需要:http://dask.pydata.org/en/doc-test-build/distributed-details.html

我在看底部,上面写的是达斯克不做的事。

我决定问这个问题,以防我看错了文档中的页面。

希望达斯克能帮上忙。

代码语言:javascript
复制
           Jacob
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-09 17:58:29

是!

在某些情况下,Dask可以替换诸如Sun Grid Engine (SGE)或SLURM之类的资源管理系统。我能够用dask代替SGE来运行MIcro Simualtion工具(迷雾)。以下是一些见解。

限制:

  1. 这将不支持使用计算机集群的多个用户,但如今,随着虚拟化技术的出现,多个用户在同一集群上运行模拟的方式可以被取代。用户很少与他们的工作交互,所以为一个用户创建一个虚拟环境对于大多数用例来说都是可以的。
  2. 对于每个作业具有不同要求的复杂调度,例如指定需要特定计算机的作业,并不像在SGE中的qsub命令中定义环境参数那样容易。也许在dask中也有类似的东西,但是从文档中找出这一点并不容易。
  3. 像SGE、QMON或SLURM工作负载管理器这样的Dask似乎没有很好的可视化、加载和配置工具。虽然它可以显示一个很好的工作图表。

优势:

  1. 达斯克在某种程度上是操作系统不可知论的。我能够在Linux和windows上运行这些代码,而传统的资源管理系统则更加特定于操作系统。例如,除了中断SFU或Cygwin之外,我不知道SGE版本的windows不是本机的。SLURM在Windows上运行nt
  2. 安装资源管理器很困难,而dask可以很容易地用conda安装。顺便说一句,请确保您有最新版本的dask,之前的Anaconda5.0版本为Linux发布的版本不起作用,dask需要升级才能在Linux上正常工作。然而,这可能是修复后版本的Anaconda。
  3. 如果您正在使用Python,您可以轻松地编写python代码来以您想要的方式启动dask,并且有多个工具可以帮助您设置计算。其中一些是相当微不足道的。
  4. 由于任务的图形性质,Dask比SLURM/SGE更好地处理依赖关系。因此,可以轻松地使用resorting实现多个map/还原样式级别,而无需调用操作系统。

简而言之,我敦促开发人员考虑删除dask文档中的注释,标题是:“dask.distributed不做什么”http://dask.pydata.org/en/doc-test-build/distributed-details.html

这一警告是误导的,达斯克确实需要你的想法包装使用它-它不适合多用户的专业用途。然而,它可以很容易地完成相当复杂的分布式计算,通常作为作业提交给资源管理系统--而且它有一些优点。我建议开发人员集中精力进行更好的比较,展示SGE/SLURM中的东西如何被转换为dask和pin点的差异。

简单地说,我需要做更多的测试来看看dask有多强的弹性,但是我的初步测试是非常令人满意的,我很乐意写出这个答案。不过,如果我在这里遗漏了什么,我很乐意继续讨论。

我希望几年前我就有了达斯克--那时我正在寻找这样的解决方案。

雅各布

票数 0
EN

Stack Overflow用户

发布于 2018-01-17 14:26:09

简短回答

不,除了在玩具的情况下

长答案

像SGE这样的作业调度程序通常跨集群运行许多程序。这些程序通常需要很多分钟才能运行,并且连接松散,可能是通过跨文件系统通过文件进行数据通信。

像Dask这样的任务调度程序通常在已经运行在集群上的程序之间运行许多功能。这些函数通常需要毫秒到秒的时间,并且经常通过网络快速地传递大量数据。

理论上,通过提交运行程序的函数(如os.popen),如果作业调度器已经在集群中广泛部署,任务调度程序就可以模仿作业调度程序。然而,这是相当罕见的。任务调度程序通常在短时间内部署,然后清理。作业调度器的使用时间要长得多(年数),并处理其他一些重要问题,如用户管理、配额等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48290545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档