Beispiel #1
0
def runApproxHeuristic(dataset, seeds_fname, tau_scale, cores, init_samples = -1, iter_samples = -1):
    res_fname = "res" + str(randint(1, 1000))
    perf_fname = "perf" + str(randint(1, 1000))
    init_tau = -1
    num_cycles_approx = 0
    
    subprocess.Popen("perf stat -x, -o %s python load_link_server.py -cp %s"%\
                     (perf_fname, dataset), shell = True, stdout = subprocess.PIPE).stdout.read()
        
    nCycles_link_server = getNumCycles(perf_fname)
    removeFile(perf_fname)
    
    if init_samples > 0:
        subprocess.Popen("perf stat -x, -o %s python seq_estimation.py -dataset %s -seeds_file %s -results_file %s -output_mode 1 -nSamples %d -cores %d"%\
                         (perf_fname, dataset, seeds_fname, res_fname, init_samples, cores),\
                         shell=True,stdout=subprocess.PIPE).stdout.read()
    
        init_tau = float(open(res_fname, 'r').readline().strip()) / (1 - tau_scale)
        print "Initial tau value set to: ", init_tau
    
        num_cycles_approx = getNumCycles(perf_fname) - nCycles_link_server
        removeFile(perf_fname)
        removeFile(res_fname)
    subprocess.Popen("perf stat -x, -o %s python ic_bfs_eval.py -tau_scale %.3f -dataset %s -res_fname %s -seeds %s -output_mode 2 -cores %d -init_tau %.3f -iter_samples %d"%\
                     (perf_fname, tau_scale, dataset, res_fname, seeds_fname, cores, init_tau, iter_samples), \
                     shell = True, stdout = subprocess.PIPE).stdout.read()
    estimate_approx = float(open(res_fname, 'r').readline().strip())
    print "Estimated value: ", estimate_approx
    num_cycles_approx += getNumCycles(perf_fname) - nCycles_link_server

    removeFile(res_fname)
    removeFile(perf_fname)

    return (estimate_approx, num_cycles_approx)
Beispiel #2
0
def runApproxHeuristic(dataset,
                       seeds_fname,
                       tau_scale,
                       cores,
                       init_samples=-1,
                       iter_samples=-1):
    res_fname = "res" + str(randint(1, 1000))
    perf_fname = "perf" + str(randint(1, 1000))
    init_tau = -1
    num_cycles_approx = 0

    subprocess.Popen("perf stat -x, -o %s python load_link_server.py -cp %s"%\
                     (perf_fname, dataset), shell = True, stdout = subprocess.PIPE).stdout.read()

    nCycles_link_server = getNumCycles(perf_fname)
    removeFile(perf_fname)

    if init_samples > 0:
        subprocess.Popen("perf stat -x, -o %s python seq_estimation.py -dataset %s -seeds_file %s -results_file %s -output_mode 1 -nSamples %d -cores %d"%\
                         (perf_fname, dataset, seeds_fname, res_fname, init_samples, cores),\
                         shell=True,stdout=subprocess.PIPE).stdout.read()

        init_tau = float(open(res_fname,
                              'r').readline().strip()) / (1 - tau_scale)
        print "Initial tau value set to: ", init_tau

        num_cycles_approx = getNumCycles(perf_fname) - nCycles_link_server
        removeFile(perf_fname)
        removeFile(res_fname)
    subprocess.Popen("perf stat -x, -o %s python ic_bfs_eval.py -tau_scale %.3f -dataset %s -res_fname %s -seeds %s -output_mode 2 -cores %d -init_tau %.3f -iter_samples %d"%\
                     (perf_fname, tau_scale, dataset, res_fname, seeds_fname, cores, init_tau, iter_samples), \
                     shell = True, stdout = subprocess.PIPE).stdout.read()
    estimate_approx = float(open(res_fname, 'r').readline().strip())
    print "Estimated value: ", estimate_approx
    num_cycles_approx += getNumCycles(perf_fname) - nCycles_link_server

    removeFile(res_fname)
    removeFile(perf_fname)

    return (estimate_approx, num_cycles_approx)
