OpenBLAS outperforming MKL?

148 views
Skip to first unread message

Douglas Bates

unread,
Oct 24, 2016, 1:57:20 PM10/24/16
to julia-stats
On a server node 

julia> versioninfo(true)
Julia Version 0.6.0-dev.1108
Commit 1efe487* (2016-10-24 13:47 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
  WORD_SIZE: 64
           Ubuntu 14.04.5 LTS
  uname: Linux 3.13.0-98-generic #145-Ubuntu SMP Sat Oct 8 20:13:07 UTC 2016 x86_64 x86_64
Memory: 62.8109245300293 GB (53626.91796875 MB free)
Uptime: 918243.0 sec
Load Avg:  0.130859375  1.2978515625  2.16796875
Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz: 
          speed         user         nice          sys         idle          irq
#1-24  1200 MHz    1428837 s      12796 s    3318183 s  2198563210 s          3 s

  BLAS: libmkl_rt
  LAPACK: libmkl_rt
  LIBM: libimf
  LLVM: libLLVM-3.7.1 (ORCJIT, haswell)

I am consistently seeing OpenBLAS outperforming MKL by a non-trivial amount on peakflops().  I find this peculiar.  Has anyone else encountered this?

  _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0 (2016-09-19 18:14 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-pc-linux-gnu

julia> versioninfo()
Julia Version 0.5.0
Commit 3c9d753 (2016-09-19 18:14 UTC)
Platform Info:
  System: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, haswell)

julia> [peakflops(10000) for i in 1:5]
5-element Array{Float64,1}:
 2.85895e11
 2.85431e11
 2.85906e11
 2.86397e11
 2.85005e11

julia> 
$ ./julia6
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.6.0-dev.1108 (2016-10-24 13:47 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit 1efe487* (0 days old master)
|__/                   |  x86_64-linux-gnu

julia> versioninfo()
Julia Version 0.6.0-dev.1108
Commit 1efe487* (2016-10-24 13:47 UTC)
DEBUG build
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libmkl_rt
  LAPACK: libmkl_rt
  LIBM: libimf
  LLVM: libLLVM-3.7.1 (ORCJIT, haswell)

julia> [peakflops(10000) for i in 1:5]
5-element Array{Float64,1}:
 2.22788e11
 2.37729e11
 2.37163e11
 2.35563e11
 2.35813e11

Thomas Covert

unread,
Nov 3, 2016, 10:38:21 PM11/3/16
to julia-stats
are you sure that both OpenBLAS and MKL are using the same number of threads?  I just did a less scientific, but similar test on a similar intel machine and found the two setups to be comparable.
Reply all
Reply to author
Forward
0 new messages