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

Re: [HTCondor-users] How to change the RequestMemory of condor jobs



Hello Wendy,

I missed this question since it was a reply to another question. Unfortunately, the handling of RequestMemory is not straightforward. The comments in the default ce routes shed some light on this:

ÂÂÂ # Outside of the HTCondor WholeNodeJobs case, set RequestMemory to one of the following, in order:
ÂÂÂ # 1. 'maxMemory' from the source job if it's defined
ÂÂÂ # 2. default_MaxMemory from the job route
ÂÂÂ # 3. 2000
ÂÂÂ # Note that if the route does the condor thing and sets RequestMemory, this transform will stomp on that

Hopefully this advice helps.

...Tim

On 6/25/25 15:20, Wendy Dronen wrote:
Dear All,
We would like to change the RequestMemory from the job router of HTCondor-CE, and this is what we have in the job router file[1],
 ÂEVALSET RequestMemory maxMemory * 1.1
 ÂEVALSET RequestVirtualMemory maxMemory * 2.2

however it does not seem to work, we can see the job's RequestMemory is still set to equal to the maxMemory which was a field set by the ATLAS jobs in their job submission file.
# condor_q 1725991 -l |grep -i 'memory.* = '
JobMemory = RequestMemory
JobMemoryLimit = 13516800.0
maxMemory = 6000
RequestMemory = 6000

Could you shed some light on this?

Cheers!

-Wenjing (AGLT2)
[1]
##### Route 1
JOB_ROUTER_ROUTE_ATLASProductionMCOREQueue @=jre
 ÂNAME ATLAS Production MCORE Queue
 ÂUNIVERSE VANILLA
 ÂREQUIREMENTS regexp("usatlas",Owner) && ifThenElse(xcount =?= undefined,false,xcount == 8)  Â# autoconversion of route 'ATLAS Production MCORE Queue' from old route syntax
 Â# set_* rules
 ÂSET IsAnalyJob false
 ÂSET IsLustreJob false
 ÂSET IsMediumJob false
 ÂSET IsShortJob false
 ÂSET IsTestJob false
 ÂSET IsTier3TestJob false
 ÂSET IsUnlimitedJob false
 ÂSET JobPrio 26
 ÂSET localQue "MP8"
 ÂSET PeriodicRemove (RemoteWallClockTime > (3 * 24 * 60 * 60 + 5 * 60))
 ÂSET Rank 100 / (1 + (MaxMemory / RequestCpus / 1000 - TARGET.DetectedMemory / TARGET.DetectedCpus / 1000) * (MaxMemory / RequestCpus / 1000 - TARGET.DetectedMemory / TAR
GET.DetectedCpus / 1000))
 ÂSET RequestAnalyTask 0
 ÂSET RequestLMEMTask ifThenElse(maxMemory =!= undefined,ifThenElse(maxMemory <= 47992,0,8),0)  ÂSET requirements ((TARGET.TotalDisk =?= undefined) || (TARGET.TotalDisk >= 21000000)) && (TARGET.Arch == "X86_64") && (TARGET.OpSys == "LINUX") && (TARGET.Disk >= Reques tDisk) && (6.1 * TARGET.DetectedMemory / TARGET.DetectedCpus >= RequestMemory / RequestCpus) && (TARGET.HasFileTransfer) && (TARGET.Cpus >= 8)
 ÂSET Slot_Type "mp8"
 Â# eval_set_* rules
 ÂEVALSET AccountingGroup ifThenElse(maxMemory =!= undefined,ifThenElse(maxMemory <= 16000,strcat("group_gatekpr.prod.",Owner),ifThenElse(maxMemory <= 24000,strcat("group_
gatekpr.prod.",Owner,"_HMEM"),strcat("group_gatekpr.prod.",Owner,"_VHMEM"))),strcat("group_gatekpr.prod.",Owner))
 ÂEVALSET JobLeaseDuration 7200
 ÂEVALSET JobMemoryLimit maxMemory * 2.2 * 1024
 ÂEVALSET RequestCpus ifThenElse(xcount =!= undefined,xcount,8)
 ÂEVALSET RequestMemory maxMemory * 1.2
@jre

##### Route 2
JOB_ROUTER_ROUTE_ATLASProductionSCOREQueue @=jre
 ÂNAME ATLAS Production SCORE Queue
 ÂUNIVERSE VANILLA
 ÂREQUIREMENTS ifThenElse(queue =?= undefined,regexp("usatlas1",Owner),ifThenElse(xcount =?= undefined,regexp("usatlas1",Owner),(queue == "prod" || queue == "Prod") && xco
unt == 1))
 Â# autoconversion of route 'ATLAS Production SCORE Queue' from old route syntax
 Â# set_* rules
 ÂSET IsAnalyJob false
 ÂSET IsLustreJob false
 ÂSET IsMediumJob false
 ÂSET IsShortJob false
 ÂSET IsTestJob false
 ÂSET IsTier3TestJob false
 ÂSET IsUnlimitedJob false
 ÂSET JobPrio ifThenElse(maxMemory =!= undefined,ifThenElse(maxMemory =?= 2048,56,16),16)
 ÂSET localQue "Default"
 ÂSET PeriodicRemove (RemoteWallClockTime > (3 * 24 * 60 * 60 + 5 * 60))
 ÂSET Rank 100 / (1 + (MaxMemory / RequestCpus / 1000 - TARGET.DetectedMemory / TARGET.DetectedCpus / 1000) * (MaxMemory / RequestCpus / 1000 - TARGET.DetectedMemory / TAR
GET.DetectedCpus / 1000))
 ÂSET RequestAnalyTask 0
 ÂSET RequestLMEMTask ifThenElse(maxMemory =!= undefined,ifThenElse(maxMemory <= 5999,0,1),0)  ÂSET requirements ((TARGET.TotalDisk =?= undefined) || (TARGET.TotalDisk >= 21000000)) && (TARGET.Arch == "X86_64") && (TARGET.OpSys == "LINUX") && (TARGET.Disk >= Reques tDisk) && (6.1 * TARGET.DetectedMemory / TARGET.DetectedCpus >= RequestMemory / RequestCpus) && (TARGET.HasFileTransfer) && ifThenElse(TARGET.SCORE =?= true,true,TARGET.Cpu
s % 8 =!= 0)
 Â# eval_set_* rules
 ÂEVALSET AccountingGroup ifThenElse(maxMemory =!= undefined,ifThenElse(maxMemory <= 2000,strcat("group_gatekpr.prod.",Owner),ifThenElse(maxMemory <= 3000,strcat("group_ga
tekpr.prod.",Owner,"_HMEM"),strcat("group_gatekpr.prod.",Owner,"_VHMEM"))),strcat("group_gatekpr.prod.",Owner))
 ÂEVALSET JobLeaseDuration 7200
 ÂEVALSET JobMemoryLimit maxMemory * 2.2 * 1024
 ÂEVALSET RequestCpus ifThenElse(xcount =!= undefined,xcount,1)
 ÂEVALSET RequestMemory maxMemory * 1.1
 ÂEVALSET RequestVirtualMemory maxMemory * 2.2
@jre


Cheers!

-Wenjing

_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe

The archives can be found at: https://www-auth.cs.wisc.edu/lists/htcondor-users/

--
Tim Theisen (he, him, his)
Release Manager
Center for High Throughput Computing
Department of Computer Sciences
University of Wisconsin - Madison
4261 Computer Sciences and Statistics
1210 W Dayton St
Madison, WI 53706-1685
+1 608 265 5736