MacBook Pro (15-inch, 2017)
Processor: 2.9 GHz Intel Core i7
Memory: 16 GB 2133 MHz LPDDR3
Graphic: Radeon Pro 560 4 GB, Intel HD Graphics 630 1536 MB
I’m not sure exactly what or where tempdir
is though, so I can’t answer your question.
Edit: I went to check. I would assume its on the SSD because I don’t have external disks connected.
If you do mktemp()
in julia, what kind of disk does the given path sit on? Given the age of your machine, I’m pretty certain it’s an SSD
Gives me this:
"/var/folders/pg/p0b31k255vbd7w4z_2msf5rr0000gn/T/jl_fTlvkC"
I added 1MB disk read/write tests (the previous ones were 1KB files).
Also, I’ve collated results so far and I’m observing three things:
MacOS disk io seems much slower. I was originally writing using mktemp()
and there was a thought that MacOS might be limiting temp file access. But changing this to a given non-temp file location didn’t change results (This could be a reason behind slower package load times on mac…)
aarch64 compilecache time seems disproportionately slow, compared to CPU mean score and disk io (this confirms what I’ve been seeing - compile time on aarch64 is really slow)
Somehow the cheap MSI GF63 linux laptop I’m using as a reference is really fast…!
(Click to expand)
Note: Given their recent addition, the 1MB diskio tests haven’t been run on most of the examples, hence being missing
4 Likes
Base model MacBook Pro 16’’ (late 2019):
Reference system ----------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
GPU: GeForce GTX 1650 with Max-Q Design
Test system ---------------------------
Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin18.6.0)
CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
Environment:
JULIA_EDITOR = subl
JULIA_NUM_THREADS = 6
JULIA_PROJECT = /Users/crstnbr/.julia/environments/base
JULIA_DQMC = /Users/crstnbr/sciebo/codes/julia-sdw-dqmc
JULIA_PKG_SERVER = pkg.julialang.org
14×5 DataFrames.DataFrame
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼──────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 1.708e-6 │ 1.50617 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 5.52e-6 │ 1.36364 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 4.63841e-5 │ 1.57269 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.0376855 │ 2.00497 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.0168836 │ 3.97561 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.0016247 │ 1.55981 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 226.089 │ 2.14143 │
│ 8 │ mem │ DeepCopy │ 0.000177585 │ 0.000204076 │ 1.14918 │
│ 9 │ diskio │ DiskWrite1KB │ 0.031872 │ 0.115393 │ 3.62051 │
│ 10 │ diskio │ DiskWrite1MB │ 0.650659 │ 0.285534 │ 0.438838 │
│ 11 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.069403 │ 10.1872 │
│ 12 │ diskio │ DiskRead1MB │ 0.144945 │ 0.929291 │ 6.41134 │
│ 13 │ loading │ JuliaLoad │ 91.1325 │ 257.615 │ 2.82681 │
│ 14 │ compilation │ compilecache │ 110.3 │ 109.566 │ 0.993344 │
(Almost identical results with Julia 1.4.1.)
1 Like
My results on a Clevo N141WU:
Reference system ----------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
GPU: GeForce GTX 1650 with Max-Q Design
Test system ---------------------------
Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
Environment:
JULIA_DEPOT_PATH = C:\Julia-1.4.0\.julia\;C:\Julia-1.4.0\local\share\julia\;C:\Julia-1.4.0\share\julia\;
GPU: GeForce GTX TITAN X
15×5 DataFrames.DataFrame
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼──────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 1.3e-6 │ 1.14638 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 5.0e-6 │ 1.23518 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 3.57503e-5 │ 1.21214 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.044401 │ 2.36226 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.00465006 │ 1.09496 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.00106 │ 1.01767 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 143.97 │ 1.36362 │
│ 8 │ gpu │ GPUMatMul │ 0.00531075 │ 0.00281122 │ 0.529346 │
│ 9 │ mem │ DeepCopy │ 0.000177585 │ 0.000168098 │ 0.946581 │
│ 10 │ diskio │ DiskWrite1KB │ 0.031872 │ 2.7072 │ 84.9398 │
│ 11 │ diskio │ DiskWrite1MB │ 0.650659 │ 3.5274 │ 5.42127 │
│ 12 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.077399 │ 11.3609 │
│ 13 │ diskio │ DiskRead1MB │ 0.144945 │ 0.2365 │ 1.63165 │
│ 14 │ loading │ JuliaLoad │ 91.1325 │ 176.793 │ 1.93995 │
│ 15 │ compilation │ compilecache │ 110.3 │ 140.64 │ 1.27507 │
Disk write is very slow, although I have an nvme SSD. Oh well…
Edit: Windows NTFS cluster size is 4KB. Could that be the cause?
I’m wondering if there’s a way we can make a little dashboard for this? So people can submit their timings and we could all kind of grok whats going on?
6 Likes
gdkrmr
May 9, 2020, 11:25am
29
On my rasberry pi 4B and 64 bit Manjaro:
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (aarch64-unknown-linux-gnu)
CPU: unknown
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, cortex-a72)
14×3 DataFrames.DataFrame
│ Row │ cat │ testname │ ms │
│ │ String │ String │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┤
│ 1 │ cpu │ FloatMul │ 4.111e-6 │
│ 2 │ cpu │ FloatSin │ 2.44679e-5 │
│ 3 │ cpu │ VecMulBroad │ 0.000154232 │
│ 4 │ cpu │ CPUMatMul │ 0.113628 │
│ 5 │ cpu │ MatMulBroad │ 0.013573 │
│ 6 │ cpu │ 3DMulBroad │ 0.00521414 │
│ 7 │ cpu │ FFMPEGH264Write │ 503.2 │
│ 8 │ mem │ DeepCopy │ 0.00120526 │
│ 9 │ diskio │ DiskWrite1KB │ 1.07176 │
│ 10 │ diskio │ DiskWrite1MB │ 62.6865 │
│ 11 │ diskio │ DiskRead1KB │ 0.0693505 │
│ 12 │ diskio │ DiskRead1MB │ 1.52091 │
│ 13 │ loading │ JuliaLoad │ 476.402 │
│ 14 │ compilation │ compilecache │ 576.92 │
1 Like
On a MacBook Pro (Retina, 15-inch, Mid 2015), with macOS 10.14.3 (18D42):
Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin18.7.0)
CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, haswell)
14×5 DataFrames.DataFrame
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼──────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 1.388e-6 │ 1.22399 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 5.184e-6 │ 1.28063 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 4.78725e-5 │ 1.62316 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.023664 │ 1.25899 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.00516138 │ 1.21536 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.0015743 │ 1.51142 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 237.487 │ 2.24939 │
│ 8 │ mem │ DeepCopy │ 0.000177585 │ 0.000177112 │ 0.997339 │
│ 9 │ diskio │ DiskWrite1KB │ 0.031872 │ 0.109122 │ 3.42377 │
│ 10 │ diskio │ DiskWrite1MB │ 0.650659 │ 0.439287 │ 0.675142 │
│ 11 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.033156 │ 4.86676 │
│ 12 │ diskio │ DiskRead1MB │ 0.144945 │ 1.04676 │ 7.22174 │
│ 13 │ loading │ JuliaLoad │ 91.1325 │ 180.223 │ 1.97759 │
│ 14 │ compilation │ compilecache │ 110.3 │ 155.903 │ 1.41345 │
with ArchLinux installed on the same machine:
Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, haswell)
Environment:
JULIA_PKG_SERVER = https://geo.pkg.julialang.org
14×5 DataFrames.DataFrame
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼──────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 1.374e-6 │ 1.21164 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 5.18e-6 │ 1.27964 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 3.6006e-5 │ 1.22081 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.022104 │ 1.17599 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.00339912 │ 0.800397 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.0013563 │ 1.30213 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 147.775 │ 1.39967 │
│ 8 │ mem │ DeepCopy │ 0.000177585 │ 0.000167712 │ 0.944406 │
│ 9 │ diskio │ DiskWrite1KB │ 0.031872 │ 0.0286745 │ 0.899677 │
│ 10 │ diskio │ DiskWrite1MB │ 0.650659 │ 0.775807 │ 1.19234 │
│ 11 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.00890512 │ 1.30713 │
│ 12 │ diskio │ DiskRead1MB │ 0.144945 │ 0.113265 │ 0.781431 │
│ 13 │ loading │ JuliaLoad │ 91.1325 │ 116.015 │ 1.27304 │
│ 14 │ compilation │ compilecache │ 110.3 │ 193.794 │ 1.75697 │
2 Likes
Awesome. So that rules out hardware as the source of the MacOS disk io slowness
I want to try a non-julia disk io benchmark to see if it’s julia-specific
Here is my Dell XPS13 with Win10
Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
14×5 DataFrames.DataFrame
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼──────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 2.7e-6 │ 2.38095 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 1.02e-5 │ 2.51976 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 5.40578e-5 │ 1.83287 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.0457 │ 2.43137 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.00531429 │ 1.25136 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.00154 │ 1.47849 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 398.7 │ 3.77633 │
│ 8 │ mem │ DeepCopy │ 0.000177585 │ 0.000242898 │ 1.36779 │
│ 9 │ diskio │ DiskWrite1KB │ 0.031872 │ 0.256999 │ 8.06347 │
│ 10 │ diskio │ DiskWrite1MB │ 0.650659 │ 0.62255 │ 0.956799 │
│ 11 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.083599 │ 12.271 │
│ 12 │ diskio │ DiskRead1MB │ 0.144945 │ 0.2891 │ 1.99455 │
│ 13 │ loading │ JuliaLoad │ 91.1325 │ 293.288 │ 3.21826 │
│ 14 │ compilation │ compilecache │ 110.3 │ 198.207 │ 1.79699 │
Your mid-2015 MacBook Pro seems to be consistently better than the 2019 16 inch model. This seems strange to me. Any idea what’s going on here?
(What do you get for peakflops()
?)
Given that the 1MB tests aren’t too bad, maybe it’s not writing or reading speed, but file opening or closing
All my colleagues with newer MacBooks complain about their performance.
On ArchLinux (don’t ask me to reboot from macOS ):
julia> using LinearAlgebra
julia> peakflops()
1.5939406029191907e11
On my 2018 MBP
julia> peakflops()
1.9714357685772952e11
Raspberry Pi 4 32 bit.
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (arm-linux-gnueabihf)
CPU: ARMv7 Processor rev 3 (v7l)
WORD_SIZE: 32
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, cortex-a72)
14×5 DataFrames.DataFrame
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼─────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 5.852e-6 │ 5.16049 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 1.38978e-5 │ 3.43325 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 0.000508159 │ 17.2295 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.240069 │ 12.7724 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.027277 │ 6.42295 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.0087375 │ 8.38854 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 570.853 │ 5.4069 │
│ 8 │ mem │ DeepCopy │ 0.000177585 │ 0.00363217 │ 20.4532 │
│ 9 │ diskio │ DiskWrite1KB │ 0.031872 │ 1.11163 │ 34.8778 │
│ 10 │ diskio │ DiskWrite1MB │ 0.650659 │ 95.9523 │ 147.469 │
│ 11 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.10172 │ 14.9308 │
│ 12 │ diskio │ DiskRead1MB │ 0.144945 │ 3.46227 │ 23.8868 │
│ 13 │ loading │ JuliaLoad │ 91.1325 │ 489.25 │ 5.36856 │
│ 14 │ compilation │ compilecache │ 110.3 │ 663.02 │ 6.01108 │
3 Likes
MacBook Pro 15’’ Late 2013
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
GPU: GeForce GTX 1650 with Max-Q Design
Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin19.4.0)
CPU: Intel(R) Core(TM) i7-4750HQ CPU @ 2.00GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, haswell)
Environment:
JULIA_NUM_THREADS = 4
│ Row │ cat │ testname │ ref_ms │ test_ms │ factor │
│ │ String │ String │ Float64 │ Float64 │ Float64 │
├─────┼─────────────┼─────────────────┼─────────────┼─────────────┼─────────┤
│ 1 │ cpu │ FloatMul │ 1.134e-6 │ 1.602e-6 │ 1.4127 │
│ 2 │ cpu │ FloatSin │ 4.048e-6 │ 5.999e-6 │ 1.48197 │
│ 3 │ cpu │ VecMulBroad │ 2.94935e-5 │ 6.61685e-5 │ 2.2435 │
│ 4 │ cpu │ CPUMatMul │ 0.018796 │ 0.042418 │ 2.25676 │
│ 5 │ cpu │ MatMulBroad │ 0.0042468 │ 0.0227712 │ 5.36196 │
│ 6 │ cpu │ 3DMulBroad │ 0.0010416 │ 0.00193075 │ 1.85364 │
│ 7 │ cpu │ FFMPEGH264Write │ 105.579 │ 290.085 │ 2.74757 │
│ 8 │ mem │ DeepCopy │ 0.000177585 │ 0.000206825 │ 1.16466 │
│ 9 │ diskio │ DiskWrite1KB │ 0.031872 │ 0.118455 │ 3.71657 │
│ 10 │ diskio │ DiskWrite1MB │ 0.650659 │ 0.96338 │ 1.48062 │
│ 11 │ diskio │ DiskRead1KB │ 0.00681275 │ 0.035056 │ 5.14565 │
│ 12 │ diskio │ DiskRead1MB │ 0.144945 │ 0.686661 │ 4.73739 │
│ 13 │ loading │ JuliaLoad │ 91.1325 │ 313.414 │ 3.4391 │
│ 14 │ compilation │ compilecache │ 110.3 │ 169.516 │ 1.53687 │
julia> peakflops()
1.3752326496114954e11
Cheers.
2 Likes
On the 16 inch I get
julia> peakflops()
2.201335462171481e11
So about 40% more. Completely inconsistent with the FloatMul
benchmark above, or am I missing something?
I assume that’s because of bad thermal throttling? The 16 inch improved on this dramatically.
Is anyone using an iMac, just to compare the difference between a Macbook and an iMac? I’d be interested to see the difference I always feel that an iMac has better performance than a Macbook.
I mean, I have an iMac but it’s stuck in my office which I currently have no access to so I can’t test it (damn Covid19).
1 Like
NB. compilecache time was erroneously subtracting the JuliaLoad
result. So old results (0.1.0) for compilecache
should be adjusted to JuliaLoad + compilecache
. It’s fixed in master (0.1.1)
I’m going to register this and do a few big changes as a 0.2.0. This testing has helped identify a few areas for improvement
1 Like