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