【问题标题】:How to force condor to submit job to all nodes in the cluster?如何强制 Condor 向集群中的所有节点提交作业?
【发布时间】:2014-05-25 04:42:39
【问题描述】:

我有一个 condor 集群,其中多个节点处于活动状态。

但是当我提交作业时,它只在单个节点(即主节点)上运行。我知道 Condor 会根据可用资源自动分配工作。

但是如果我想强制 condor 使用所有节点呢?只是为了评估在多节点和单节点上运行时的处理时间?

我已尝试在提交文件中添加要求 = Machine == "hostname1" && Machine == "hostname2",但不起作用。

【问题讨论】:

    标签: distributed-computing condor


    【解决方案1】:

    根据您要执行的操作,您可能希望使用此处概述的平行宇宙:http://research.cs.wisc.edu/htcondor/manual/current/2_9Parallel_Applications.html

    对于并行 Universe 作业,您可以通过 machine_count 指示机器数量,并且只需要对单个任务进行排队。

    【讨论】:

      【解决方案2】:

      恐怕我没有完全理解你在问什么。让我们看看我能不能帮忙。我可以看到一些场景:

      1. Condor 只会安排您的作业在主节点上运行,而不管有多少机器可用。
      2. Condor 正在所有可用机器上安排作业。但是,您要做的是获得一项特定工作以使用多台机器。

      如果 1. 您的提交文件或池设置出现问题。我将假设condor_status 返回不止一台机器,并且您的池设置正常。这种情况下的典型问题如下:如果您没有为您的工作指定Requirement,Condor 将为您插入一个。默认情况下,Condor 将请求作业在与提交节点具有相同操作系统和架构的机器上运行。这个确实用异构池咬了我几次;-)

      在第 2 种情况下,您必须确保您的可执行文件可以使用多台机器(例如通过 MPI)并且您需要告诉 Condor。一种方法是使用Parallel 宇宙。另一种方法是使用经典的 master/worker 架构,其中工作人员是持续的 Condor 作业。

      【讨论】:

        【解决方案3】:

        Condor 受到限制,它只能执行 (system()) 一个命令。如果您的程序没有创建很多子任务,您将不会体验到任何速度提升。

        请张贴一份简短的职位描述(文件)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-11-30
          • 2019-05-30
          • 1970-01-01
          • 2015-08-21
          • 2019-02-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多