Skip to content

Commit 8e8ef58

Browse files
committed
PDG: parameters .ds file and override ability.
References #514.
1 parent c099413 commit 8e8ef58

File tree

3 files changed

+106
-10
lines changed

3 files changed

+106
-10
lines changed
-363 Bytes
Binary file not shown.

plugins/houdini/pdg/types/afanasyscheduler.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class AfanasyScheduler(CallbackServerMixin, PyScheduler):
2828
def __init__(self, scheduler, name):
2929
PyScheduler.__init__(self, scheduler, name)
3030
CallbackServerMixin.__init__(self, False)
31+
self.parmprefix = 'afanasy'
3132
self._initData()
3233

3334

@@ -55,23 +56,25 @@ def _constructJob(self):
5556
job = af.Job(self['job_name'].evaluateString())
5657

5758
job.setBranch(self['job_branch'].evaluateString())
58-
job.setDependMask(self['depend_mask'].evaluateString())
59-
job.setDependMaskGlobal(self['depend_mask_global'].evaluateString())
6059
job.setPriority(self['priority'].evaluateInt())
61-
job.setMaxRunningTasks(self['max_runtasks'].evaluateInt())
62-
job.setMaxRunTasksPerHost(self['maxperhost'].evaluateInt())
63-
job.setHostsMask(self['hosts_mask'].evaluateString())
64-
job.setHostsMaskExclude(self['hosts_mask_exclude'].evaluateString())
60+
job.setMaxRunningTasks(self['afanasy_max_running_tasks'].evaluateInt())
61+
job.setMaxRunTasksPerHost(self['afanasy_max_running_tasks_per_host'].evaluateInt())
62+
job.setHostsMask(self['afanasy_hosts_mask'].evaluateString())
63+
job.setHostsMaskExclude(self['afanasy_hosts_mask_exclude'].evaluateString())
6564

6665
return job
6766

6867

6968
def _constructBlock(self, work_item):
7069
block = af.Block(work_item.node.name, 'hbatch_mantra')
71-
block.setCapacity(self['capacity'].evaluateInt())
72-
block.setNeedMemory(self['min_memory'].evaluateInt()*1024)
73-
block.setTaskMinRunTime(self['minruntime'].evaluateInt())
74-
block.setTaskMaxRunTime(int(self['maxruntime'].evaluateFloat()*3600.0))
70+
block.setCapacity(self.evaluateIntOverride(work_item.node, self.parmprefix, 'capacity', work_item, -1))
71+
block.setHostsMask(self.evaluateStringOverride(work_item.node, self.parmprefix, 'hosts_mask', work_item, ''))
72+
block.setHostsMaskExclude(self.evaluateStringOverride(work_item.node, self.parmprefix, 'hosts_mask_exclude', work_item, ''))
73+
block.setMaxRunningTasks(self.evaluateIntOverride(work_item.node, self.parmprefix, 'max_running_tasks', work_item, -1))
74+
block.setMaxRunTasksPerHost(self.evaluateIntOverride(work_item.node, self.parmprefix, 'max_running_tasks_per_host', work_item, -1))
75+
block.setNeedMemory(self.evaluateIntOverride(work_item.node, self.parmprefix, 'need_memory', work_item, -1)*1024)
76+
block.setTaskMinRunTime(self.evaluateIntOverride(work_item.node, self.parmprefix, 'task_min_run_time', work_item, -1))
77+
block.setTaskMaxRunTime(int(self.evaluateFloatOverride(work_item.node, self.parmprefix, 'task_max_run_time', work_item, -1)*3600.0))
7578
# Check service and parser:
7679
# PDG uses "ALF_PROGRESS" everywhere
7780
block.setParser('mantra')

plugins/houdini/topscheduler.user.ds

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
parm {
2+
name "afanasy_capacity"
3+
label "Tasks Capacity"
4+
type integer
5+
default { "-1" }
6+
range { -1 10000 }
7+
parmtag { "pdg::scheduler" "" }
8+
parmtag { spare_category "Afanasy" }
9+
help "Afanasy job tasks capacity."
10+
}
11+
12+
13+
parm {
14+
name "afanasy_hosts_mask"
15+
label "Hosts Mask"
16+
type string
17+
default { "" }
18+
parmtag { "pdg::scheduler" "" }
19+
parmtag { spare_category "Afanasy" }
20+
help "The regular expression for hosts that the job should execute on."
21+
}
22+
23+
24+
parm {
25+
name "afanasy_hosts_mask_exclude"
26+
label "Exclude Hosts Mask"
27+
type string
28+
default { "" }
29+
parmtag { "pdg::scheduler" "" }
30+
parmtag { spare_category "Afanasy" }
31+
help "The regular expression for hosts that the job should not be executed on."
32+
}
33+
34+
35+
parm {
36+
name "afanasy_max_running_tasks"
37+
label "Maximum Running Tasks"
38+
type integer
39+
default { "-1" }
40+
range { -1 100 }
41+
parmtag { "pdg::scheduler" "" }
42+
parmtag { spare_category "Afanasy" }
43+
help "Maximum running tasks at the same time limit."
44+
}
45+
46+
47+
parm {
48+
name "afanasy_max_running_tasks_per_host"
49+
label "Maximum Running Tasks Per Host"
50+
type integer
51+
default { "-1" }
52+
range { -1 10 }
53+
parmtag { "pdg::scheduler" "" }
54+
parmtag { spare_category "Afanasy" }
55+
help "Maximum running tasks at the same time on the same host limit."
56+
}
57+
58+
59+
parm {
60+
name "afanasy_need_memory"
61+
label "Memory Needed GB"
62+
type integer
63+
default { "-1" }
64+
range { -1 256 }
65+
parmtag { "pdg::scheduler" "" }
66+
parmtag { spare_category "Afanasy" }
67+
help "Minimum free memory needed on host to be able to run a task in Giga bytes)."
68+
}
69+
70+
71+
parm {
72+
name "afanasy_task_min_run_time"
73+
label "Task Minmum Running Time (Sec)"
74+
type integer
75+
default { "-1" }
76+
range { -1 60 }
77+
parmtag { "pdg::scheduler" "" }
78+
parmtag { spare_category "Afanasy" }
79+
help "Task minimum running time in seconds."
80+
}
81+
82+
83+
parm {
84+
name "afanasy_task_max_run_time"
85+
label "Task Maximum Running Time (Hours)"
86+
type float
87+
default { "-1" }
88+
range { -1 60 }
89+
parmtag { "pdg::scheduler" "" }
90+
parmtag { spare_category "Afanasy" }
91+
help "Task maximum running time in hours."
92+
}
93+

0 commit comments

Comments
 (0)