qcg.pilotjob.utils.proc_traces module¶
-
class
qcg.pilotjob.utils.proc_traces.
ProcTraces
(paths, ignore_errors=True)¶ Bases:
object
Analyze 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