I have access to a Linux machine set up for relatively accurate benchmarking (no hyperthreading, pegged CPU frequency) with MKL Julia.
For future reference if you want more responses: I can only access this machine over SSH with no graphical interface. Your code requires PGFPlotsX, which is a great plotting library, but I had to run the code in order to find out that it is a requirement. Is it really necessary for providing the data needed for the current purposes? You may also want to print versioninfo()
and LinearAlgebra.BLAS.vendor()
in the script.
That said, here’s the program output:
(Base.Threads).nthreads() = 1
(Ns, ts) = testinglu.timeit(LinearAlgebra.lu!) = ([5, 10, 15, 20, 30, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000], [3.07847e-7, 8.02338e-7, 1.78465e-6, 6.84148e-6, 1.73975e-5, 3.86158e-5, 8.95044e-5, 0.00027118, 0.00060874, 0.00104886, 0.00172513, 0.00240483, 0.00322736, 0.00438552, 0.00566971, 0.00727742, 0.0435355])
(Base.Threads).nthreads() = 1
(Ns, ts) = testinglu.timeit(LinearAlgebra.generic_lufact!) = ([5, 10, 15, 20, 30, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000], [1.64724e-7, 4.55662e-7, 1.18657e-6, 2.42105e-6, 7.1917e-6, 2.96379e-5, 0.000220847, 0.00169683, 0.00563228, 0.0132562, 0.0253846, 0.0432297, 0.0681191, 0.102371, 0.14459, 0.214419, 1.9939])
(Base.Threads).nthreads() = 1
(Ns, ts) = testinglu.timeit(testinglu.better_generic_lufact!) = ([5, 10, 15, 20, 30, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000], [1.69068e-7, 4.70305e-7, 1.23869e-6, 2.04597e-6, 5.18641e-6, 1.61539e-5, 9.21582e-5, 0.00066053, 0.00232595, 0.00564915, 0.0105165, 0.0178123, 0.0277523, 0.0422416, 0.0594111, 0.0897464, 1.29526])
And the plot (scp
ed over and then converted to PNG because Discourse doesn’t support PDF natively, another annoyance):
z
Additional info:
julia> using InteractiveUtils
julia> versioninfo(verbose = true)
Julia Version 1.0.2
Commit d789231 (2018-11-08 20:11 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
Ubuntu 16.04.5 LTS
uname: Linux 4.4.0-134-generic #160-Ubuntu SMP Wed Aug 15 14:58:00 UTC 2018 x86_64 x86_64
CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz:
speed user nice sys idle irq
#1 3600 MHz 1778097 s 105803 s 174268 s 445391346 s 0 s
#2 3600 MHz 1713252 s 103801 s 187317 s 444278727 s 0 s
#3 3600 MHz 1669932 s 116043 s 164717 s 445512201 s 0 s
#4 3600 MHz 2549077 s 124092 s 190222 s 443796316 s 0 s
Memory: 15.538345336914062 GB (3322.86328125 MB free)
Uptime: 4.475557e6 sec
Load Avg: 0.20751953125 0.37939453125 0.54296875
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.0 (ORCJIT, skylake)
# snip
julia> using LinearAlgebra
julia> LinearAlgebra.BLAS.vendor()
:mkl
The printed output isn’t for the same run as the plot because running the file as a script doesn’t print the plot file location.