OOMMF Users Group
- Overview
- Members
- Announcements
- Blog
- Collections1
- Forum
- Projects
- Resources5
- Wiki
- Wish List
- Files
- Activity
OOMMF benchmarking
It is possible that OOMMF will run faster on nanoHUB's servers than on your own local computer. Here we will share information on some benchmarking tests you can run, and also ways to share your results with other users.
Here is some preliminary information about benchmarking tests.
Some time ago I put together a performance testing script for my own
use. It's probably included in the OOMMF snapshot you have:
oommf/app/oxs/regression_tests/perftest.tcl
It will run a series of test simulations of either muMAG Std Prob 1 or
Std Prob 3, with varying number of threads and cell sizes (smaller
cell size == more cells == bigger simulation).
I don't know what hardware you have at nanoHUB so I can't speculate on
performance there. On our local systems I see good scaling up to at
least 64 cores on big (>100 GB) problems.
Note that parallel OOMMF requires a shared memory machine --- it is not
MPI and doesn't run across clusters.
The perftest.tcl script requires a command line. Here is some sample
output from my desktop:
$ tclsh perftest.tcl 1 -threads 1 4 8 16 -cellsize 10 5 4 2.5
Date: Fri Apr 15 17:48:42 EDT 2016
Machine: mepuche
OS: Linux 2.6.32-573.22.1.el6.x86_64 / CentOS release 6.7 (Final)
Total memory: 126.0 GB (122.2 GB free)
Huge pages: always
Cpu type: Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
Processors: 2
Cores: 16
Threads: 16
+-------------------------------------------------------------------------+
| *** Test 1-cg, time per field evaluation, in ms *** |
+---------------------------------------+---------------------------------+
| | --- Threads --- |
| Cell size (nm) Cell count Pad ratio | 1 4 8 16 |
+---------------------------------------+---------------------------------+
| 10 40,000 1.64 | 15.0 5.7 4.8 3.3 |
| 5 320,000 1.64 | 159.7 47.8 26.0 18.5 |
| 4 625,000 1.68 | 273.5 83.0 42.0 28.8 |
| 2.5 2,560,000 1.64 | 1232.0 340.1 183.6 120.0 |
+---------------------------------------+---------------------------------+
The script automatically handles timing, collates data across multiple
runs, and throws out timing outliers. This above test required about
three minutes on my machine. The important bits are the number of cells
and the time per field evaluation. You can do something similar from
the interactive interface by loading stdprob1 or stdprob3 from the OOMMF
oxs/examples directory, specify the desired cell size and thread count,
then run for a bit and watch the clock. After a timed interval send
output to mmDataTable. Check the field evaluation count in mmDataTable
and divide by the elapsed time.
Depending on your hardware you can run different thread counts and cell
sizes. You will typically need about 512 bytes of RAM per cell.
BTW, you can feed the perftest.tcl script the "-h" option to get a list
of command line options.
----