DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
readout-affinity Namespace Reference

Functions

 get_app_name (proc_cmdline)
 parse_cpumask (mask)
 Parses CPU mask strings and lists.

Variables

str info = 'Alters CPU masks of running processes with different arguments, based on a configuration file.'
 parser = argparse.ArgumentParser(description=info)
 type
 str
 required
 True
 help
 args = parser.parse_args()
 pinfile = args.pinfile
 lcpu_count = len(os.sched_getaffinity(0))
 pcpu_count = psutil.cpu_count(logical=False)
 vmem = psutil.virtual_memory()
dict affinity_dict = {}
 Parse affinity json.
 affinity_json = json.load(f)
 aff_value = affinity_json[proc][proc_opts][aff_field]
dict proc_names = affinity_dict.keys()
 Apply CPU masks.
list procs = []
dict names_dict = affinity_dict[proc.name()].keys()
str proc_cmdline = ' '.join(proc.cmdline())
 proc_name = get_app_name(proc_cmdline)
str rss = 'Resident Set Size (RSS): ' + str('{:.2f}'.format(proc.memory_info().rss/1024/1024)) + ' [MB]'
str vms = 'Virtual Memory Size (VMS): ' + str('{:.2f}'.format(proc.memory_info().vms/1024/1024)) + ' [MB]'
 connections = proc.connections()
 children = proc.children(recursive=True)
 threads = proc.threads()
dict mask = affinity_dict[proc.name()][mask_name]['parent']
 cid = psutil.Process(child.pid)
 tid = psutil.Process(thread.id)
dict thread_masks = affinity_dict[proc.name()][mask_name]['threads']
list mask_matches = [ m for m in [(th_mask['regex'].fullmatch(tid.name()),th_mask['cpu_list']) for th_mask in thread_masks.values()] if m[0] is not None]

Function Documentation

◆ get_app_name()

get_app_name ( proc_cmdline)

Definition at line 29 of file readout-affinity.py.

29def get_app_name(proc_cmdline):
30 proc_name = proc_cmdline.split(" ")
31 target = "--name" if "--name" in proc_name else "-n"
32 try:
33 proc_name = proc_name[proc_name.index(target) + 1]
34 except ValueError:
35 raise ValueError("Cannot find application name in the command line using -n or --name")
36 return proc_name
37

◆ parse_cpumask()

parse_cpumask ( mask)

Parses CPU mask strings and lists.

Definition at line 39 of file readout-affinity.py.

39def parse_cpumask(mask):
40 cpu_mask = set()
41 if type(mask) == list:
42 cpu_mask = set(mask)
43 return list(cpu_mask)
44 elif type(mask) == str:
45 for region_str in mask.split(','):
46 try:
47 region = region_str.replace(" ", "").split('-')
48 if len(region) == 1:
49 cpu_mask.add(int(region[0]))
50 elif len(region) == 2:
51 cpu_from = int(region[0])
52 cpu_to = int(region[1])
53 for cpu in range(cpu_from, cpu_to+1):
54 cpu_mask.add(cpu)
55 else:
56 raise Exception('This is neither a single CPU or a range of CPUs:', mask)
57 except Exception as e:
58 raise Exception('Corrcupt CPU mask region! Mask string:', mask, 'Exception:', e)
59 else:
60 raise Exception('CPU mask needs to be string or list. Current:', mask)
61 return list(cpu_mask)
62

Variable Documentation

◆ aff_value

readout-affinity.aff_value = affinity_json[proc][proc_opts][aff_field]

Definition at line 78 of file readout-affinity.py.

◆ affinity_dict

dict readout-affinity.affinity_dict = {}

Parse affinity json.

Definition at line 65 of file readout-affinity.py.

◆ affinity_json

readout-affinity.affinity_json = json.load(f)

Definition at line 68 of file readout-affinity.py.

◆ args

readout-affinity.args = parser.parse_args()

Definition at line 14 of file readout-affinity.py.

◆ children

readout-affinity.children = proc.children(recursive=True)

Definition at line 119 of file readout-affinity.py.

◆ cid

readout-affinity.cid = psutil.Process(child.pid)

Definition at line 133 of file readout-affinity.py.

◆ connections

readout-affinity.connections = proc.connections()

Definition at line 117 of file readout-affinity.py.

◆ help

readout-affinity.help

Definition at line 12 of file readout-affinity.py.

◆ info

str readout-affinity.info = 'Alters CPU masks of running processes with different arguments, based on a configuration file.'

Definition at line 10 of file readout-affinity.py.

◆ lcpu_count

readout-affinity.lcpu_count = len(os.sched_getaffinity(0))

Definition at line 21 of file readout-affinity.py.

◆ mask

dict readout-affinity.mask = affinity_dict[proc.name()][mask_name]['parent']

Definition at line 125 of file readout-affinity.py.

◆ mask_matches

list readout-affinity.mask_matches = [ m for m in [(th_mask['regex'].fullmatch(tid.name()),th_mask['cpu_list']) for th_mask in thread_masks.values()] if m[0] is not None]

Definition at line 147 of file readout-affinity.py.

◆ names_dict

dict readout-affinity.names_dict = affinity_dict[proc.name()].keys()

Definition at line 105 of file readout-affinity.py.

◆ parser

readout-affinity.parser = argparse.ArgumentParser(description=info)

Definition at line 11 of file readout-affinity.py.

◆ pcpu_count

readout-affinity.pcpu_count = psutil.cpu_count(logical=False)

Definition at line 22 of file readout-affinity.py.

◆ pinfile

readout-affinity.pinfile = args.pinfile

Definition at line 18 of file readout-affinity.py.

◆ proc_cmdline

str readout-affinity.proc_cmdline = ' '.join(proc.cmdline())

Definition at line 106 of file readout-affinity.py.

◆ proc_name

readout-affinity.proc_name = get_app_name(proc_cmdline)

Definition at line 107 of file readout-affinity.py.

◆ proc_names

dict readout-affinity.proc_names = affinity_dict.keys()

Apply CPU masks.

Definition at line 97 of file readout-affinity.py.

◆ procs

list readout-affinity.procs = []

Definition at line 98 of file readout-affinity.py.

◆ required

readout-affinity.required

Definition at line 12 of file readout-affinity.py.

◆ rss

str readout-affinity.rss = 'Resident Set Size (RSS): ' + str('{:.2f}'.format(proc.memory_info().rss/1024/1024)) + ' [MB]'

Definition at line 114 of file readout-affinity.py.

◆ str

readout-affinity.str

Definition at line 12 of file readout-affinity.py.

◆ thread_masks

dict readout-affinity.thread_masks = affinity_dict[proc.name()][mask_name]['threads']

Definition at line 143 of file readout-affinity.py.

◆ threads

readout-affinity.threads = proc.threads()

Definition at line 121 of file readout-affinity.py.

◆ tid

readout-affinity.tid = psutil.Process(thread.id)

Definition at line 136 of file readout-affinity.py.

◆ True

readout-affinity.True

Definition at line 12 of file readout-affinity.py.

◆ type

readout-affinity.type

Definition at line 12 of file readout-affinity.py.

◆ vmem

readout-affinity.vmem = psutil.virtual_memory()

Definition at line 23 of file readout-affinity.py.

◆ vms

str readout-affinity.vms = 'Virtual Memory Size (VMS): ' + str('{:.2f}'.format(proc.memory_info().vms/1024/1024)) + ' [MB]'

Definition at line 115 of file readout-affinity.py.