Exemplo n.º 1
0
def __command_native_script(argv):
    # parse cmdline options
    usage = 'usage: <script> native_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_random_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)
    # run profile
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    test = bench.get_test(input_idx)
    testcase = idiom_testing.NativeTestCase(test, options.mode,
                                            options.threshold)
    testcase.run()
Exemplo n.º 2
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()
Exemplo n.º 3
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()
Exemplo n.º 4
0
Arquivo: main.py Projeto: poeliu/Pinso
def __command_schedule(argv):
    pin = pintool.Pin(config.pin_home())
    scheduler = delta_pintool.Scheduler()
    scheduler.knob_defaults['enable_observer'] = True
    # parse cmdline options
    usage = 'usage: <script> schedule [options] --- program'
    parser = optparse.OptionParser(usage)
    register_profile_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, scheduler))
    testcase = idiom_testing.ActiveTestCase(test, options.mode,
                                            options.threshold, scheduler)
    testcase.run()
    if testcase.is_fatal():
        logging.err('fatal error detected\n')
    else:
        logging.err('threshold reached\n')
Exemplo n.º 5
0
def __command_native_script(argv):
    # parse cmdline options
    usage = 'usage: <script> native_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_random_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)
    # run profile
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    test = bench.get_test(input_idx)
    testcase = idiom_testing.NativeTestCase(test,
                                            options.mode,
                                            options.threshold) 
    testcase.run()
Exemplo n.º 6
0
def main(argv):
    if len(argv) < 1:
        logging.err(command_usage())
    command = argv[0]
    logging.msg('performing command: %s ...\n' % command, 2) 
    if valid_command(command):
        eval('__command_%s(argv[1:])' % command)
    else:
        logging.err(command_usage())
Exemplo n.º 7
0
def main(argv):
    if len(argv) < 1:
        logging.err(command_usage())
    command = argv[0]
    logging.msg('performing command: %s ...\n' % command, 2)
    if valid_command(command):
        eval('__command_%s(argv[1:])' % command)
    else:
        logging.err(command_usage())
Exemplo n.º 8
0
def __command_chess_race_script(argv):
    pin = pintool.Pin(config.pin_home())
    profiler = race_pintool.PctProfiler()
    profiler.knob_prefix = 'race_'
    profiler.knob_defaults['enable_djit'] = True
    profiler.knob_defaults['ignore_lib'] = True
    profiler.knob_defaults['track_racy_inst'] = True
    controller = idiom_pintool.ChessProfiler()
    controller.knob_prefix = 'chess_'
    controller.knob_defaults['enable_chess_scheduler'] = True
    controller.knob_defaults['enable_observer_new'] = True
    controller.knob_defaults['sched_race'] = True
    # parse cmdline options
    usage = 'usage: <script> chess_race_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_race_cmdline_options(parser, 'race_')
    profiler.register_cmdline_options(parser)
    register_chess_cmdline_options(parser, 'chess_')
    controller.register_cmdline_options(parser)
    parser.set_defaults(race_mode='stable')
    parser.set_defaults(race_threshold=3)
    (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)
    controller.set_cmdline_options(options, args)
    # create race testcase
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    race_test = bench.get_test(input_idx)
    race_test.set_prefix(get_prefix(pin, profiler))
    race_testcase = idiom_testing.RaceTestCase(race_test,
                                               options.race_mode,
                                               options.race_threshold,
                                               profiler)
    # create chess testcase
    chess_test = bench.get_test(input_idx)
    chess_test.set_prefix(get_prefix(pin, controller))
    chess_testcase = idiom_testing.ChessTestCase(chess_test,
                                                 options.chess_mode,
                                                 options.chess_threshold,
                                                 controller)
    # run
    testcase = idiom_testing.ChessRaceTestCase(race_testcase,
                                               chess_testcase)
    testcase.run()
Exemplo n.º 9
0
def main(argv):
    if len(argv) < 1:
        logging.err(command_usage())
    suite = argv[0]
    logging.msg('performing regression: %s ...\n' % suite, 2) 
    if valid_suite(suite):
        regression(suite, argv[1:])
    else:
        logging.err(command_usage())
Exemplo n.º 10
0
def __command_chess_race_script(argv):
    pin = pintool.Pin(config.pin_home())
    profiler = race_pintool.PctProfiler()
    profiler.knob_prefix = 'race_'
    profiler.knob_defaults['enable_djit'] = True
    profiler.knob_defaults['ignore_lib'] = True
    profiler.knob_defaults['track_racy_inst'] = True
    controller = idiom_pintool.ChessProfiler()
    controller.knob_prefix = 'chess_'
    controller.knob_defaults['enable_chess_scheduler'] = True
    controller.knob_defaults['enable_observer_new'] = True
    controller.knob_defaults['sched_race'] = True
    # parse cmdline options
    usage = 'usage: <script> chess_race_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_race_cmdline_options(parser, 'race_')
    profiler.register_cmdline_options(parser)
    register_chess_cmdline_options(parser, 'chess_')
    controller.register_cmdline_options(parser)
    parser.set_defaults(race_mode='stable')
    parser.set_defaults(race_threshold=3)
    (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)
    controller.set_cmdline_options(options, args)
    # create race testcase
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    race_test = bench.get_test(input_idx)
    race_test.set_prefix(get_prefix(pin, profiler))
    race_testcase = idiom_testing.RaceTestCase(race_test, options.race_mode,
                                               options.race_threshold,
                                               profiler)
    # create chess testcase
    chess_test = bench.get_test(input_idx)
    chess_test.set_prefix(get_prefix(pin, controller))
    chess_testcase = idiom_testing.ChessTestCase(chess_test,
                                                 options.chess_mode,
                                                 options.chess_threshold,
                                                 controller)
    # run
    testcase = idiom_testing.ChessRaceTestCase(race_testcase, chess_testcase)
    testcase.run()
