[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-users] Condor Slots Understanding Question....

On Wednesday, 14 September, 2011 at 2:37 PM, Sassy Natan wrote:

Hi Group,

A Simple question.

In my Pool I have 96 slots.

The slots are coming from 6 machines, each with 16 cores.

So I have cpu01,cpu02,cpu03, cpu04,cpu05 and cpu06.

Machine 01,02,03,04 have 96GB of ram.
Machine 05,06 have 128GB of ram.

My question is as follow:

If i submit 24 jobs to the pool, I see something that the jobs running on cpu06 and cpu05 (16 jobs on cpu05, 8 jobs on cpu06)
I wonder if it is possible to make sure that when submitting jobs to the pool, the jobs allocation will go like that:

24 jobs on 96 slots on 6 machines:

cpu01 - 4 jobs
cpu02 - 4 jobs
cpu03 - 4 jobs
cpu04 - 4 jobs
cpu05 - 4 jobs
cpu06 - 4 jobs

if new jobs are being submitted to the pool, and say cpu04,cpu03,cpu02, cpu01 has high memory, the job will run on the machine having the most available resource. in this example say cpu06 and cpu05 which free memory.
So if I send 10 job to the Q it will goes like this:

cpu01 - 4 jobs
cpu02 - 4 jobs
cpu03 - 4 jobs
cpu04 - 4 jobs
cpu05 - 4 jobs + 5 job
cpu06 - 4 jobs + 5 job

How can I make this happen?

Take a look at NEGOTIATOR_PRE_JOB_RANK and NEGOTIATOR_POST_JOB_RANK. In  your case I'd try:

NEGOTIATOR_POST_JOB_RANK = (RemoteOwner =?= UNDEFINED) * (KFlops - SlotID)

So that favours machines where the slot is unoccupied and the slot ID is lower. That would fill all empty slot1 slots, then all empty slot2 slots and so on. Adjust to suit your needs.

- Ian

Ian Chesal

Cycle Computing, LLC
Leader in Open Compute Solutions for Clouds, Servers, and Desktops
Enterprise Condor Support and Management Tools