diff options
| author | Tor Aamodt <[email protected]> | 2010-10-01 08:55:28 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-10-01 08:55:28 -0800 |
| commit | 11b308e7363e937966b035b4891db32b4eece3bf (patch) | |
| tree | 50ca4c9ad6f163ac4acb2bf505e64dfebed66947 /benchmarks/CUDA/MUM/mummergpu_exp.py | |
| parent | bb820c116764d7a1b8e071137d32b74e7f34dd2f (diff) | |
integrating recent changes from fermi-test into fermi
(i'll use "fermi" for more disruptive changes to the pipeline model such
as updating the MSHRs and getting rid of the warp tracker, ripping out DWF, etc...)
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7805]
Diffstat (limited to 'benchmarks/CUDA/MUM/mummergpu_exp.py')
| -rw-r--r-- | benchmarks/CUDA/MUM/mummergpu_exp.py | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/benchmarks/CUDA/MUM/mummergpu_exp.py b/benchmarks/CUDA/MUM/mummergpu_exp.py deleted file mode 100644 index 6461a65..0000000 --- a/benchmarks/CUDA/MUM/mummergpu_exp.py +++ /dev/null @@ -1,202 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -""" -untitled.py - -Created by Cole Trapnell on 2007-05-01. -Copyright (c) 2007 __MyCompanyName__. All rights reserved. -""" - -import sys -import getopt -import os -import time -import timeit -import csv - -help_message = ''' -This script runs the full cmatch experimental suite. -''' - - -class Usage(Exception): - def __init__(self, msg): - self.msg = msg - -#refs = ["NC_005810", "2","NC_003997"] -#qry_lengths = [25, 50, 200, 800] - -refs = ["NC_003997"] -qry_lengths = [25] - -def get_stats(filename): - stats = {} - statfile = open(filename) - stats = dict([(key, float(value)) for (key, value) in csv.reader(statfile)]) - return stats - -def cmatch_query_string(ref, length): - return ref + "_q" + str(length) + "bp.fna" - -def mummer_query_string(ref, length): - return ref + "_q" + str(length) + "bp.fna" - -def runCmatch(ref, query, matchlen, onCPU, outfile): - - if onCPU: - cpuFlag = "-C" - statfile = "%s-%ld.cpustats" % ( query, matchlen ) - else: - cpuFlag = "" - statfile = "%s-%ld.gpustats" % ( query, matchlen ) - - - match_flags = " -l %d " % (matchlen) - - cmd = "mummergpu %s -s %s -M -b %s %s %s > %s" % (cpuFlag, - statfile, - match_flags, - ref, - query, - outfile) - print >> sys.stderr, cmd - t = timeit.Timer("os.system('" + cmd + "')", "import os") - app_times = t.repeat(1, 1) - app_time_avg = sum(app_times)/len(app_times) - stats = get_stats(statfile) - return (app_time_avg, stats) - -def runMUMmer(ref, query, matchlen, outfile): - query_file = query - #for i in range(0,5): - # query_files += query + " " - - cmd = "mummer -maxmatch -b -l %d %s %s 2>/dev/null > %s" % (matchlen, - ref, - query_file, - outfile) - - print >> sys.stderr , cmd - t = timeit.Timer("os.system('" + cmd + "')", "import os") - app_times = t.repeat(1, 1) - app_time_avg = sum(app_times)/len(app_times) - - return app_time_avg - -def get_gpu_time(stats): - return stats["Kernel"] + stats["Copy queries to GPU"] + stats["Copy output from GPU"] + stats["Copy suffix tree to GPU"] - -def execute_synth_trial(fout, directory, ref, querylen, matchlen): - #cmatch_query_file = directory + "/" + ref + query - - query_file = "%s/%s_q%dbp.fna" % (directory, ref, querylen) - ref_file = "%s/%s.fna" % (directory, ref) - cpu_outfile = query_file + "-cpu.out" - gpu_outfile = query_file + "-gpu.out" - mummer_outfile = query_file + "-mummer.out" - - (gpu_app_time_avg, gpu_stats) = runCmatch(ref_file, - query_file, - matchlen, - False, - gpu_outfile) - - (cpu_app_time_avg, cpu_stats) = runCmatch(ref_file, - query_file, - matchlen, - True, - cpu_outfile) - - mummer_app_time_avg = runMUMmer(ref_file, query_file, matchlen == 0 and querylen or matchlen, mummer_outfile) - - - kernel_speedup = cpu_stats["Kernel"] / get_gpu_time(gpu_stats) - - print >>fout, querylen, matchlen, cpu_app_time_avg,gpu_app_time_avg, mummer_app_time_avg, cpu_app_time_avg / gpu_app_time_avg, mummer_app_time_avg / gpu_app_time_avg, kernel_speedup - #print cmd - - - -def execute_real_trial(fout, directory, ref, query, matchlen): - - ref_file = "%s/%s.fna" % (directory, ref) - query_file = "%s/%s.fna" % (directory, query) - cpu_outfile = query_file + "-cpu.out" - gpu_outfile = query_file + "-gpu.out" - mummer_outfile = query_file + "-mummer.out" - - (gpu_app_time_avg, gpu_stats) = runCmatch(ref_file, - query_file, - matchlen, - False, - gpu_outfile) - - (cpu_app_time_avg, cpu_stats) = runCmatch(ref_file, - query_file, - matchlen, - True, - cpu_outfile) - - mummer_app_time_avg = runMUMmer(ref_file, query_file, matchlen, mummer_outfile) - - - - kernel_speedup = cpu_stats["Kernel"] / get_gpu_time(gpu_stats) - - print >> fout, "-", matchlen,cpu_app_time_avg,gpu_app_time_avg, mummer_app_time_avg, cpu_app_time_avg / gpu_app_time_avg, mummer_app_time_avg / gpu_app_time_avg, kernel_speedup - - -def run_different_query_lengths(): - f = open("anthrax/speedup.out", "w") - print >> f, "QUERY,MATCH_LENGTH,CPU,GPU,MUMMER,CPU_SPEEDUP,MUMMER_SPEEDUP,KERNEL_SPEEDUP" - execute_synth_trial(f,"anthrax", "NC_003997", 25, 25) - execute_synth_trial(f,"anthrax", "NC_003997", 50, 50) - execute_synth_trial(f,"anthrax", "NC_003997", 100,100) - execute_synth_trial(f,"anthrax", "NC_003997", 200,200) - execute_synth_trial(f,"anthrax", "NC_003997", 400,400) - execute_synth_trial(f,"anthrax", "NC_003997", 800,800) - -def run_ssuis_solexa(): - f = open("s_suis/speedup.out", "w") - print >> f, "QUERY,MATCH_LENGTH,CPU,GPU,MUMMER,CPU_SPEEDUP,MUMMER_SPEEDUP,KERNEL_SPEEDUP" - execute_real_trial(f,"s_suis", "cleanref", "cleanreads", 20) - -def run_cereus_454(): - f = open("cereus/speedup.out", "w") - print >> f, "QUERY,MATCH_LENGTH,CPU,GPU,MUMMER,CPU_SPEEDUP,MUMMER_SPEEDUP,KERNEL_SPEEDUP" - execute_real_trial(f,"cereus", "cleanref", "cleanreads", 20) - -def run_briggsae_sanger(): - f = open("cbriggsae/speedup.out", "w") - print >> f, "QUERY,MATCH_LENGTH,CPU,GPU,MUMMER,CPU_SPEEDUP,MUMMER_SPEEDUP,KERNEL_SPEEDUP" - execute_real_trial(f,"cbriggsae", "cleanref", "cleanreads", 100) - -def main(argv=None): - if argv is None: - argv = sys.argv - try: - try: - opts, args = getopt.getopt(argv[1:], "hv", ["help"]) - except getopt.error, msg: - raise Usage(msg) - - for option, value in opts: - if option == "-v": - verbose = True - if option in ("-h", "--help"): - raise Usage(help_message) - - run_ssuis_solexa() - run_cereus_454() - run_briggsae_sanger() - - run_different_query_lengths() - - except Usage, err: - print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg) - print >> sys.stderr, "\t for help use --help" - return 2 - - -if __name__ == "__main__": - sys.exit(main()) |
