def most_recent_experiment(problem_name):
    q = "SELECT experiment_id FROM experiments \
       INNER JOIN problems ON experiments.problem_id = problems.problem_id \
       WHERE problems.problem_name = '" + problem_name + "' \
       ORDER BY experiments.datetime DESC LIMIT 1"

    return (detup(db.select_values(q)))[0]
Exemple #2
0
def find_mc_context_ids2(experiment_id, strat, mls):
    q = "SELECT DISTINCT(context_id) FROM contexts \
       WHERE experiment_id = " + str(experiment_id) + " \
       AND compiler = 'pmlc' \
       AND max_leaf_size = " + str(mls) + " \
       AND input LIKE '%" + strat[0] + "%'"
    return (get.detup(db.select_values(q)))
Exemple #3
0
def stat_of_par_context_id(context_id, n_procs):
    q = "SELECT AVG(runs.time_sec), STDDEV(runs.time_sec) \
         FROM runs \
         INNER JOIN contexts ON contexts.context_id = runs.context_id \
         WHERE contexts.context_id = " + str(context_id) + "\
         AND   runs.n_procs = " + str(n_procs)
    return (db.select_values(q)[0])
Exemple #4
0
def branch_of_context_id(context_id):
    q = "SELECT compiler_src_url \
       FROM contexts where context_id = " + str(context_id)
    url = db.select_values(q)[0][0]
    if url == branches.SWP.url():
        return (branches.SWP)
    else:
        return (branches.Trunk)
def find_context_ids(experiment_id, bench_url, bench_input, compiler_src_url,
                     seq_compilation):
    q = "SELECT DISTINCT(context_id) FROM contexts \
       WHERE experiment_id = " + str(experiment_id) + " \
       AND bench_url    = '" + bench_url + "'" + " \
       AND input        = '" + str(bench_input) + "'" + " \
       AND compiler_src_url = '" + compiler_src_url + "' \
       AND seq_compilation = " + seq_compilation
    return (db.select_values(q))
def parallel_times(context_id):
    q = "SELECT n_procs, time_sec \
       FROM runs \
       WHERE n_procs>0 \
       AND context_id = '" + str(context_id) + "'"
    v = db.select_values(q)
    if (len(v) == 0):
        print("no parallel times found for context id " + context_id)
        print("halting")
        sys.exit(1)
    return v
def most_recent_smlnj_bench(experiment_id):
    q = "SELECT context_id \
       FROM contexts \
       INNER JOIN experiments ON contexts.experiment_id = experiments.experiment_id \
       WHERE experiments.experiment_id = " + str(experiment_id) + " \
       AND contexts.compiler = 'SMLNJ' \
       ORDER BY experiments.datetime DESC LIMIT 1"

    res = detup(db.select_values(q))
    if (len(res) == 0):
        return False
    elif (len(res) == 1):
        return res[0]
    else:
        raise Exception("expected 0 or 1 values; got more!")
def gc_stat(column_name, context_id, n_procs):
    q = "SELECT AVG(" + column_name + "), STDDEV(" + column_name + ") \
       FROM gc INNER JOIN runs ON runs.run_id = gc.run_id \
       WHERE runs.context_id = " + str(
        context_id) + " AND runs.n_procs = " + str(n_procs)
    v = db.select_values(q)
    if (len(v) == 0):
        print("no gc stats found for " + str(context_id) + " on nprocs= " +
              str(n_procs))
        print("halting")
        sys.exit(1)
    elif (len(v) == 1):
        return v[0]
    print("get_gc_stat: bogus record")
    sys.exit(1)
def most_recent_pml_bench(experiment_id, branch, seq):
    seqStr = strictIf(seq, 'true', 'false')
    q = "SELECT context_id \
       FROM contexts \
       INNER JOIN experiments ON contexts.experiment_id = experiments.experiment_id \
       WHERE experiments.experiment_id = " + str(experiment_id) + " \
       AND contexts.compiler_src_url = '" + branch.url() + "' \
       AND contexts.seq_compilation = " + seqStr + " \
       ORDER BY experiments.datetime DESC LIMIT 1"

    res = detup(db.select_values(q))
    if (len(res) == 0):
        return False
    elif (len(res) == 1):
        return res[0]
    else:
        raise Exception("expected 0 or 1 values, got more!")
