I need to launch a Condor job on a cluster with multiple slots per machine.
I have an additional requirement that two jobs can not be placed at the same time in the same physical machine. This is due to some binary that I can not control which performs some networking (poorly).
This is a somewhat related question: Limiting number of concurrent processes scheduled by condor
but it does not completely solves my problem. I understand I could restrict where jobs can run in the following way: Requirements = (name == "slot1@machine1") || (name == "slot1@machine2") ...
However this is too restricting as I don't care which slot the jobs run as long as two jobs are not together in the same machine.
Is there a way to achieve this?
If this is not possible how can I tell condor to pick the machine that has the most slots available?