Skip to content

Commit 6f1ad99

Browse files
handle memory in resource dispatch #215
1 parent a41b458 commit 6f1ad99

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/feelpp/benchmarking/reframe/setup.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def setupParameters(self):
222222
self.app_setup.updateConfig({ f"parameters.{param_name}.{subparameter}.value":str(value[subparameter]) })
223223

224224
@run_before('run')
225-
def setResources(self):
225+
def setResources(self): #TODO: Maybe use strategy for this
226226
resources = self.app_setup.reader.config.resources
227227
if resources.tasks and resources.tasks_per_node:
228228
self.num_tasks_per_node = int(resources.tasks_per_node)
@@ -257,6 +257,15 @@ def setResources(self):
257257
else:
258258
raise ValueError("The Tasks parameter should contain either (tasks_per_node,nodes), (tasks,nodes), (tasks) or (tasks, tasks_per_node)")
259259

260+
261+
if resources.memory:
262+
nodes = int(np.ceil(int(resources.memory) / self.current_partition.extras["memory_per_node"]))
263+
if hasattr(self,"num_nodes"):
264+
self.num_nodes = nodes
265+
self.num_nodes = max(self.num_nodes,nodes)
266+
267+
self.num_tasks_per_node = min(self.num_tasks_per_node, self.num_tasks // self.num_nodes)
268+
260269
self.job.options += ['--threads-per-core=1']
261270
self.num_cpus_per_task = 1
262271
self.exclusive_access = bool(resources.exclusive_access) or True

0 commit comments

Comments
 (0)