def most_recent_smlnj():
    retval = []
    bs = distinct_bench_urls()
    for b in bs:
        q = "SELECT context_id \
         FROM contexts \
         WHERE bench_url='" + b + "' \
         AND compiler='SMLNJ' \
         ORDER BY datetime DESC \
         LIMIT 1;"

        v = detup(db.select_values(q))
        if len(v) == 0:
            pass  # that's a python noop
        elif len(v) == 1:
            retval.append([v[0], b, 'mlton'])
        else:
            raise Exception("too many")
    return (retval)
def most_recent(bench, branch, seq_elision):
    seq = "seq_compilation"
    if (not (seq_elision)):
        seq = "NOT(" + seq + ")"
    q = "SELECT context_id \
       FROM contexts \
       WHERE bench_url='" + bench + "' \
       AND compiler_src_url='" + branch.url() + "' \
       AND " + seq + " \
       AND input='' \
       ORDER BY datetime DESC \
       LIMIT 1;"

    v = detup(db.select_values(q))
    if len(v) == 0:
        return False
    elif len(v) == 1:
        return v[0]
    else:
        raise Exception("too many")
Exemple #12
0
def stat_of_context_id(context_id):
    q = "SELECT AVG(runs.time_sec), STDDEV(runs.time_sec) \
         FROM runs \
         INNER JOIN contexts ON contexts.context_id = runs.context_id \
         WHERE contexts.context_id = " + str(context_id)
    return (db.select_values(q)[0])
def different_bench_urls(experiment_id):
    q = "SELECT DISTINCT(bench_url) FROM contexts \
       INNER JOIN experiments ON experiments.experiment_id = contexts.experiment_id \
       WHERE experiments.experiment_id = " + str(experiment_id)
    return (db.select_values(q))
def is_context_manticore(context_id):
    q = "SELECT compiler FROM contexts WHERE context_id = " + str(context_id)
    return (db.select_values(q)[0][0] == 'pmlc')
def is_context_mlton(context_id):
    q = "SELECT compiler FROM contexts WHERE context_id = " + str(context_id)
    return (db.select_values(q)[0][0] == 'mlton')
def is_context_sequential(context_id):
    q = "SELECT seq_compilation FROM contexts WHERE context_id = " + str(
        context_id)
    return (db.select_values(q)[0][0] == 't')
def is_context_parallel(context_id):
    q = "SELECT seq_compilation FROM contexts WHERE context_id = " + str(
        context_id)
    return (db.select_values(q)[0][0] == 'f')
def baseline_times(context_id):
    q = "SELECT time_sec \
       FROM runs \
       WHERE n_procs=0 \
       AND context_id='" + str(context_id) + "'"
    return (db.select_values(q))
def problem_name_of_experiment(experiment_id):
    q = "SELECT problem_name FROM problems \
       INNER JOIN experiments ON experiments.problem_id = problems.problem_id \
       WHERE experiments.experiment_id = " + str(experiment_id)
    return (db.select_values(q)[0][0])
def distinct_n_procs(context_id):
    q = "SELECT DISTINCT(n_procs) \
       FROM runs \
       WHERE context_id = " + str(context_id)
    return (map(int, detup(db.select_values(q))))
def different_bench_inputs(experiment_id, bench_url):
    q = "SELECT DISTINCT(input) FROM contexts \
       INNER JOIN experiments ON experiments.experiment_id = contexts.experiment_id \
       WHERE experiments.experiment_id = " + str(experiment_id) + " \
       AND bench_url = '" + bench_url + "'"
    return (db.select_values(q))
Exemple #22
0
def max_leaf_size_of_context_id(context_id):
    q = "SELECT max_leaf_size FROM contexts \
       WHERE context_id = " + str(context_id)
    return (db.select_values(q))[0][0]
Exemple #23
0
def find_mlton_context_ids(experiment_id, strat):
    q = "SELECT DISTINCT(context_id) FROM contexts \
       WHERE experiment_id = " + str(experiment_id) + " \
       AND compiler = 'mlton' \
       AND input LIKE '%" + strat[0] + "%'"
    return (get.detup(db.select_values(q)))
def distinct_bench_urls():
    q = "SELECT DISTINCT(bench_url) \
       FROM contexts \
       WHERE bench_url LIKE '%benchmarks/prog%'"

    return (detup(db.select_values(q)))
Exemple #25
0
def input_of_context_id(context_id):
    q = "SELECT input FROM contexts \
       WHERE context_id = " + str(context_id)
    return (db.select_values(q))[0][0]
def find_mc_context_ids3(experiment_id):
    q = "SELECT DISTINCT(context_id) FROM contexts \
       WHERE experiment_id = " + str(experiment_id) + " \
       AND compiler = 'pmlc'"

    return (get.detup(db.select_values(q)))