From beab41dc5f360324549fd14b3daa8fce613e66ff Mon Sep 17 00:00:00 2001 From: Mac Mollison Date: Sat, 13 Mar 2010 16:44:30 -0500 Subject: Updates included frontend scripts to match doc --- scripts/visualize.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 scripts/visualize.py (limited to 'scripts/visualize.py') diff --git a/scripts/visualize.py b/scripts/visualize.py new file mode 100755 index 0000000..2b828be --- /dev/null +++ b/scripts/visualize.py @@ -0,0 +1,64 @@ +#!/usr/bin/python + +################################################################################ +# Description +################################################################################ +# This scriipt demonstrates the visualizer submodule. + +# This script should be invoked with the names of the trace files you want to +# use. For example, `gedf_test.py ../sample_traces/*.bin`. +# You probably want to redirect the (normally lengthy) output to a file! +# Otherwise, speed is greatly decreased b/c terminal printing is slow. + +################################################################################ +# Setup +################################################################################ + +# Import the modules we need. You should not need to know about +# their internals. +import unit_trace +from unit_trace import trace_reader +from unit_trace import sanitizer +from unit_trace import gedf_test +from unit_trace import stats +from unit_trace import stdout_printer +from unit_trace import visualizer + +# Get trace files from command line arguments +from optparse import OptionParser +parser = OptionParser() +(options, traces) = parser.parse_args() +traces = list(traces) + +################################################################################ +# Pipeline +################################################################################ + +# Read events from traces +stream = trace_reader.trace_reader(traces) + +# Filter out garbage events +stream = sanitizer.sanitizer(stream) + +# Produce G-EDF error records +stream = gedf_test.gedf_test(stream) + +# Produce a statistics record +stream = stats.stats(stream) + +# Filter some records out +def my_filter(record): + if record.record_type == 'error' and record.type_name == 'inversion_end': + if record.job.inversion_end - record.job.inversion_start < 4000000: + return False + return True +#stream = filter(my_filter, stream) + +# It is possible to split the stream in two, +# so we can use more than one output mechanism (for example) +# without re-doing earlier work. +# import itertools +# stream1, stream2 = itertools.tee(stream,2) + +# Print the records to stdout +visualizer.visualizer(stream) -- cgit v1.2.2