Exemplo n.º 11
0
def __command_default_script(argv):
    pin = pintool.Pin(config.pin_home())
    profiler = idiom_pintool.PctProfiler()
    profiler.knob_prefix = 'profile_'
    profiler.knob_defaults['enable_observer_new'] = True
    profiler.knob_defaults['enable_predictor_new'] = True
    scheduler = idiom_pintool.Scheduler()
    scheduler.knob_prefix = 'active_'
    # parse cmdline options
    usage = 'usage: <script> default_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_profile_cmdline_options(parser, 'profile_')
    profiler.register_cmdline_options(parser)
    register_active_cmdline_options(parser, 'active_')
    scheduler.register_cmdline_options(parser)
    parser.set_defaults(profile_mode='stable')
    parser.set_defaults(profile_threshold=3)
    parser.set_defaults(active_mode='finish')
    (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)
    scheduler.set_cmdline_options(options, args)
    # create profile testcase
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    profile_test = bench.get_test(input_idx)
    profile_test.set_prefix(get_prefix(pin, profiler))
    profile_testcase = idiom_testing.ProfileTestCase(profile_test,
                                                     options.profile_mode,
                                                     options.profile_threshold,
                                                     profiler)
    # create active testcase
    active_test = bench.get_test(input_idx)
    active_test.set_prefix(get_prefix(pin, scheduler))
    active_testcase = idiom_testing.ActiveTestCase(active_test,
                                                   options.active_mode,
                                                   options.active_threshold,
                                                   scheduler)
    # run idiom testcase
    idiom_testcase = idiom_testing.IdiomTestCase(profile_testcase,
                                                 active_testcase)
    idiom_testcase.run()
Exemplo n.º 12
0
def __command_default_script(argv):
    pin = pintool.Pin(config.pin_home())
    profiler = idiom_pintool.PctProfiler()
    profiler.knob_prefix = 'profile_'
    profiler.knob_defaults['enable_observer_new'] = True
    profiler.knob_defaults['enable_predictor_new'] = True
    scheduler = idiom_pintool.Scheduler()
    scheduler.knob_prefix = 'active_'
    # parse cmdline options
    usage = 'usage: <script> default_script [options] --- <bench name> <input index>\n\n'
    usage += benchmark_usage()
    parser = optparse.OptionParser(usage)
    register_profile_cmdline_options(parser, 'profile_')
    profiler.register_cmdline_options(parser)
    register_active_cmdline_options(parser, 'active_')
    scheduler.register_cmdline_options(parser)
    parser.set_defaults(profile_mode='stable')
    parser.set_defaults(profile_threshold=3)
    parser.set_defaults(active_mode='finish')
    (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)
    scheduler.set_cmdline_options(options, args)
    # create profile testcase
    __import__('maple.benchmark.%s' % bench_name)
    bench = sys.modules['maple.benchmark.%s' % bench_name]
    profile_test = bench.get_test(input_idx)
    profile_test.set_prefix(get_prefix(pin, profiler))
    profile_testcase = idiom_testing.ProfileTestCase(profile_test,
                                                     options.profile_mode,
                                                     options.profile_threshold,
                                                     profiler)
    # create active testcase
    active_test = bench.get_test(input_idx)
    active_test.set_prefix(get_prefix(pin, scheduler))
    active_testcase = idiom_testing.ActiveTestCase(active_test,
                                                   options.active_mode,
                                                   options.active_threshold,
                                                   scheduler)
    # run idiom testcase
    idiom_testcase = idiom_testing.IdiomTestCase(profile_testcase,
                                                 active_testcase)
    idiom_testcase.run()
Exemplo n.º 13
0
def __command_record(argv):
    pin = pintool.Pin(config.pin_home())
    recorder = tracer_pintool.Profiler()
    usage = 'usage: <script> record [options] --- program'
    parser = optparse.OptionParser(usage)
    recorder.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)
    recorder.set_cmdline_options(options, args)
    # run recorder 
    test = testing.InteractiveTest(prog_argv)
    test.set_prefix(get_prefix(pin, recorder))
    testcase = testing.DeathTestCase(test, 'runout', '1')
    testcase.run()
    if testcase.is_fatal():
        logging.err('fatal error detected\n')
    else:
        logging.err('threshold reached\n')
Exemplo n.º 14
0
Arquivo: main.py Projeto: poeliu/Pinso
def __command_schedule(argv):
    pin = pintool.Pin(config.pin_home())
    scheduler = delta_pintool.Scheduler()
    scheduler.knob_defaults['enable_observer'] = True
    # parse cmdline options
    usage = 'usage: <script> schedule [options] --- program'
    parser = optparse.OptionParser(usage)
    register_profile_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, scheduler))
    testcase = idiom_testing.ActiveTestCase(test, options.mode, options.threshold, scheduler)
    testcase.run()
    if testcase.is_fatal():
        logging.err('fatal error detected\n')
    else:
        logging.err('threshold reached\n')