Ticket #2835: revamp default job requirements esp given partitionable slots

The way condor_submit sets up default job requirements for memory, disk, etc, is pretty convoluted and typically does not do what users expect. Especially given our push towards partitionable slots, it is time to revisit this.

So currently the default requirements looks like this:

Requirements =
    ( TARGET.Disk >= DiskUsage ) &&
    ( ( TARGET.Memory * 1024 ) >= ImageSize ) &&
    ( ( RequestMemory * 1024 ) >= ImageSize )

 RequestMemory =
        ifThenElse(JobVMMemory =!= undefined,
                   ImageSize / 1024.000000)

Proposed to change such that

  1. default job requirements expression does not insert in any sub-expressions related to partitionable resources (currently memory, disk, cpu).
  2. no default (in condor_submit) for RequestMemory etc; of course submit exprs knob could set one
  3. Add XxxUsage for each partitionable resource, e.g. MemoryUsage, DiskUsage, that makes the units match up with RequestXxx units (e.g. everything based on Mbytes?) and references a 'best practice' attribute. So on Linux, MemoryUsage = ResidentSetSize * xxx

So if and only the job ad specifies RequestDisk and RequestMemory, job requirements would look like

 Requirements = ( Disk >= RequestDisk ) && ( Memory >= RequestMemory )
NOTE: we either need to bite the bullet and make all units the same (bytes? Mbytes?) or include unit multipliers in the above
[Append remarks]


2012-Feb-27 21:49:49 by tstclair:
I think we need to add a warning on submission if no RequestMemory is given such that the user can make sense out of it, being silent is not an option imho given that I was completely trip'd by this.

2012-Apr-02 15:46:37 by tstclair:
So this should be updated and kicked out of review per that last meeting as the defaults need to change.

2012-Apr-25 13:13:00 by johnkn:
Given this submit file
Executable = dummy
Universe = Vanilla
Queue 1
condor_submit will now produce Request* and Requirements expressions like this:
RequestMemory = ifthenelse(MemoryUsage =!= undefined,MemoryUsage,1)
RequestDisk = DiskUsage
RequestCpus = 1
Requirements = <opsys_expr> && (TARGET.Disk >= RequestDisk) && (TARGET.Memory >= RequestMemory)
By comparison, 7.6.6 would produce the following instead
RequestMemory = ceiling(ifThenElse(JobVMMemory =!= undefined,JobVMMemory,ImageSize / 1024.000000))
RequestDisk = DiskUsage
RequestCpus = 1
Requirements = <opsys_expr> && (TARGET.Disk >= DiskUsage) && ((TARGET.Memory * 1024) >= ImageSize) && ((RequestMemory * 1024) >= ImageSize))

2012-Apr-27 15:38:18 by johnkn:
Igor points out that we changed the policy between 7.7.5 and 7.7.6 to warn about using Memory and Disk in Requrements. He suggests that we should give users an entire series to transition to the new policy before having condor_submit warn about it.

I propose that we do this. In particular I propose

Also we should support Igor's use case of having a way to disable Requirements checks against memory & disk entirely -

[Append remarks]


Type: enhance           Last Change: 2012-May-25 12:47
Status: resolved          Created: 2012-Feb-20 15:02
Fixed Version: v070706           Broken Version:  
Priority:          Subsystem: Tools 
Assigned To: johnkn           Derived From: #2842
Creator: tannenba  Rust:  
Customer Group: other  Visibility: public 
Notify: tannenba@cs.wisc.edu, danb@cs.wisc.edu, tstclair@redhat.com, bbockelm@cse.unl.edu  Due Date:  

Related Check-ins:

2012-May-18 14:25   Check-in [32068]: document JOB_DEFAULT_REQUESTDISK and JOB_DEFAULT_REQUESTCPUS ===GT=== #2835 (By Karen Miller )
2012-May-09 15:23   Check-in [31985]: version history for #2850 #2835 & #2783 (By John (TJ) Knoeller )
2012-Apr-03 19:24   Check-in [31098]: Added knobs JOB_DEFAULT_REQUEST[MEMORY|DISK|CPUS] to condor_submit. #2835 Defaults are in the param table. (By Todd Tannenbaum )
2012-Mar-20 15:06   Check-in [30979]: Update Default RequestMemory check + add a warning. ===GT=== #2835 (By Timothy St. Clair )
2012-Feb-23 11:00   Check-in [30676]: revamp default Requirements expression in condor_submit given needs of Partitional slots. #2835 comparisons to ImageSize are no longer inserted into Requirements. Now omparisons to RequestDisk and RequestMemory are inserted if they are defined at submit time. This check-in also makes condor_submit ready [...] (By John (TJ) Knoeller )