experiment_impact_tracker.cpu package

Submodules

experiment_impact_tracker.cpu.common module

experiment_impact_tracker.cpu.common.assert_cpus_by_attributes(attributes_set)

Assert that you’re running on CPUs with a certain set of attributes.

This helps when running jobs in a cluster setting with heterogeneous CPUs to filter out sets of CPUs that you’d rather avoid. Example attributes:

{

“brand”: “Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz”, “hz_advertised”: “2.6000 GHz”

}

Parameters

attributes_set (dict) – set of attribute key pairs

Raises

CPUAttributeAssertionError on encountered asserted attribute mismatch

experiment_impact_tracker.cpu.common.get_cpu_count_adjusted_load_avg(*args, **kwargs)
experiment_impact_tracker.cpu.common.get_cpu_freq(*args, **kwargs)

Returns all cpu freq of all cpu’s available

experiment_impact_tracker.cpu.common.get_hz_actual(*args, **kwargs)

Gets the current effective Hz of the CPU

Returns

Hz

Return type

str

experiment_impact_tracker.cpu.common.get_my_cpu_info()

Gather current cpu hardware info for this machine.

Returns

info about cpu

Return type

dict

experiment_impact_tracker.cpu.exceptions module

exception experiment_impact_tracker.cpu.exceptions.CPUAttributeAssertionError

Bases: Exception

An exception that occurs when try to assert a certain CPU attribute and a different one is encountered.

experiment_impact_tracker.cpu.intel module

experiment_impact_tracker.cpu.intel.get_and_cache_cpu_max_tdp_from_intel()

Goes to Intel’s website and pulls information about TDP.

experiment_impact_tracker.cpu.intel.get_rapl_power(pid_list, logger=None, **kwargs)

Gather’s CPU information from RAPL.

Parameters
  • pid_list ([int]) – List of process ID’s to attribute power to.

  • logger (optional) – Logger to use when logging information. Defaults to None.

Raises
  • NotImplementedError – If an unexpected top-level domain is encountered in RAPL information.

  • ValueError – If no memory is used by the processes. This seems highly unlikely if not impossible and is probably a bug.

  • ValueError – If RAPL power estimates are coming back 0. This is unlikely if not impossible so is probably an error.

Returns

Information about CPU

Return type

dict

experiment_impact_tracker.cpu.rapl module

class experiment_impact_tracker.cpu.rapl.RAPLDifference

Bases: experiment_impact_tracker.cpu.rapl.RAPLSample

average_power(package, domain=None)
class experiment_impact_tracker.cpu.rapl.RAPLDomain

Bases: object

classmethod construct(id, path)
is_subdomain()
parent_id()
class experiment_impact_tracker.cpu.rapl.RAPLMonitor

Bases: object

classmethod sample()
class experiment_impact_tracker.cpu.rapl.RAPLSample

Bases: object

energy(package, domain=None, unit=1)
classmethod take_sample()

Module contents