I need to run a Condor job in a cluster with multiple slots per machine.
I have an additional requirement that two tasks cannot be placed simultaneously on the same physical machine. This is due to some binaries that I cannot control, which runs some network (bad).
This is a somewhat related question: Limiting the number of parallel processes planned by the condor but it does not completely solve my problem. I understand that I could limit where work can be done as follows: Requirements = (name == " slot1@machine1 ") || (name == " slot1@machine2 ") ... Requirements = (name == " slot1@machine1 ") || (name == " slot1@machine2 ") ... However, this is too restrictive, because I don’t care which slot performs the tasks until the two tasks are together on the same computer.
Is there any way to achieve this?
If this is not possible, how can I tell the condor to choose the car with the most available slots?
source share