Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)