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

[Condor-users] Mutual ranking in matchmaking



Hi, 

I am using Condor-G with matchmaking, and 
I placed the logic for selecting the 
"best" resource for a job within the Rank 
attribute of the job (I am using the 
job's Rank attribute for resource selection). 

I would like to be able to use also the resource's 
Rank attribute, in order to alter the order in which 
jobs are started. 

It is not clear to me how, if ever, the resource's 
Rank attribute is used for Condor-G matchmaking. 

My understanding is that the negotiator goes through 
the pending jobs in priority order and it tries to 
match each job with the best resource for that job, i.e.,
 

(1) outer loop iterates on jobs

   for each job in (pending_jobs) 
   {
       find resources for which 
           job.Requirements == TRUE and  
           resource.Requirements == TRUE

       for these resources compute Rank defined by job

       pick resource with highest rank
   }


On the other hand, in order to consider the resource's 
Rank attribute, a loop like this is needed:


(2) outer loop iterates on machines

   for each resource in (machines that are up) 
   {
       find jobs for which 
             machine.Requirements == TRUE and 
             job.Requirements == TRUE

       for these jobs compute Rank defined by resource

       pick job with highest rank
   }


In the first case, resource selection is based on the 
job's Rank expression, while in the second case 
job selection is based on the resource's 
Rank expression. 

My question is the following:

  Does Condor-G use resource ranking (loop (1)),  
  or does it also use job ranking (loop (2))? 
  In other words, does it rank the resources for 
  a jobs (1), or the jobs for a resource (2), or both?


Thank you.
Gabriel