Ticket #2835: revamp default job requirements esp given partitionable slots
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:
( TARGET.Disk >= DiskUsage ) &&
( ( TARGET.Memory * 1024 ) >= ImageSize ) &&
( ( RequestMemory * 1024 ) >= ImageSize )
ifThenElse(JobVMMemory =!= undefined,
ImageSize / 1024.000000)
Proposed to change such that
- default job requirements expression does not insert in any sub-expressions related to partitionable resources (currently memory, disk, cpu).
- no default (in condor_submit) for
RequestMemory etc; of course submit exprs knob could set one
XxxUsage for each partitionable resource, e.g.
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
RequestMemory, job requirements would look like
NOTE: we either need to bite the bullet and make all units the same (bytes? Mbytes?) or include unit multipliers in the above
Requirements = ( Disk >= RequestDisk ) && ( Memory >= RequestMemory )
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
condor_submit will now produce
Executable = dummy
Universe = Vanilla
Requirements expressions like this:
By comparison, 7.6.6 would produce the following instead
RequestMemory = ifthenelse(MemoryUsage =!= undefined,MemoryUsage,1)
RequestDisk = DiskUsage
RequestCpus = 1
Requirements = <opsys_expr> && (TARGET.Disk >= RequestDisk) && (TARGET.Memory >= RequestMemory)
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
- Create a new config knob ENABLE_SUBMIT_WARNINGS_ABOUT_UPCOMING_POLICY
set the default value for this knob to FALSE.
- Have 7.8 check this knob before warning about Memory & Disk in requirements
- Have 7.9 NOT check this knob before warning about Memory & Disk.
- At about 7.8.5 either switch the default value for this knob to TRUE, or remove the code that checks the knob for Memory & Disk in requirements.
Also we should support Igor's use case of having a way to disable Requirements checks against memory & disk entirely -
- Add code in condor_submit to check for a
request_memory=undefined statement in the submit file, and have it NOT add a reference to
Requirements in that case.
||firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com
Check-in : document JOB_DEFAULT_REQUESTDISK and JOB_DEFAULT_REQUESTCPUS ===GT=== #2835 (By Karen Miller )|
Check-in : version history for #2850 #2835 & #2783 (By John (TJ) Knoeller )|
Check-in : Added knobs JOB_DEFAULT_REQUEST[MEMORY|DISK|CPUS] to condor_submit. #2835 Defaults are in the param table. (By Todd Tannenbaum )|
Check-in : Update Default RequestMemory check + add a warning. ===GT=== #2835 (By Timothy St. Clair )|
Check-in : 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 )|