示例#1
0
def __command_rand_delay_script(argv):
    pin = pintool.Pin(config.pin_home())
    profiler = idiom_pintool.RandSchedProfiler()
    profiler.knob_defaults['delay'] = True
    # parse cmdline options
    usage = 'usage: <script> rand_delay_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_random_cmdline_options(parser)
    profiler.register_cmdline_options(parser)
    (opt_argv, prog_argv) = separate_opt_prog(argv)
    if len(prog_argv) == 1:
        bench_name = prog_argv[0]
        input_idx = 'default'
    elif len(prog_argv) == 2:
        bench_name = prog_argv[0]
        input_idx = prog_argv[1]
    else:
        parser.print_help()
        sys.exit(0)
    if not valid_benchmark(bench_name):
        logging.err('invalid benchmark name\n')
    (options, args) = parser.parse_args(opt_argv)
    profiler.set_cmdline_options(options, args)
    # run profile
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    test = bench.get_test(input_idx)
    test.set_prefix(get_prefix(pin, profiler))
    testcase = idiom_testing.RandomTestCase(test, options.mode,
                                            options.threshold, profiler)
    testcase.run()
示例#2
0
def __command_pct_large(argv):
    pin = pintool.Pin(config.pin_home())
    profiler = idiom_pintool.PctProfiler()
    # parse cmdline options
    usage = 'usage: <script> pct_large [options] --- program'
    parser = optparse.OptionParser(usage)
    register_random_cmdline_options(parser)
    profiler.register_cmdline_options(parser)
    (opt_argv, prog_argv) = separate_opt_prog(argv)
    if len(prog_argv) == 0:
        parser.print_help()
        sys.exit(0)
    (options, args) = parser.parse_args(opt_argv)
    profiler.set_cmdline_options(options, args)
    # run profile
    test = testing.InteractiveTest(prog_argv)
    test.set_prefix(get_prefix(pin, profiler))
    testcase = idiom_testing.RandomTestCase(test, options.mode,
                                            options.threshold, profiler)
    testcase.run()