#!/usr/bin/env python3 # Copied from jupyter notebook at 12:36 AM on Sept 13 2022 import numpy import matplotlib # Headless backend. Comment this out if you want to use X. matplotlib.use("Agg") import matplotlib.pyplot as plt import sys if len(sys.argv) < 4: print("Usage: {} ".format(sys.argv[0])) exit(1) # Load data gpu_pg_speeds = numpy.loadtxt(sys.argv[1], delimiter="\t", skiprows=1) direct_pg_speeds = numpy.loadtxt(sys.argv[2], delimiter="\t", skiprows=2) demand_pg_speeds = numpy.loadtxt(sys.argv[3], delimiter="\t", skiprows=2) # Convert to milliseconds gpu_pg_speeds = numpy.divide(gpu_pg_speeds, 1000) direct_pg_speeds = numpy.divide(direct_pg_speeds, 1000) demand_pg_speeds = numpy.divide(demand_pg_speeds, 1000) # Plot plt.ylabel("Milliseconds") #plt.title("Box Plot of Time to Load 1GiB From SSD") plt.xlabel("Paging Method") plt.boxplot([gpu_pg_speeds[:,0], gpu_pg_speeds[:,1], direct_pg_speeds[:,0], direct_pg_speeds[:,1], demand_pg_speeds], labels=["GPU\nPaging Out", "GPU\nPaging In", "Direct I/O\nWrite", "Direct I/O\nRead", "Demand\nPaging In"]) plt.ylim(bottom=0, top=1000) plt.tight_layout() plt.savefig("fig10.pdf") print("Plot saved as fig10.pdf.")