OpenBLAS outperforming MKL?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

OpenBLAS outperforming MKL?

Douglas Bates
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

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OpenBLAS outperforming MKL?

Thomas Covert
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.

On Monday, October 24, 2016 at 12:57:20 PM UTC-5, Douglas Bates wrote:
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: <a href="http://docs.julialang.org" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fdocs.julialang.org\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5rlOiMepdbTWymPCNWn5s-yDDRA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fdocs.julialang.org\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5rlOiMepdbTWymPCNWn5s-yDDRA&#39;;return true;">http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0 (2016-09-19 18:14 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official <a href="http://julialang.org/" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fjulialang.org%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFDhjHIhllRBZ-d-bLtw3PuY5T3Aw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fjulialang.org%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFDhjHIhllRBZ-d-bLtw3PuY5T3Aw&#39;;return true;">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: <a href="http://docs.julialang.org" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fdocs.julialang.org\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5rlOiMepdbTWymPCNWn5s-yDDRA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fdocs.julialang.org\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5rlOiMepdbTWymPCNWn5s-yDDRA&#39;;return true;">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

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Loading...