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

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



Hi Tim
Based on the logic you shared , it does not seem that we can set the RequestMemory as 1.2 times of the MaxMemory? We can't set a fixed default_MaxMemory because the memory request for jobs ranges from 1 to 6GB/core.Â

Cheers!

-Wenjing

On Wed, Jul 2, 2025 at 10:32âAM Tim Theisen <tim@xxxxxxxxxxx> wrote:
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