dask能否取代资源管理系统?

dask能否取代资源管理系统?,dask,Dask,吉廷斯 dask能否取代SGE等资源管理系统作为调度器 我注意到dask可以使用SGE,但从长远来看,我真正想要的是用我可以从conda安装的东西替换SGE,并查看dask文档,这似乎很有趣。SGE不再容易在较新的linux系统上安装,因此,如果dask可以在简单的anaconda安装后使用,它可能会更好,特别是因为它在windows上运行 但是,查看文档,我仍然不清楚dask是否可以做到以下几点: 替换qsub命令 管理限制每台机器的进程数 允许作业之间存在依赖关系-我需要等待一批作业完成,然

吉廷斯

dask能否取代SGE等资源管理系统作为调度器

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

但是,查看文档,我仍然不清楚dask是否可以做到以下几点:

  • 替换qsub命令
  • 管理限制每台机器的进程数
  • 允许作业之间存在依赖关系-我需要等待一批作业完成,然后才能开始新的批处理
  • 我查看了此文档页面,发现dask不适合我的需要:

    我在看底部,上面写着dask没有做什么

    我决定询问一下,以防我在文档中看到错误的页面

    希望达斯克能帮上忙

               Jacob
    
    简短回答 不,除了玩具的情况

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

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

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

    是的! 在某些情况下,Dask可以替代资源管理系统,如Sun网格引擎(SGE)或SLURM。我能够用dask替换SGE来运行MIcro Simualtion工具(MIST)。以下是一些见解

    限制:
  • 这将不支持多个用户使用一个计算机集群,但是现在有了可用的虚拟化技术,由多个用户在同一集群上运行模拟的方式可以被取代。用户很少与他们的工作进行交互,所以为一个用户创建一个虚拟环境对于大多数用例来说都是可以的

  • 每个作业具有不同要求的复杂调度(例如指定需要特定计算机的作业)不像在SGE中的qsub命令中定义环境参数那样容易。也许dask中也有类似的东西,但从文档中不容易看出

  • Dask似乎没有很好的工具来可视化加载和配置,比如SGE QMON或SLURM workload manager。虽然它可以显示一个很好的工作图表

  • 优势:
  • 达斯克在某种程度上是OS不可知论者。我能够在Linux和windows上运行这些代码,而传统的资源管理系统更适合操作系统。例如,我不知道除了停止SFU或Cygwin之外,还有其他不是本机的SGE版本的windows。SLURM不在Windows上运行

  • 安装资源管理器很困难,而dask可以通过conda轻松安装。顺便说一句,请确保您拥有最新版本的dask,与先前的Anaconda 5.0 Linux版本一起发布的版本不起作用,dask需要升级才能在Linux上正常工作。然而,这可能在后来版本的《蟒蛇》中得到了修复

  • 如果您使用的是Python,您可以轻松地编写Python代码,以您想要的方式启动dask,并且有多种工具可以帮助您设置计算。其中有些相当琐碎

  • 由于任务的图形性质,Dask比SLURM/SGE更好地处理依赖关系。因此,使用int-python可以轻松实现多个map/reduce样式级别,而无需调用操作系统

  • 简而言之,我敦促开发人员考虑在DASK文档中删除注释:“Dask.Dask.Dead不做什么”

    此警告具有误导性,dask确实要求您包装您的想法以使用它-并且它不适合多用户的专门用途。然而,它可以轻松地完成相当复杂的分布式计算,这些计算通常作为作业提交给资源管理系统,而且它还有一些优势。我建议开发人员将重点放在更好的比较上,展示如何将SGE/SLURM中的内容转换为dask和pin点差异

    简而言之,我需要做更多的测试来看看dask的弹性有多大,然而我的初始测试非常令人满意,我很乐意写下这个答案。不过,如果我在这里遗漏了什么,我很乐意继续讨论

    我希望几年前我有dask——那时我正在寻找这样的解决方案


    雅各布

    谢谢马特,但让我们把范围缩小。如果我想要一个能够进行突发计算或5分钟作业的系统,比方说一年的计算时间,需要为单个用户轻松部署,计算环境也会发生变化,比如在云部署中没有作业的特殊说明——作业只是CPU密集型的。如果我同意以os.popen的形式提交作业,因为我有一种检测系统故障的机制。在这种情况下,使用dask是否有任何优势,例如易于部署,并且不需要安装除anaconda之外的许多依赖项?很抱歉,我无法回答您的问题。框架的正确选择取决于许多因素。我不愿意就什么会或不会起作用提出任何主张。祝你好运!那么,如果您已经有了像SGE这样的作业调度器,那么dask的优势是什么呢?如果dask不能r