如何强制condor向集群中的所有节点提交作业?

时间:2014-05-25 04:42:39

标签: distributed-computing condor

我有一个活跃多个节点的神鹰群集。

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

但是如果我想迫使神鹰使用所有节点怎么办?仅仅是为了评估在多个节点和单个节点上运行时的处理时间?

我尝试过添加要求= Machine ==" hostname1" &安培;&安培;机器=="主机名2"在提交文件中,但是没有工作。

3 个答案:

答案 0 :(得分:1)

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

使用并行Universe作业,您可以通过machine_count指示计算机数量,并且只需要排队一个任务。

答案 1 :(得分:1)

我担心我不完全明白你在问什么。让我们看看我能不能以某种方式提供帮助。我可以看到几个场景:

  1. Condor仅安排您的作业在主节点上运行,无论有多少台计算机可用。
  2. Condor正在所有可用计算机上安排作业。但是,你要做的就是让一个特定的工作来使用多台机器。
  3. 如果情况1.您的提交文件或池设置正在进行。我将假设condor_status返回多台计算机并且您的池设置正常。在这种情况下的典型问题如下:如果您没有为您的工作指定Requirement,Condor将为您插入一个。{默认情况下,Condor将请求作业在具有相同操作系统和提交节点体系结构的计算机上运行。这个用异构池确实咬过我几次; - )

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

答案 2 :(得分:0)

Condor的限制方式是它只能执行(system())命令。如果您的程序没有创建许多子任务,您将无法获得任何速度提升。

请发布您的职位描述(文件)的简短片段。