Geetings,
可以将资源管理系统(例如SGE)替换为调度程序吗?
我注意到dask可以使用SGE,但是从长远来看,我真正想要的是用可以从conda安装的东西替换SGE并查看dask文档,这似乎很有趣。 SGE不再能在新的Linux系统上轻松安装,所以如果在简单的anaconda安装之后可以使用dask,那可能会更好,特别是因为它在windows上运行。
但是,看一下文档,我仍然不清楚dask是否可以执行以下操作:
我查看了这个文档页面,表明dask不符合我的需求: http://dask.pydata.org/en/doc-test-build/distributed-details.html
我正在查看底部,它说明了dask没有做什么。
我决定询问一下,以防我在文档中查看错误的页面。
希望dask可以提供帮助。
{{1}}
答案 0 :(得分:2)
不,除了玩具情况
像SGE这样的作业调度程序通常会在群集中运行许多程序。这些程序通常需要很长时间才能运行并且可能通过文件系统中的文件传输数据而松散地连接。
像Dask这样的任务调度程序通常在已经在集群上运行的程序中运行许多功能。这些功能通常需要几毫秒到几秒,并且经常通过网络快速传递大量数据。
理论上,通过提交运行程序的函数(如os.popen
),任务调度程序可以模拟作业调度程序(如果它已在整个集群中广泛部署)。然而,这种情况非常罕见。任务调度程序通常部署很短的时间然后清理。工作调度员可以使用更长时间(年),并处理许多其他重要问题,如用户管理,配额等。
答案 1 :(得分:0)
在某些情况下,Dask可以替换Sun Grid Engine(SGE)或SLURM等资源管理系统。我能够用dask替换SGE来运行MIcro Simualtion Tool(MIST)。以下是一些见解。
这不支持使用计算机群集的多个用户,但是现在可以使用虚拟化技术,可以替换同一群集上的多个用户运行模拟的方式。用户很少与他们的工作进行交互,因此为大多数用例创建一个用户的虚拟环境是可以的。
每个作业具有不同要求的复杂调度(例如,指定需要特定计算机的作业)并不像在SGE中的qsub命令中定义环境参数那么容易。或许在dask中有类似的东西,但它不容易从文档中找出来。
Dask似乎没有很好的工具可视化负载和配置,例如SGE QMON或SLURM工作负载管理器。虽然它可以显示一个很好的工作图。
Dask在某种程度上与操作系统无关。我能够在Linux和Windows上运行代码,而传统的资源管理系统更具体操作系统。例如,我不知道除了不是原生的SFU或Cygwin之外的SGE版本的Windows。 SLURM不能在Windows上运行
安装资源管理器很困难,而dask可以使用conda轻松安装。顺便说一下,确保你有最新版本的dask,以前用于Linux的Anaconda 5.0版本发布的版本不起作用,并且dask需要升级才能在Linux上正常运行。然而,这可能是在Anaconda的后期版本中修复的。
如果您正在使用Python,您可以轻松编写python代码以按您希望的方式启动dask,并且有多种工具可帮助您设置计算。其中一些是非常微不足道的。
由于任务的图形性质,Dask比SLURM / SGE更好地处理依赖关系。因此,可以使用python轻松实现多个map / reduce样式级别,而无需调用操作系统。
简而言之,我敦促开发人员考虑删除标题中的dask文档中的注释:“dask.distributed不能做什么” http://dask.pydata.org/en/doc-test-build/distributed-details.html
此警告具有误导性,dask确实需要您将思路用于使用它 - 并且它不适合专门使用的多用户。然而,它可以轻松地完成相当复杂的分布式计算,通常作为资源管理系统的作业提交 - 并且它具有一些优势。我建议开发人员专注于更好的比较,展示如何将SGE / SLURM中的内容转换为dask和pin point差异。
简而言之,我需要做更多的测试才能看到弹性是多么有弹性,但我的初步测试非常令人满意,我很乐意写这个答案。但如果我在这里遗漏一些东西,我会很乐意继续讨论。
我希望几年前我还没事 - 我当时正在寻找这样的解决方案。
雅各