in gridengine/src/gridengine/driver.py [0:0]
def preprocess_config(self, config: Dict[str, Any]) -> Dict[str, Any]:
"""
# set site specific defaults. In this example, slots are defined
# as the number of gigs per node.
from hpc.autoscale import hpctypes as ht
config["gridengine"] = ge_config = config.get("gridengine", {})
if not ge_config.get("default_resources"):
one_gig = ht.Memory.value_of("1g")
ge_config["default_resources"] = [
{
"select": {},
"name": "slots",
"value": lambda node: node.memory // one_gig,
}
]
return config
"""
config["nodearrays"] = nodearrays = config.get("nodearrays", {})
nodearrays["default"] = default = nodearrays.get("default", {})
default["placement_groups"] = default_pgs = default.get("placement_groups", [])
if not default_pgs:
for gqueue in self.ge_env.queues.values():
for pe in gqueue.get_pes():
if pe:
pe_pg_name = gqueue.get_placement_group(pe.name)
if pe_pg_name:
default_pgs.append(pe_pg_name)
if "default_resources" not in config:
config["default_resources"] = []
# make sure that user doess not need to specify both shortcut and full name
new_default_resources = []
for dr in config["default_resources"]:
c = self.ge_env.unfiltered_complexes.get(dr.get("name"))
new_default_resources.append(dr)
if not c:
continue
if c.name == c.shortcut:
continue
other_dr = deepcopy(dr)
if dr["name"] == c.name:
other_dr["name"] = c.shortcut
else:
other_dr["name"] = c.name
new_default_resources.append(other_dr)
config["default_resources"] = new_default_resources
if not config.get("gridengine", {}).get("relevant_complexes"):
return config
if "ccnodeid" not in config["gridengine"]["relevant_complexes"]:
config["gridengine"]["relevant_complexes"].append("ccnodeid")
return config