Beispiel #3
0
def runVanilla(dataset,
               seeds,
               nSamples=0,
               nCores=-1,
               min_samples=-1,
               min_relative_std_error=-1):
    perf_fname = "perf" + str(randint(1, 1000))
    res_fname = "res" + str(randint(1, 1000))

    subprocess.Popen("perf stat -x, -o %s python load_link_server.py -cp %s"%\
                              (perf_fname, dataset), shell = True, stdout = subprocess.PIPE).stdout.read()

    nCycles_link_server = getNumCycles(perf_fname)
    removeFile(perf_fname)
    print "running vanilla with max_samples == %d, min_samples == %d, and min_relative_std_error = %.8f" % (
        nSamples, min_samples, min_relative_std_error)
    subprocess.Popen("perf stat -x, -o %s python seq_estimation.py -dataset %s -seeds_file %s -results_file %s -output_mode 1 -nSamples %d -cores %d -min_samples %d -min_relative_standard_error %.8f"%\
                             (perf_fname, dataset, seeds, res_fname, nSamples, nCores, min_samples, min_relative_std_error),\
                             shell=True,stdout=subprocess.PIPE).stdout.read()

    num_cycles_seq = getNumCycles(perf_fname)
    print "dataset: ", dataset
    print "res_fname: ", res_fname
    print "dataset: ", dataset
    print "seeds file: ", seeds
    estimate_seq_capped = float(open(res_fname, 'r').readline().strip())
    removeFile(perf_fname)
    removeFile(res_fname)
    return estimate_seq_capped, num_cycles_seq
Beispiel #4
0
def runVanilla(dataset, seeds, nSamples = 0, nCores = -1, min_samples = -1, min_relative_std_error = -1):
    perf_fname = "perf" + str(randint(1,1000))
    res_fname = "res" + str(randint(1,1000))

    subprocess.Popen("perf stat -x, -o %s python load_link_server.py -cp %s"%\
                              (perf_fname, dataset), shell = True, stdout = subprocess.PIPE).stdout.read()
    
    nCycles_link_server = getNumCycles(perf_fname)
    removeFile(perf_fname)
    print "running vanilla with max_samples == %d, min_samples == %d, and min_relative_std_error = %.8f"%(nSamples, min_samples, min_relative_std_error)
    subprocess.Popen("perf stat -x, -o %s python seq_estimation.py -dataset %s -seeds_file %s -results_file %s -output_mode 1 -nSamples %d -cores %d -min_samples %d -min_relative_standard_error %.8f"%\
                             (perf_fname, dataset, seeds, res_fname, nSamples, nCores, min_samples, min_relative_std_error),\
                             shell=True,stdout=subprocess.PIPE).stdout.read()

    num_cycles_seq = getNumCycles(perf_fname)
    print "dataset: ", dataset
    print "res_fname: ", res_fname
    print "dataset: ", dataset
    print "seeds file: ", seeds
    estimate_seq_capped = float(open(res_fname, 'r').readline().strip())
    removeFile(perf_fname)
    removeFile(res_fname)
    return estimate_seq_capped, num_cycles_seq
Beispiel #5
0
        f_output = open(output_file,'a')
        f_output.write(text+'\n')
        f_output.close()

if __name__ == "__main__":
    parameters = parser.parse_args()
    dataset, seeds_file, results_file, output_mode, nSamples = parameters.dataset, parameters.seeds_file, parameters.results_file,\
      parameters.output_mode, parameters.nSamples

    L = LinkServerCP(dataset)
    f = open(seeds_file, 'r')

    assert (nSamples <= 0 or parameters.min_relative_standard_error <= 0)
    seeds_list = cp.load(f)
    f.close()
    removeFile(parameters.reached_nodes_file)
    if output_mode in [1,2]:
        f = open(results_file, 'w')
    for i, seed_set in enumerate(seeds_list):
        if output_mode in [0,2]:
            print "Sample ", i
        if parameters.get_n_reached == 1:
            try:
                avg, total_samples,l_n_reached = sequential_estimation(L, seed_set, max_samples_cap=nSamples, \
                                                                       nCores=parameters.cores,bReturnValues = True,\
                                                                       min_samples = parameters.min_samples, \
                                                                       min_relative_standard_error = parameters.min_relative_standard_error)
            except:
                r = open('test.txt','w')
                r.write('cannot run bfs\n')
                r.close()
Beispiel #6
0
        f_output.write(text + '\n')
        f_output.close()


if __name__ == "__main__":
    parameters = parser.parse_args()
    dataset, seeds_file, results_file, output_mode, nSamples = parameters.dataset, parameters.seeds_file, parameters.results_file,\
      parameters.output_mode, parameters.nSamples

    L = LinkServerCP(dataset)
    f = open(seeds_file, 'r')

    assert (nSamples <= 0 or parameters.min_relative_standard_error <= 0)
    seeds_list = cp.load(f)
    f.close()
    removeFile(parameters.reached_nodes_file)
    if output_mode in [1, 2]:
        f = open(results_file, 'w')
    for i, seed_set in enumerate(seeds_list):
        if output_mode in [0, 2]:
            print "Sample ", i
        if parameters.get_n_reached == 1:
            try:
                avg, total_samples,l_n_reached = sequential_estimation(L, seed_set, max_samples_cap=nSamples, \
                                                                       nCores=parameters.cores,bReturnValues = True,\
                                                                       min_samples = parameters.min_samples, \
                                                                       min_relative_standard_error = parameters.min_relative_standard_error)
            except:
                r = open('test.txt', 'w')
                r.write('cannot run bfs\n')
                r.close()