- Make use of systopology instead of misc in hackbench - Add a module docstring - Make use of f-strings Signed-off-by: John Kacur <jkacur@xxxxxxxxxx> - Add missing "f" from f-string in __starton in hackbench.py Signed-off-by: John Kacur <jkacur@xxxxxxxxxx> --- rteval/modules/loads/hackbench.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/rteval/modules/loads/hackbench.py b/rteval/modules/loads/hackbench.py index ddd1378bac75..538f60f00282 100644 --- a/rteval/modules/loads/hackbench.py +++ b/rteval/modules/loads/hackbench.py @@ -24,6 +24,7 @@ # including keys needed to generate an equivalently functional executable # are deemed to be part of the source code. # +""" Load module - run the hackbench program from rt-tests ad a load """ import sys import os @@ -34,8 +35,9 @@ import errno from signal import SIGKILL from rteval.modules.loads import CommandLineLoad from rteval.Log import Log -from rteval.misc import expand_cpulist -from rteval.systopology import SysTopology +from rteval.systopology import CpuList, SysTopology + +expand_cpulist = CpuList.expand_cpulist class Hackbench(CommandLineLoad): def __init__(self, config, logger): @@ -46,7 +48,7 @@ class Hackbench(CommandLineLoad): if self._donotrun: return - 'calculate arguments based on input parameters' + # calculate arguments based on input parameters (mem, units) = self.memsize if units == 'KB': mem = mem / (1024.0 * 1024.0) @@ -58,9 +60,9 @@ class Hackbench(CommandLineLoad): ratio = float(mem) / float(self.num_cpus) if ratio < 0.75: if self.__cfg.runlowmem: - self._log(Log.WARN, "Low memory system (%f GB/core)!" % ratio) + self._log(Log.WARN, f"Low memory system ({ratio} GB/core)!") else: - self._log(Log.WARN, "Low memory system (%f GB/core)! Not running hackbench" % ratio) + self._log(Log.WARN, f"Low memory system ({ratio} GB/core)! Not running hackbench") self._donotrun = True sysTop = SysTopology() @@ -85,7 +87,7 @@ class Hackbench(CommandLineLoad): for node, cpus in list(self.cpus.items()): if not cpus: self.nodes.remove(node) - self._log(Log.DEBUG, "node %s has no available cpus, removing" % node) + self._log(Log.DEBUG, f"node {node} has no available cpus, removing") # setup jobs based on the number of cores available per node self.jobs = biggest * 3 @@ -95,7 +97,7 @@ class Hackbench(CommandLineLoad): self.__multinodes = False if len(self.nodes) > 1: self.__multinodes = True - self._log(Log.INFO, "running with multiple nodes (%d)" % len(self.nodes)) + self._log(Log.INFO, f"running with multiple nodes ({len(self.nodes)})") if os.path.exists('/usr/bin/numactl') and not self.cpulist: self.__usenumactl = True self._log(Log.INFO, "using numactl for thread affinity") @@ -121,7 +123,7 @@ class Hackbench(CommandLineLoad): self.tasks = {} - self._log(Log.DEBUG, "starting loop (jobs: %d)" % self.jobs) + self._log(Log.DEBUG, f"starting loop (jobs: {self.jobs})") self.started = False @@ -135,14 +137,14 @@ class Hackbench(CommandLineLoad): else: args = self.args - self._log(Log.DEBUG, "starting on node %s: args = %s" % (node, args)) + self._log(Log.DEBUG, f"starting on node {node}: args = {args}") p = subprocess.Popen(args, stdin=self.__nullfp, stdout=self.__out, stderr=self.__err) if not p: - self._log(Log.DEBUG, "hackbench failed to start on node %s" % node) - raise RuntimeError("hackbench failed to start on node %s" % node) + self._log(Log.DEBUG, f"hackbench failed to start on node {node}") + raise RuntimeError(f"hackbench failed to start on node {node}") return p def _WorkloadTask(self): @@ -181,7 +183,7 @@ class Hackbench(CommandLineLoad): for node in self.nodes: if node in self.tasks and self.tasks[node].poll() is None: - self._log(Log.INFO, "cleaning up hackbench on node %s" % node) + self._log(Log.INFO, f"cleaning up hackbench on node {node}") self.tasks[node].send_signal(SIGKILL) if self.tasks[node].poll() is None: time.sleep(2) @@ -213,7 +215,3 @@ def ModuleParameters(): def create(config, logger): return Hackbench(config, logger) -# TODO: The following test is broken -#if __name__ == '__main__': -# h = Hackbench(params={'debugging':True, 'verbose':True}) -# h.run() -- 2.37.1