Ejemplo n.º 1
0
def build_submit_phase0_cdf_multi_scheduler(workload_name, scheduler_inputs,
                                            output_filename):
    scheduler_dist = []
    for scheduler, log_filename in scheduler_inputs:
        scheduler_dist.append((scheduler, analyze_distn(log_filename)))

    plot_cdf_multi_scheduler(
        scheduler_dist,
        'Scheduling Delay [seconds from submit to unblocked execution]',
        'Fraction of Tasks',
        'Scheduling Delay - {} - 4 nodes'.format(workload_name),
        output_filename)
Ejemplo n.º 2
0
def plot_analysis(log_filename, output_filename):
    stats = analyze_distn(log_filename)
    ts_range = (0, stats['job_completion_time'])
    with PdfPages(output_filename) as pdf:
        plot_cdf(
            stats['submit_to_phase0_time'],
            'Scheduling Delay [seconds from submit to unblocked execution]',
            'Fraction of Tasks', pdf)
        plot_cdf(stats['task_time'], 'Task Duration [seconds]',
                 'Fraction of Tasks', pdf)
        plot_timeseries(stats['runnable_tasks_timeseries'], ts_range,
                        'Runnable Tasks', pdf)
        plot_timeseries(stats['workers_active_timeseries'], ts_range,
                        'Workers Active', pdf)
        plot_timeseries(stats['workers_blocked_timeseries'], ts_range,
                        'Workers Blocked', pdf)
        plot_timeseries(stats['object_transfers_active_timeseries'], ts_range,
                        'Object Transfers Active', pdf)
        plot_worker_activity(stats['worker_activity'], pdf)
Ejemplo n.º 3
0
def worker_activity(args):
    experiment_name = args[1]
    filters = []
    filter_terms = set()
    for arg in args[2:]:
        m = re.search('^(.*)=(.*)$', arg)
        filter_terms.add(m.group(1))
        filters.append((m.group(1), m.group(2)))
    simulator_runs = get_simulator_runs(experiment_name, filters)
    lim_num_runs = 10
    if len(simulator_runs) > lim_num_runs:
        print "have more than {} runs".format(lim_num_runs)

    print "plotting {} runs".format(len(simulator_runs))

    title_keys = ['scheduler', 'object_transfer_time_cost', 'num_nodes', 'tracefile']
    with PdfPages('output') as pdf:
        for r in simulator_runs:
            log_filename = 'sweep/{}/{}'.format(r['experiment_name'], r['log_fn'])
            stats = analyze_distn(log_filename)
            title = " ".join(map(lambda x: r[x], filter(lambda x: x not in filter_terms, title_keys)))
            title = "\n".join(wrap(title, 40))
            plot_worker_activity(stats['worker_activity'], pdf, r['tracefile'])