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

cpuinfojuliablasthreadsnbinsrinvrinv2
StringStringStringInt64Int64StringString
111th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz: v1.7.1openblas641302.774 ms578.078 μs
211th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz: v1.7.1openblas641607.464 ms481.915 μs
311th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz: v1.7.1openblas64112030.116 ms1.926 ms