Site Tools


fdtd-openmp-performance-analysis

Table of Contents

Performance analysis (1D FDTD)

Performance analysis compares the cost of the same simulation under different execution strategies. The repository's plotting script derives three metrics from the recorded timings:

throughput = data["width"] * data["nsteps"] / data["seconds"] / 1e6
speedup = np.ones(len(data))
 
for width in np.unique(data["width"]):
    serial = data[(data["accel"] == "none") & (data["width"] == width)]
    parallel = (data["accel"] == "openmp") & (data["width"] == width)
    speedup[parallel] = np.median(serial["seconds"]) / data["seconds"][parallel]
 
efficiency = speedup / data["threads"]

Throughput reports work per second. Speedup uses the median serial time for the same grid width, while efficiency divides speedup by the number of threads. These calculations assume a consistent numerical workload, including step count.

Run the benchmark across widths and thread counts. Small grids expose synchronization overhead; large working sets can pressure the memory hierarchy. The curves identify changes in performance, while additional profiling is needed to distinguish their causes.

Source: plot_benchmark.py.

fdtd-openmp-performance-analysis.md · Last modified: by 127.0.0.1