我有一个有多个节点处于活动状态的秃鹰集群。
但是当我提交作业时,它只在单个节点(即主节点)上运行。我知道 Condor 会根据可用资源自动分配工作。
但是如果我想强制 condor 使用所有节点呢?只是为了评估在多节点和单节点上运行时的处理时间?
我尝试在提交文件中添加 requirements = Machine == "hostname1" && Machine == "hostname2" ,但不起作用。
我有一个有多个节点处于活动状态的秃鹰集群。
但是当我提交作业时,它只在单个节点(即主节点)上运行。我知道 Condor 会根据可用资源自动分配工作。
但是如果我想强制 condor 使用所有节点呢?只是为了评估在多节点和单节点上运行时的处理时间?
我尝试在提交文件中添加 requirements = Machine == "hostname1" && Machine == "hostname2" ,但不起作用。
根据您要执行的操作,您可能希望使用此处概述的平行宇宙:http ://research.cs.wisc.edu/htcondor/manual/current/2_9Parallel_Applications.html
使用并行宇宙作业,您可以通过指示机器计数,machine_count
并且只需要对单个任务进行排队。
恐怕我不完全理解你在问什么。让我们看看我能不能帮忙。我可以看到几个场景:
如果 1. 您的提交文件或池设置出现问题。我将假设condor_status
返回不止一台机器,并且您的池设置正常。在这种情况下,典型的问题如下:如果你没有Requirement
为你的工作指定一个,Condor 会为你插入一个。默认情况下,Condor 将请求作业在与提交节点具有相同操作系统和架构的机器上运行。这个确实用异构池咬了我几次;-)
在案例 2 中,您必须确保您的可执行文件可以使用多台机器(例如通过 MPI),并且您需要告诉 Condor。一种方法是使用Parallel
宇宙。另一种方法是使用经典的master/worker架构,其中 worker 是持久的 Condor 作业。
Condor 的局限性在于它只能执行 ( system()
) 一个命令。如果您的程序没有创建很多子任务,您将不会体验到任何速度提升。
请张贴您的职位描述(文件)的简短片段。