wlauto.instrumentation.energy_model package

Module contents

class wlauto.instrumentation.energy_model.CapPowerState(cap, power)

Bases: tuple

cap

Alias for field number 0

power

Alias for field number 1

class wlauto.instrumentation.energy_model.EnergyModel[source]

Bases: object

add_cap_entry(cluster, perf, clust_pow, core_pow)[source]
add_cluster_idle(cluster, values)[source]
add_core_idle(cluster, values)[source]
class wlauto.instrumentation.energy_model.EnergyModelInstrument(device, **kwargs)[source]

Bases: wlauto.core.instrumentation.Instrument

aliases = AC([])
artifacts = AC([])
before_overall_results_processing(context)[source]
configure_clusters()[source]
core_modules = []
desicription = '\n Generates a power mode for the device based on specified workload.\n\n This instrument will execute the workload specified by the agenda (currently, only ``sysbench`` is\n supported) and will use the resulting performance and power measurments to generate a power mode for\n the device.\n\n This instrument requires certain features to be present in the kernel:\n\n 1. cgroups and cpusets must be enabled.\n 2. cpufreq and userspace governor must be enabled.\n 3. cpuidle must be enabled.\n\n '
disable_thermal_management()[source]
discover_idle_states()[source]
enable_all_cores()[source]
enable_all_idle_states()[source]
fast_start(context)[source]
fast_stop(context)[source]
finalize(*args, **kwargs)
get_cluster_specs(old_specs, cluster, context)[source]
get_core_name(cluster)[source]
get_cpus(cluster)[source]
get_device_idle_states(cluster)[source]
get_frequencies_param(cluster)[source]
initialize(*args, **kwargs)
initialize_job_queue(context)[source]
initialize_result_tracking()[source]
kind = 'instrument'
name = 'energy_model'
on_iteration_start(context)[source]
parameters = AC(["Param({'kind': <type 'list'>, 'mandatory': None, 'name': 'modules', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <class 'wlauto.utils.types.caseless_string'>, 'mandatory': None, 'name': 'device_name', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <class 'wlauto.utils.types.caseless_string'>, 'mandatory': None, 'name': 'big_core', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <class 'wlauto.utils.types.caseless_string'>, 'mandatory': True, 'name': 'performance_metric', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function list_or_caseless_string>, 'mandatory': None, 'name': 'power_metric', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function list_or_caseless_string>, 'mandatory': None, 'name': 'energy_metric', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <type 'float'>, 'mandatory': None, 'name': 'power_scaling_factor', 'constraint': None, 'default': 1.0, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function list_of_ints>, 'mandatory': None, 'name': 'big_frequencies', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function list_of_ints>, 'mandatory': None, 'name': 'little_frequencies', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <type 'str'>, 'mandatory': None, 'name': 'idle_workload', 'constraint': None, 'default': 'idle', 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <type 'dict'>, 'mandatory': None, 'name': 'idle_workload_params', 'constraint': None, 'default': {}, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function integer>, 'mandatory': None, 'name': 'first_cluster_idle_state', 'constraint': None, 'default': -1, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function boolean>, 'mandatory': None, 'name': 'no_hotplug', 'constraint': None, 'default': False, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function integer>, 'mandatory': None, 'name': 'num_of_freqs_to_thermal_adjust', 'constraint': None, 'default': 0, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function opp_table>, 'mandatory': None, 'name': 'big_opps', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function opp_table>, 'mandatory': None, 'name': 'little_opps', 'constraint': None, 'default': None, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function integer>, 'mandatory': None, 'name': 'big_leakage', 'constraint': None, 'default': 120, 'allowed_values': None, 'global_alias': None, 'override': False})", "Param({'kind': <function integer>, 'mandatory': None, 'name': 'little_leakage', 'constraint': None, 'default': 60, 'allowed_values': None, 'global_alias': None, 'override': False})"])
perform_runtime_validation()[source]
reset()[source]
reset_cgroups()[source]
setup(context)[source]
setup_measurement(measured)[source]
slow_update_result(context)[source]
thermal_correction(context)[source]
validate(*args, **kwargs)
class wlauto.instrumentation.energy_model.IdlePowerState(power)

Bases: tuple

power

Alias for field number 0

class wlauto.instrumentation.energy_model.PowerPerformanceAnalysis(data)[source]

Bases: object

wlauto.instrumentation.energy_model.build_energy_model(freq_power_table, cpus_power, idle_power, first_cluster_idle_state)[source]
wlauto.instrumentation.energy_model.fit_polynomial(s, n)[source]
wlauto.instrumentation.energy_model.generate_em_c_file(em, big_core, little_core, em_template_file, outfile)[source]
wlauto.instrumentation.energy_model.generate_report(freq_power_table, measured_cpus_table, cpus_table, idle_power_table, report_template_file, device_name, em_text, outfile)[source]
wlauto.instrumentation.energy_model.get_cap_power_plot(data_single_core)[source]
wlauto.instrumentation.energy_model.get_cpus_power_table(data, index, opps, leak_factors)[source]
wlauto.instrumentation.energy_model.get_figure_data(fig, fmt='png')[source]
wlauto.instrumentation.energy_model.get_idle_power_plot(df)[source]
wlauto.instrumentation.energy_model.get_normalized_single_core_data(data)[source]
wlauto.instrumentation.energy_model.opp_table(d)[source]
wlauto.instrumentation.energy_model.plot_cpus_table(projected, ax, cluster)[source]
wlauto.instrumentation.energy_model.wa_result_to_power_perf_table(df, performance_metric, index)[source]