warn("The path {} is not a directory.".format(replot_dir)) if len(args.remycc) == 0 and len(args.replot) == 0: warn("No RemyCC files specified, plotting only originals.") # Make directories results_dirname = make_results_dir(args.results_dir) console_dirname = os.path.join(results_dirname, "outputs") data_dirname = os.path.join(results_dirname, "data") plots_dirname = os.path.join(results_dirname, "plots") os.makedirs(console_dirname, exist_ok=True) os.makedirs(data_dirname, exist_ok=True) os.makedirs(plots_dirname, exist_ok=True) # Log arguments utils.log_arguments(results_dirname, args) # Generate parameters link_ppt_range = np.logspace(np.log10(args.link_ppt[0]), np.log10(args.link_ppt[1]), args.num_points) parameter_keys = ["sender", "nsenders", "delay", "mean_on", "mean_off", "buffer_size"] parameters = {key: getattr(args, key) for key in parameter_keys} remyccfiles = generate_remyccs_list(args.remycc) ax = plt.axes() # Generate data and plots (the main part) generator = SenderRunnerRemyCCPerformancePlotGenerator(link_ppt_range, parameters, console_dir=console_dirname, data_dir=data_dirname, axes=ax, senderrunnercmd=args.sender_runner, progress_end_char=args.progress_end_char) for remyccfile in remyccfiles: generator.generate(remyccfile)
# If there's nothing in it, it was probably a RemyCC if not data.run_data: parameter_keys = ["nsenders", "link_ppt", "delay", "buffer_size", "interval", "sim_time", "sender", "sender1_on"] parameters = {key: getattr(args, key) for key in parameter_keys if getattr(args, key) is not None} datafile = args.inputfile + ".data" parameters["datafile"] = datafile outfile = args.inputfile + ".out" print("Running sender-logger to produce " + datafile) runner = SenderLoggerRunner(**parameters) runner.run(args.inputfile, outfile=outfile) data = datautils.read_data_file(datafile) plotsdir = make_plots_dir(args.plots_dir, args.inputfile) BaseFigureGenerator.plotsdir = plotsdir utils.log_arguments(plotsdir, args) TimePlotMixin.overlay_actions = args.actions_overlay generators = [] if not args.animations_only: generators.extend([ TimePlotGenerator("sending_duration", unit="ms"), TimePlotGenerator("packets_received", senders=0), TimePlotGenerator("packets_sent", senders=0), TimePlotGenerator("packets_in_flight", senders=0), TimePlotGenerator("packets_received", senders=1), TimePlotGenerator("packets_sent", senders=1), TimePlotGenerator("packets_in_flight", senders=1), TimePlotGenerator("total_delay", unit="ms"),
] parameters = { key: getattr(args, key) for key in parameter_keys if getattr(args, key) is not None } datafile = args.inputfile + ".data" parameters["datafile"] = datafile outfile = args.inputfile + ".out" print("Running sender-logger to produce " + datafile) runner = SenderLoggerRunner(**parameters) runner.run(args.inputfile, outfile=outfile) data = datautils.read_data_file(datafile) plotsdir = make_plots_dir(args.plots_dir, args.inputfile) BaseFigureGenerator.plotsdir = plotsdir utils.log_arguments(plotsdir, args) TimePlotMixin.overlay_actions = args.actions_overlay generators = [] if not args.animations_only: generators.extend([ TimePlotGenerator("sending_duration", unit="ms"), TimePlotGenerator("packets_received", senders=0), TimePlotGenerator("packets_sent", senders=0), TimePlotGenerator("packets_in_flight", senders=0), TimePlotGenerator("packets_received", senders=1), TimePlotGenerator("packets_sent", senders=1), TimePlotGenerator("packets_in_flight", senders=1), TimePlotGenerator("total_delay", unit="ms"),
warn("The path {} is not a directory.".format(replot_dir)) if len(args.remycc) == 0 and len(args.replot) == 0: warn("No RemyCC files specified, plotting only originals.") # Make directories results_dirname = make_results_dir(args.results_dir) console_dirname = os.path.join(results_dirname, "outputs") data_dirname = os.path.join(results_dirname, "data") plots_dirname = os.path.join(results_dirname, "plots") os.makedirs(console_dirname, exist_ok=True) os.makedirs(data_dirname, exist_ok=True) os.makedirs(plots_dirname, exist_ok=True) # Log arguments utils.log_arguments(results_dirname, args) # Generate parameters link_ppt_range = np.logspace(np.log10(args.link_ppt[0]), np.log10(args.link_ppt[1]), args.num_points) parameter_keys = [ "sender", "nsenders", "delay", "mean_on", "mean_off", "buffer_size" ] parameters = {key: getattr(args, key) for key in parameter_keys} remyccfiles = generate_remyccs_list(args.remycc) ax = plt.axes() # Generate data and plots (the main part) generator = SenderRunnerRemyCCPerformancePlotGenerator( link_ppt_range,