diff options
Diffstat (limited to 'gnuradio-examples/python/mp-sched/run_synthetic.py')
-rwxr-xr-x | gnuradio-examples/python/mp-sched/run_synthetic.py | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/gnuradio-examples/python/mp-sched/run_synthetic.py b/gnuradio-examples/python/mp-sched/run_synthetic.py deleted file mode 100755 index 565e6c5c7..000000000 --- a/gnuradio-examples/python/mp-sched/run_synthetic.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2008 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# - -""" -Run synthetic.py for npipes in [1,16], nstages in [1,16] -""" - -import re -import sys -import os -import tempfile -from optparse import OptionParser - - -def write_shell_script(f, data_filename, description, ncores, gflops, max_pipes_and_stages): - """ - f is the file to write the script to - data_filename is the where the data ends up - description describes the machine - ncores is the number of cores (used to size the workload) - gflops is the estimated GFLOPS per core (used to size the workload) - """ - - f.write("#!/bin/sh\n") - f.write("(\n") - if description: - f.write("echo '#D %s'\n" % (description,)) - - for npipes in range(1, max_pipes_and_stages + 1): - for nstages in range(1, max_pipes_and_stages + 1): - # We'd like each run of synthetic to take ~10 seconds - desired_time_per_run = 10 - est_gflops_avail = min(nstages * npipes, ncores) * gflops - nsamples = (est_gflops_avail * desired_time_per_run)/(512.0 * nstages * npipes) - nsamples = int(nsamples * 1e9) - - cmd = "./synthetic.py -m -s %d -p %d -N %d\n" % (nstages, npipes, nsamples) - f.write(cmd) - f.write('if test $? -ge 128; then exit 128; fi\n') - - f.write(") 2>&1 | grep --line-buffered -v '^>>>' | tee %s\n" % (data_filename,)) - f.flush() - - - -def main(): - description = """%prog gathers multiprocessor scaling data using the ./synthetic.py benchmark. -All combinations of npipes and nstages between 1 and --max-pipes-and-stages are tried. -The -n and -f options provides hints used to size the workload. We'd like each run -of synthetic to take about 10 seconds. For the full 16x16 case this results in a -total runtime of about 43 minutes, assuming that your values for -n and -f are reasonable. -For x86 machines, assume 3 FLOPS per processor Hz. E.g., 3 GHz machine -> 9 GFLOPS. -plot_flops.py will make pretty graphs from the output data generated by %prog. -""" - usage = "usage: %prog [options] output.dat" - parser = OptionParser(usage=usage, description=description) - parser.add_option("-d", "--description", metavar="DESC", - help="machine description, e.g., \"Dual quad-core Xeon 3 GHz\"", default=None) - parser.add_option("-n", "--ncores", type="int", default=1, - help="number of processor cores [default=%default]") - parser.add_option("-g", "--gflops", metavar="GFLOPS", type="float", default=3.0, - help="estimated GFLOPS per core [default=%default]") - parser.add_option("-m", "--max-pipes-and-stages", metavar="MAX", type="int", default=16, - help="maximum number of pipes and stages to use [default=%default]") - (options, args) = parser.parse_args() - if len(args) != 1: - parser.print_help() - raise SystemExit, 1 - - output_filename = args[0] - - shell = os.popen("/bin/sh", "w") - - write_shell_script(shell, - output_filename, - options.description, - options.ncores, - options.gflops, - options.max_pipes_and_stages) - -if __name__ == '__main__': - main() - |