Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to Gadfly, set colors based on library #32

Merged
merged 8 commits into from
Jan 26, 2021
Merged

Switch to Gadfly, set colors based on library #32

merged 8 commits into from
Jan 26, 2021

Conversation

chriselrod
Copy link
Collaborator

Sample plot:
image

Resolves #28.

@DilumAluthge
Copy link
Member

Ooof, what happened to Gaius here?

@chriselrod
Copy link
Collaborator Author

chriselrod commented Jan 26, 2021

Yeah, this definitely looks like a regression. The actual numbers

julia>  rb = runbench(sizes=logspace(20,300,21)); plot(rb)

julia> rb
Bennchmark Result of Matrix{Float64}, threaded = true
21×7 DataFrame
 Row │ Sizes  BLIS        Gaius      MKL        Octavian   OpenBLAS  Tullio
     │ Int64  Float64     Float64    Float64    Float64    Float64   Float64
─────┼─────────────────────────────────────────────────────────────────────────
   120    0.377902  60.2249      35.5883    65.3644   22.6062   59.9568
   223    0.571999  70.8202      46.9537    75.5972   20.4935   71.7154
   326    0.827262  61.0035      42.6486    63.0687   27.9405   62.4411
   430    1.26692   71.122       52.0432    72.3764   30.6644   73.3924
   534    1.77145   71.2416      57.8766    72.8999   35.6427   72.2102
   639    2.65987   75.8313      66.0641    78.7612   30.137    78.0256
   745    4.05288    0.680721    75.048     87.7937   36.4148   85.4787
   852    4.69162    1.02951     68.5057   145.904    45.9023   86.3586
   959    6.15838    1.49911     97.1748   173.307    39.6217   70.5325
  1068    8.09943    2.38282    171.108    249.538    60.1841    6.91789
  1177   11.4472    10.0319     210.696    285.523    71.4729   10.6282
  1289   14.4787    15.7012     263.015    313.818   100.266    10.3768
  13102   21.6372    17.4339     358.347    412.12    138.965    17.2046
  14116   29.3559    20.6917     523.018    493.268   169.663    25.3127
  15133   39.4503    28.8287     628.207    603.743   221.571    24.6444
  16152   62.5768    25.7061     860.808   1087.99    215.554    43.8051
  17175   77.6305    30.6713     845.727    977.631   261.051    48.4
  18200  103.411     29.363     1319.37    1430.1     317.058    68.9239
  19229  156.828     36.9907     842.707   1062.98    452.563    97.9942
  20262  154.415     48.7173    1067.03    1288.35    520.474    97.1263
  21300  217.563     44.7269    1210.57    1144.31    543.396   139.214

EDIT: Oh, this might be breaking, because it changed what the BenchmarkResult struct looks like.

Copy link
Contributor

@stillyslalom stillyslalom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lighter colors (particularly Tullio's) are hard to make out against the white background

src/plotting.jl Outdated Show resolved Hide resolved
Co-authored-by: Alex Ames <alexander.m.ames@gmail.com>
@chriselrod
Copy link
Collaborator Author

chriselrod commented Jan 26, 2021

On the computer that ran the benchmarks from the top of this thread:

julia> versioninfo()
Julia Version 1.6.0-beta1.1
Commit 8240225853* (2021-01-11 19:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i9-7980XE CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.0 (ORCJIT, skylake-avx512)
Environment:
  JULIA_NUM_THREADS = 36
  JULIA_PATH = /home/chriselrod/Documents/languages/julia/usr

julia> using BenchmarkTools

julia> @benchmark wait(Threads.@spawn nothing)
BenchmarkTools.Trial:
  memory estimate:  448 bytes
  allocs estimate:  5
  --------------
  minimum time:     65.176 μs (0.00% GC)
  median time:      73.731 μs (0.00% GC)
  mean time:        73.969 μs (0.00% GC)
  maximum time:     111.876 μs (0.00% GC)
  --------------
  samples:          10000
  evals/sample:     1

This was in a fresh Julia session, started with --startup=no.
This is a 7980XE, and got roughly the same results on 1.6-beta and on master.

My 10980XE -- basically the same CPU -- got this a few days ago (copy/pasted from JuliaLinearAlgebra/Octavian.jl#24 (comment)):

julia> @benchmark wait(Threads.@spawn nothing) # just spawning a thread and waiting on it
BenchmarkTools.Trial:
  memory estimate:  443 bytes
  allocs estimate:  4
  --------------
  minimum time:     1.811 μs (0.00% GC)
  median time:      7.741 μs (0.00% GC)
  mean time:        9.088 μs (0.00% GC)
  maximum time:     57.478 μs (0.00% GC)
  --------------
  samples:          10000
  evals/sample:     7

Threads.@spawn explains the bad performance of both Tullio and Gaius. The 10980XE is unavailable for the next 36 hours or so, but I can look more closely later. I tried on a a 7900X and got 2.4/40.3/37.4 min/median/mean, which is sort of between.
The 7900X also has 4 allocs, 443 bytes.

Maybe it's related to OS/kernel parameters. But I have a hard time believing I wouldn't have noticed this earlier, unless it's a recent regression somewhere.

@chriselrod chriselrod merged commit ea0a514 into master Jan 26, 2021
@DilumAluthge DilumAluthge deleted the gadfly branch January 26, 2021 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bind benchmark libraries to fixed, standard colors in plots
4 participants