diff --git a/docs/source/benchmarking.rst b/docs/source/benchmarking.rst index 88f9293c..1a1fb394 100644 --- a/docs/source/benchmarking.rst +++ b/docs/source/benchmarking.rst @@ -9,7 +9,7 @@ This section provides information and results from performance benchmarking of g How to benchmark? ================= -The following simple models (found in the ``tests/benchmarking`` sub-package) can be used to benchmark gprMax on your own system. The models feature different domain sizes and contain a simple source in free space. +The following simple models (found in the ``tests/benchmarking`` sub-package) can be used to benchmark gprMax on your own system. The models feature different domain sizes (from 100^3 to 450^3 cells) and contain a simple Hertzian dipole source in free space. The following shows an example of the 100^3 cell model: .. literalinclude:: ../../tests/benchmarking/bench_100x100x100.in @@ -17,24 +17,14 @@ The following simple models (found in the ``tests/benchmarking`` sub-package) ca :linenos: -.. literalinclude:: ../../tests/benchmarking/bench_150x150x150.in - :language: none - :linenos: - - -.. literalinclude:: ../../tests/benchmarking/bench_200x200x200.in - :language: none - :linenos: - - Using the following steps to collect and report benchmarking results for each of the models: 1. Run gprMax in benchmarking mode, e.g. ``python -m gprMax tests/benchmarking/bench_100x100x100.in -benchmark`` 2. Use the ``plot_benchmark`` module to create plots of the execution time and speed-up, e.g. ``python -m tests.benchmarking.plot_benchmark tests/benchmarking/bench_100x100x100.npz``. You can combine results into a single plot, e.g. e.g. ``python -m tests.benchmarking.plot_benchmark tests/benchmarking/bench_100x100x100.npz --otherresults tests/benchmarking/bench_150x150x150.npz``. 3. Share your data by emailing us your Numpy archives and plot files to info@gprmax.com -Results -======= +Results: CPU +============ Mac OS X -------- @@ -42,7 +32,7 @@ Mac OS X iMac15,1 ^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.png +.. figure:: ../../tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.png :width: 600px Execution time and speed-up factor plots for Python/Cython-based gprMax and previous (v.2) C-based code. @@ -56,20 +46,20 @@ The results demonstrate that the Python/Cython-based code is faster, in these tw iMac15,1 ^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1.png +.. figure:: ../../tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1.png :width: 600px MacPro1,1 ^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1.png +.. figure:: ../../tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1.png :width: 600px MacPro3,1 ^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/MacOSX/MacPro3,1/Apple_MacPro3,1.png +.. figure:: ../../tests/benchmarking/results/cpu/MacOSX/MacPro3,1/Apple_MacPro3,1.png :width: 600px @@ -79,19 +69,19 @@ Linux Dell PowerEdge R630 ^^^^^^^^^^^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/Linux/Dell_PowerEdge_R630/Dell_PowerEdge_R630.png +.. figure:: ../../tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/Dell_PowerEdge_R630.png :width: 600px Lenovo System x3650 M5 ^^^^^^^^^^^^^^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/Lenovo_System_x3650_M5.png +.. figure:: ../../tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/Lenovo_System_x3650_M5.png :width: 600px SuperMicro SYS-7048GR-TR ^^^^^^^^^^^^^^^^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/Supermicro_SYS-7048GR-TR.png +.. figure:: ../../tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/Supermicro_SYS-7048GR-TR.png :width: 600px @@ -101,11 +91,30 @@ Windows Lenovo T430 ^^^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/Windows7/Lenovo_T430/Lenovo_T430.png +.. figure:: ../../tests/benchmarking/results/cpu/Windows7/Lenovo_T430/Lenovo_T430.png :width: 600px Dell Z420 ^^^^^^^^^ -.. figure:: ../../tests/benchmarking/results/Windows7/Dell_Z420/DellZ420.png +.. figure:: ../../tests/benchmarking/results/cpu/Windows7/Dell_Z420/DellZ420.png + :width: 600px + + + +Results: GPU +============ + +NVIDIA GPUs +----------- + +The performance metric used is to measure the throughput of the solver: + +.. math:: + + P = \frac{NX \cdot NY \cdot NZ \cdot NT}{T \cdot 1 \times 10^6}, + +where P is the throughput in millions of cells per second; NX, NY, and NZ are the number of cells in domain in the x, y, and z directions; NT is the number of time-steps in the simulation; and T is the runtime of the simulation in seconds. + +.. figure:: ../../tests/benchmarking/results/gpu/NVIDIA.png :width: 600px diff --git a/tests/benchmarking/results/Linux/Dell_PowerEdge_R630/Dell_PowerEdge_R630.png b/tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/Dell_PowerEdge_R630.png similarity index 100% rename from tests/benchmarking/results/Linux/Dell_PowerEdge_R630/Dell_PowerEdge_R630.png rename to tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/Dell_PowerEdge_R630.png diff --git a/tests/benchmarking/results/Linux/Dell_PowerEdge_R630/bench_100x100x100.npz b/tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/Linux/Dell_PowerEdge_R630/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/bench_100x100x100.npz diff --git a/tests/benchmarking/results/Linux/Dell_PowerEdge_R630/bench_150x150x150.npz b/tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/Linux/Dell_PowerEdge_R630/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/bench_150x150x150.npz diff --git a/tests/benchmarking/results/Linux/Dell_PowerEdge_R630/bench_200x200x200.npz b/tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/bench_200x200x200.npz similarity index 100% rename from tests/benchmarking/results/Linux/Dell_PowerEdge_R630/bench_200x200x200.npz rename to tests/benchmarking/results/cpu/Linux/Dell_PowerEdge_R630/bench_200x200x200.npz diff --git a/tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/Lenovo_System_x3650_M5.png b/tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/Lenovo_System_x3650_M5.png similarity index 100% rename from tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/Lenovo_System_x3650_M5.png rename to tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/Lenovo_System_x3650_M5.png diff --git a/tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/bench_100x100x100.npz b/tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/bench_100x100x100.npz diff --git a/tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/bench_150x150x150.npz b/tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/bench_150x150x150.npz diff --git a/tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/bench_200x200x200.npz b/tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/bench_200x200x200.npz similarity index 100% rename from tests/benchmarking/results/Linux/Lenovo_System_x3650_M5/bench_200x200x200.npz rename to tests/benchmarking/results/cpu/Linux/Lenovo_System_x3650_M5/bench_200x200x200.npz diff --git a/tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/Supermicro_SYS-7048GR-TR.png b/tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/Supermicro_SYS-7048GR-TR.png similarity index 100% rename from tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/Supermicro_SYS-7048GR-TR.png rename to tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/Supermicro_SYS-7048GR-TR.png diff --git a/tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/bench_100x100x100.npz b/tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/bench_100x100x100.npz diff --git a/tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/bench_150x150x150.npz b/tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/bench_150x150x150.npz diff --git a/tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/bench_200x200x200.npz b/tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/bench_200x200x200.npz similarity index 100% rename from tests/benchmarking/results/Linux/SuperMicro_SYS-7048GR-TR/bench_200x200x200.npz rename to tests/benchmarking/results/cpu/Linux/SuperMicro_SYS-7048GR-TR/bench_200x200x200.npz diff --git a/tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1-v.3.0.0b21.png b/tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1-v.3.0.0b21.png similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1-v.3.0.0b21.png rename to tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1-v.3.0.0b21.png diff --git a/tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1.npz b/tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1.npz rename to tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1.npz diff --git a/tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1.png b/tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1.png similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro1,1/Apple_MacPro1,1.png rename to tests/benchmarking/results/cpu/MacOSX/MacPro1,1/Apple_MacPro1,1.png diff --git a/tests/benchmarking/results/MacOSX/MacPro1,1/bench_100x100x100.npz b/tests/benchmarking/results/cpu/MacOSX/MacPro1,1/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro1,1/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/MacOSX/MacPro1,1/bench_100x100x100.npz diff --git a/tests/benchmarking/results/MacOSX/MacPro1,1/bench_150x150x150.npz b/tests/benchmarking/results/cpu/MacOSX/MacPro1,1/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro1,1/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/MacOSX/MacPro1,1/bench_150x150x150.npz diff --git a/tests/benchmarking/results/MacOSX/MacPro3,1/Apple_MacPro3,1.npz b/tests/benchmarking/results/cpu/MacOSX/MacPro3,1/Apple_MacPro3,1.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro3,1/Apple_MacPro3,1.npz rename to tests/benchmarking/results/cpu/MacOSX/MacPro3,1/Apple_MacPro3,1.npz diff --git a/tests/benchmarking/results/MacOSX/MacPro3,1/Apple_MacPro3,1.png b/tests/benchmarking/results/cpu/MacOSX/MacPro3,1/Apple_MacPro3,1.png similarity index 100% rename from tests/benchmarking/results/MacOSX/MacPro3,1/Apple_MacPro3,1.png rename to tests/benchmarking/results/cpu/MacOSX/MacPro3,1/Apple_MacPro3,1.png diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.png b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.png similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.png rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1+Ccode.png diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.5.png b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.5.png similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.5.png rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.5.png diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.7.png b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.7.png similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.7.png rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1-v.3.0.7.png diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1.png b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1.png similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/Apple_iMac15,1.png rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/Apple_iMac15,1.png diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/bench_100x100x100.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/bench_100x100x100.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/bench_150x150x150.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/bench_150x150x150.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/Apple_iMac15,1.png b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/Apple_iMac15,1.png similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/Apple_iMac15,1.png rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/Apple_iMac15,1.png diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_100x100x100.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_100x100x100.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_150x150x150.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_150x150x150.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_200x200x200.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_200x200x200.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_200x200x200.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_200x200x200.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_300x300x300.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_300x300x300.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_300x300x300.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_300x300x300.npz diff --git a/tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_400x400x400.npz b/tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_400x400x400.npz similarity index 100% rename from tests/benchmarking/results/MacOSX/iMac15,1/v.3.1.0b2/bench_400x400x400.npz rename to tests/benchmarking/results/cpu/MacOSX/iMac15,1/v.3.1.0b2/bench_400x400x400.npz diff --git a/tests/benchmarking/results/Windows7/Dell_Z420/DellZ420.png b/tests/benchmarking/results/cpu/Windows7/Dell_Z420/DellZ420.png similarity index 100% rename from tests/benchmarking/results/Windows7/Dell_Z420/DellZ420.png rename to tests/benchmarking/results/cpu/Windows7/Dell_Z420/DellZ420.png diff --git a/tests/benchmarking/results/Windows7/Dell_Z420/bench_100x100x100.npz b/tests/benchmarking/results/cpu/Windows7/Dell_Z420/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/Windows7/Dell_Z420/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/Windows7/Dell_Z420/bench_100x100x100.npz diff --git a/tests/benchmarking/results/Windows7/Dell_Z420/bench_150x150x150.npz b/tests/benchmarking/results/cpu/Windows7/Dell_Z420/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/Windows7/Dell_Z420/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/Windows7/Dell_Z420/bench_150x150x150.npz diff --git a/tests/benchmarking/results/Windows7/Lenovo_T430/Lenovo_T430.png b/tests/benchmarking/results/cpu/Windows7/Lenovo_T430/Lenovo_T430.png similarity index 100% rename from tests/benchmarking/results/Windows7/Lenovo_T430/Lenovo_T430.png rename to tests/benchmarking/results/cpu/Windows7/Lenovo_T430/Lenovo_T430.png diff --git a/tests/benchmarking/results/Windows7/Lenovo_T430/bench_100x100x100.npz b/tests/benchmarking/results/cpu/Windows7/Lenovo_T430/bench_100x100x100.npz similarity index 100% rename from tests/benchmarking/results/Windows7/Lenovo_T430/bench_100x100x100.npz rename to tests/benchmarking/results/cpu/Windows7/Lenovo_T430/bench_100x100x100.npz diff --git a/tests/benchmarking/results/Windows7/Lenovo_T430/bench_150x150x150.npz b/tests/benchmarking/results/cpu/Windows7/Lenovo_T430/bench_150x150x150.npz similarity index 100% rename from tests/benchmarking/results/Windows7/Lenovo_T430/bench_150x150x150.npz rename to tests/benchmarking/results/cpu/Windows7/Lenovo_T430/bench_150x150x150.npz diff --git a/tests/benchmarking/results/gpu/NVIDIA.png b/tests/benchmarking/results/gpu/NVIDIA.png new file mode 100644 index 00000000..11f02456 Binary files /dev/null and b/tests/benchmarking/results/gpu/NVIDIA.png differ