Running RPS =========== rps-help@cs.northwestern.edu What it means to "Run RPS" is more complex that might be expected. A typical RPS build generates about 10 libraries and over 120 executables, not to mention another 30+ scripts. Generally speaking, one runs RPS by either running Prediction Components (ie, those codes produced from the PredComp package) and Scripts (from the Scripts package). Setup ----- If you did a simplified installation of RPS (make install), then simply source $RPS_INSTALL_DIR/ENV from your .bashrc. Otherwise, do the following. First set the environment variable RPS_DIR to the root of your RPS tree. The assumption here is that you are using an sh-derived shell. export RPS_DIR=/home/pdinda/RPS-development Next, export your OS and architecture: export RPS_OS=LINUX export RPS_ARCH=I386 Next, edit build/setup_rps_env as appropriate for your environment. Then source it: source build/setup_rps_env Host load measurement --------------------- Start up the measurement system on this host: start_hostloadmeasure.pl Get a measurement: get_measurements_on.pl host Plot measurements: plot_measurements_and_predications_on.pl --rate=1 --nopred host shut down the measurement system: kill_hostloadmeasure.pl Notice that there are also _on and _list versions of these scripts. Host load prediction -------------------- Start up the prediction system on this host: start_hostloadpred.pl Get a prediction: get_predictions_on.pl host Plot predictions: plot_measurements_and_predictions_on.pl --rate=1 --nomeasure host Plot both predictions and measurements: plot_measurements_and_predictions_on.pl --rate=1 host shut down the measurement system: kill_hostloadpred.pl Notice that there are also _on and _list versions of these scripts. Java GUI -------- Display measurements and predictions on a host: run_gui_on.pl host Network Flow Measurements and Predictions ----------------------------------------- To do flow measurements, you will need to use the raw components (flowbw*). Notice that these will only work if you have Remos installed and running and you built RPS with HAVE_REMOS=YES. Alterantively, you can turn any command-line measuremeent tool into an RPS measurement and prediction source using the following description. Wrapping Any Tool to be an RPS Measurement and Prediction Source ---------------------------------------------------------------- Any tool that produces a stream of one (value) or two column (timestamp, value) numerical output can be made into an RPS measurement source, prediction source, or both. We provide a very simple tool for testing, gen_numbers.pl Wrapping a tool as a measurement source with streaming and buffering access modes (TCP-only): measurement_source.pl stream_port buffer_port numitems period TOOL Wrapping a tool with a predictor that provides both streaming and buffered access to predictions (TCP-only): prediction_source.pl num-steps-ahead control_port stream_port buffer_port numitems period TOOL By default, a managed AR(16) model is used. You may also supply your own choice of model using --model='....'. The expectation is that it is a managed model variant, however. Wrapping a tool with a measurement source and a predictor 1that provides both streaming and buffered access to measurements and predictions (TCP-only): measurement_and_prediction_source.pl period measurement_stream_port measurement_buffer_port num_measurements num_steps_ahead prediction_control_port prediction_stream_port prediction_buffer_port num_predictions TOOL Example: predict windows disk usage using WatchTowerRPS. (wt_disk.pl is a wrapper provided in the WatchTowerRPS package): measurement_and_prediction_source.pl ... wt_disk.pl Wrapping any Tool With Streaming Wavelet Decomposition ------------------------------------------------------ Any tool that produces measurements, as described in the previous section, can also be wrapped as an RPS "wavelet measurement source", meaning that its output is transformed using a streaming wavelet transform in to a set of signals, one for each level of the transform. wavelet_measurement_source.pl stream_port|none buffer_port|none multicast_addr:port|none wavelet_type num_levels numitems period text-generator Notice that you can supply a multicast destination as well. You can get data from the buffer using get_wavelet_measurements_on.pl. You can plot data from the buffer using plot_wavelet_source_on.pl. Predictions of Task Running Time (Running Time Advisor) ------------------------------------------------------- A host load predictor must be running on the host. test_rta task_size confidence_level host Real-time Scheduling Advisor ---------------------------- A host load predictor must be running on each of the hosts. test_rtsa task_size confidence_level slack_factor host+ Offline Time Series Analysis and Prediction ------------------------------------------- You can do offline analysis on any text file that has a one or two column format. You can transform into text files using the various trace file translators (alpha_to_ascii, network_to_ascii, etc)/ The core offline time series prediction tool is ts_example, which is relatively self explanatory. Run it without arguments for help. Offline Wavelet Analysis ------------------------ Tsunami includes a wide range of offline analysis tools. Consult the Tsunami TR for more information. Use the individual components ----------------------------- Consult README.PredComps and the RPS technical report.