def launch(app_conf_ref, app_conf, args, experiment_cli_args): mach = machine.init_output_dir(args.output_dir) freq_range = frequency_sweep.setup_frequency_bounds(mach, args.min_frequency, args.max_frequency, args.step_frequency, add_turbo_step=True) barrier_hash = geopmpy.hash.crc32_str('MPI_Barrier') default_freq = max(freq_range) targets = launch_configs( app_conf_ref=app_conf_ref, app_conf=app_conf, default_freq=max(freq_range), sweep_freqs=freq_range, barrier_hash=geopmpy.hash.crc32_str('MPI_Barrier')) extra_cli_args = list(experiment_cli_args) extra_cli_args += launch_util.geopm_signal_args( report_signals=report_signals(), trace_signals=trace_signals()) launch_util.launch_all_runs( targets=targets, num_nodes=args.node_count, iterations=args.trial_count, extra_cli_args=extra_cli_args, output_dir=args.output_dir, cool_off_time=args.cool_off_time, enable_traces=args.enable_traces, enable_profile_traces=args.enable_profile_traces)
def launch(app_conf, args, experiment_cli_args): agent_types = args.agent_list.split(',') mach = machine.init_output_dir(args.output_dir) min_power, max_power = setup_power_bounds(mach, args.min_power, args.max_power, args.step_power) targets = launch_configs(app_conf, agent_types, min_power, max_power, args.step_power) extra_cli_args = list(experiment_cli_args) extra_cli_args += launch_util.geopm_signal_args( report_signals=report_signals(), trace_signals=trace_signals()) launch_util.launch_all_runs( targets=targets, num_nodes=args.node_count, iterations=args.trial_count, extra_cli_args=extra_cli_args, output_dir=args.output_dir, cool_off_time=args.cool_off_time, enable_traces=args.enable_traces, enable_profile_traces=args.enable_profile_traces)
def launch(app_conf, args, experiment_cli_args): ''' Run the application over a range of fixed processor frequencies. Currently only supports the frequency map agent ''' mach = machine.init_output_dir(args.output_dir) freq_range = setup_frequency_bounds(mach, args.min_frequency, args.max_frequency, args.step_frequency, args.run_max_turbo) targets = launch_configs(app_conf, freq_range) extra_cli_args = list(experiment_cli_args) extra_cli_args += launch_util.geopm_signal_args( report_signals=report_signals(), trace_signals=trace_signals()) launch_util.launch_all_runs( targets=targets, num_nodes=args.node_count, iterations=args.trial_count, extra_cli_args=extra_cli_args, output_dir=args.output_dir, cool_off_time=args.cool_off_time, enable_traces=args.enable_traces, enable_profile_traces=args.enable_profile_traces)
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY LOG OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ''' Energy savings from power capping experiment using HPCG. ''' import argparse from experiment import machine from experiment.power_sweep import power_sweep from experiment.energy_efficiency import power_balancer_energy from apps.hpcg import hpcg if __name__ == '__main__': parser = argparse.ArgumentParser() power_sweep.setup_run_args(parser) parser.set_defaults(agent_list='power_balancer') args, extra_cli_args = parser.parse_known_args() extra_cli_args.append( "--geopm-record-filter=proxy_epoch,0x00000000ff4029e3,4") mach = machine.init_output_dir(args.output_dir) app_conf = hpcg.HpcgAppConf(mach) power_balancer_energy.launch(app_conf=app_conf, args=args, experiment_cli_args=extra_cli_args)