MD-Bench/util
2024-05-13 12:33:08 +02:00
..
gather-bench Cleanup. Remove copyright year. Reformat. 2024-05-13 12:33:08 +02:00
cache_sets_histogram.py Add cache sets histogram script, update gather plot script and add results for icx32 2021-07-29 17:01:30 +02:00
cache.py Update cache settings for casclakesp2 and results 2021-07-02 02:57:31 +02:00
evaluate_latency_and_cfd.sh Separate log by hostname and allow to set prefetchers to be used 2023-04-04 21:56:03 +02:00
mdBench.c Cleanup. Remove copyright year. Reformat. 2024-05-13 12:33:08 +02:00
plot_gather_data.py Add cache sets histogram script, update gather plot script and add results for icx32 2021-07-29 17:01:30 +02:00
plot_run_stub_data.py Update script to plot stubbed data and add results for casclakesp2 with AoS 2021-07-03 03:07:35 +02:00
preds.py Update scripts with division factor 2023-04-05 23:56:35 +02:00
README.md Modify gather script to include raw data and update results without prefetchers 2021-06-30 16:09:34 +02:00
run_stub.sh Add plot script and move scripts to util directory 2021-06-11 15:34:19 +02:00
string_to_agr.py Update scripts with division factor 2023-04-05 23:56:35 +02:00

Utility tools for MD-Bench

mdBench.c: Single file version for MD-Bench, used mostly for teaching purposes.

run_stub.sh: Bash script to run the MD-Bench stubbed force calculation for different configurations and evaluate the performance. The configuration parameters are:

  • -a : specify the number of atoms per unit cell (the number of neighbors per atom is this value minus 1), the default is 8.
  • -n : timesteps to run the simulation, the default is 200.
  • -nx : number of unit cells in the x dimension, the default is 4.
  • -ny : number of unit cells in the y dimension, the default is 4.
  • -nz : number of unit cells in the z dimension, the default is 2.

Notice that these parameters can also be specified as lists, which executes the stubbed force calculation several times varying the specific parameter to each element of the list, and hence all combinations of parameters will be executed. For example, the following command:

bash run_stub.sh -a "8 16" -nx "4 8" -ny 8 -nz 4

Will execute the stubbed force calculation for the following 4 configurations:

1> 8 atoms per unit cell on a 4x8x4 grid of unit cells, 200 timesteps
2> 16 atoms per unit cell on a 4x8x4 grid of unit cells, 200 timesteps
3> 8 atoms per unit cell on a 8x8x4 grid of unit cells, 200 timesteps
4> 16 atoms per unit cell on a 8x8x4 grid of unit cells, 200 timesteps

The following parameters are also available:

  • -f : CPU frequency in GHz (assure your CPU frequency is fixed by disabling Turbo mode), more performance metrics such as cycles per iteration are displayed if this option is defined.
  • -o : output file (.txt) for the results, the default is run_results.txt.
  • -r : number of runs for each configuration (only the values for the best run are displayed), the default is 3.

plot_run_stub_data.py: Python script to plot the data generated by the run_stub.sh script. Just provide the name of the .txt file as a parameter and this script generates a corresponding PDF with the same file name.

plot_gather_data.py: Python script to plot the data generated by the gather benchmark. Just provide the name of the .txt file containing the gather output as a parameter and this script generates a corresponding PDF with the same file name. Multiple outputs with different strides can be included in the text file by concatenating the outputs. The script handles output from both standard simple array case and MD variant.

cache.py: Python script to run the cache simulator with the data obtained from the memory tracer. Just run it with the tracer output file name as a parameter. The cache specifications can be directly adapted in the script to match those of the target processor of interest.