qcg.pilotjob.utils.proc_traces module
- class qcg.pilotjob.utils.proc_traces.ProcTraces(paths, ignore_errors=True)
Bases:
objectAnalyze process traces.
- Atributes:
paths (list(str)) - paths with traces files ignore_errors (bool) - raise exception when error occur nodes_procs (dict(str,dict)) - a dictionary with node names as keys and process data as values
each process data is dictionary with pid (as string) as a key and dictionary of attributes as value
- read()
Read process traces from log files.
- get_process(job_pid, node_name=None)
Find process data with given pid.
If node_name is not specified, and there are more than single process with given pid on all nodes the first encountered process is returned.
- Parameters
job_pid (str,int) –
node_name (str) – are searched
- Returns
process data
- Return type
dict
- childs_on_other_nodes(process, slurm_step_id=None)
Find child process on other nodes not explicitely linked. For example when launching openmpi application where some of the instances will be launched on other nodes, mpirun should launch ‘orted’ deamon (via slurm) with identifier. When we find that such process has been created, we can look for ‘orted’ processes on other nodes with the same identifier.
- Parameters
process (dict) –
slurm_step_id (str) - a slurm's step identifier (optional) –
- Returns
list of process identifiers that has been run on other nodes
- Return type
list(str)
- process_iterator(pid, node_name=None)
Generator which iterates on process and it’s childs.
- Parameters
pid (str,int) –
node_name (str) –
- Returns
a pair with process data and level of nesting in tree
- Return type
dict, int