Performance Benchmarks
Currently best performance is achieved running on a single BLAS threads (set as default) and the using the Intel MKL linear algebra library. The MKL library is not shipped in the default Julia distribution must be manually installed.
Benchmarks can be computed using supplied functions. Running the benchmark test will take some time since the routine takes an average of multiple runs and cycles through several configurations.
The three slowest routines included in the benchmark are rinv, setupDMA, and setupSMPS. Setting up the DMAs is a one-time computational cost. If speed is absolutely critical, the fields Λ and δ can be precomputed and loaded from file. The computational cost of rinv is recurring.
Example benchmark run:
using DifferentialMobilityAnalyzers
runbenchmarks()
3 rows × 7 columns
cpuinfo | julia | blas | threads | nbins | rinv | rinv2 | |
---|---|---|---|---|---|---|---|
String | String | String | Int64 | Int64 | String | String | |
1 | 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz: | v1.7.1 | openblas64 | 1 | 30 | 2.774 ms | 578.078 μs |
2 | 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz: | v1.7.1 | openblas64 | 1 | 60 | 7.464 ms | 481.915 μs |
3 | 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz: | v1.7.1 | openblas64 | 1 | 120 | 30.116 ms | 1.926 ms |