Updated python script

This commit is contained in:
uzy lol 2024-10-24 19:22:23 -07:00
parent 324ace2671
commit 91f8def5ea

View File

@ -19,15 +19,28 @@ Assumptions: developed and tested using Python version 3.8.8 on macOS 11.6
import pandas as pd import pandas as pd
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
# Constants for calculations
OPS = 1e6 # 1 million operations
BYTES_ACCESSED = 1e9 # Example: 1 GB accessed
PEAK_MEMORY_BANDWIDTH = 100 # Example: 100 GB/s
MEMORY_ACCESSES = 1e6 # Example: 1 million memory accesses
# Read the CSV file # Read the CSV file
fname = "benchmark_data.csv" fname = "benchmark_data.csv"
df = pd.read_csv(fname, comment="#") df = pd.read_csv(fname, comment="#")
# Extract columns # Extract columns
problem_sizes = df['Problem Size'].values.tolist() problem_sizes = df['Problem Size'].values.tolist()
mflops = df['MFLOP/s'].values.tolist() elapsed_times = df['Elapsed Time'].values.tolist()
memory_bandwidth = df['Memory Bandwidth Utilization (%)'].values.tolist()
memory_latency = df['Memory Latency'].values.tolist() # Calculate MFLOP/s
mflops = [OPS / time for time in elapsed_times]
# Calculate Memory Bandwidth Utilization (%)
memory_bandwidth = [(BYTES_ACCESSED / time) / PEAK_MEMORY_BANDWIDTH * 100 for time in elapsed_times]
# Calculate Memory Latency
memory_latency = [time / MEMORY_ACCESSES for time in elapsed_times]
# Plot MFLOP/s # Plot MFLOP/s
plt.figure() plt.figure()
@ -56,6 +69,4 @@ plt.ylabel('Memory Latency')
plt.legend() plt.legend()
plt.savefig('memory_latency_plot.png') plt.savefig('memory_latency_plot.png')
plt.show() plt.show()
# EOF