I could replicate my results on two more Windows 10 machines:
version info β Windows #1
Julia Version 1.8.2
Commit 36034abf26 (2022-09-29 15:21 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 12 Γ 11th Gen Intel(R) Core(TM) i5-11500T @ 1.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, rocketlake)
Threads: 1 on 12 virtual cores
version info β Windows #2
Julia Version 1.8.2
Commit 36034abf26 (2022-09-29 15:21 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 4 Γ Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
Threads: 4 on 4 virtual cores
Environment:
JULIA_NUM_THREADS = 4
However, I do not encounter this issue and get the same results as you do when testing on macOS 10.14.6:
version info β macOS
Julia Version 1.8.2
Commit 36034abf260 (2022-09-29 15:21 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin21.4.0)
CPU: 4 Γ Intel(R) Core(TM) i5-5250U CPU @ 1.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)
Threads: 1 on 4 virtual cores
I tried profiling the code, but I do not see the source of the problem. I am enclosing the profiling results below.
Profiling eigvals(F) on Windows
Overhead β [+additional indent] Count File:Line; Function
=========================================================
β673 @Base\client.jl:522; _start()
β 673 @Base\client.jl:318; exec_options(opts::Base.JLOptions)
β 673 @Base\client.jl:404; run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
β 673 @Base\essentials.jl:726; invokelatest
β 673 @Base\essentials.jl:729; #invokelatest#2
β 673 @Base\client.jl:419; (::Base.var"#967#969"{Bool, Bool, Bool})(REPL::Module)
β β 673 C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:355; run_repl(repl::REPL.AbstractREPL, consumer::Any)
β β 673 C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:369; run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool)
β β 673 C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:232; start_repl_backend(backend::REPL.REPLBackend, consumer::Any)
β β 673 ...uildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:247; repl_backend_loop(backend::REPL.REPLBackend)
β β 673 ...uildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:151; eval_user_input(ast::Any, backend::REPL.REPLBackend)
β β β 673 @Base\boot.jl:368; eval
β β β 673 ...t\worker\package_win64\build\usr\share\julia\stdlib\v1.8\Profile\src\Profile.jl:27; top-level scope
β β β 673 REPL[21]:1; macro expansion
β β β 673 ...er\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:335; eigvals(A::Matrix{Float64})
β β β 673 ...er\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:335; #eigvals#101
β β β β 5 ...ge_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\LinearAlgebra.jl:377; copy_oftype
β β β β 2 @Base\array.jl:346; copyto!
β β β β 2 @Base\array.jl:322; copyto!
β β β β 2 @Base\array.jl:331; _copyto_impl!(dest::Matrix{Float64}, doffs::Int64, src::Matrix{Float64}, soffs::Int64, n::Int64)
2β β β β 2 @Base\array.jl:289; unsafe_copyto!
β β β β 3 @Base\array.jl:376; similar
3β β β β 3 @Base\boot.jl:461; Array
β β β β 668 ...er\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:300; eigvals!
β β β β 668 ...r\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:301; eigvals!(A::Matrix{Float64}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
β β β β 2 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\generic.jl:1175; issymmetric
1β β β β 1 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\generic.jl:1246; ishermitian(A::Matrix{Float64})
β β β β 1 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\generic.jl:1249; ishermitian(A::Matrix{Float64})
1β β β β 1 @Base\range.jl:883; iterate
β β β β 666 ...win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:65; eigvals!
β β β β 666 ..._win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:66; #eigvals!#211
664β β β β 665 ...package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5102; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{Float64}, vl::Float64, vu::Float64, il::Int64, iu::Int64, ab...
β β β β 1 ...package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5118; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{Float64}, vl::Float64, vu::Float64, il::Int64, iu::Int64, ab...
β β β β β 1 @Base\array.jl:1236; resize!
1β β β β β 1 @Base\array.jl:1011; _growend!
Total snapshots: 682. Utilization: 100% across all threads and tasks. Use the `groupby` kwarg to break down by thread and/or task
Profiling eigvals(C) on Windows
Overhead β [+additional indent] Count File:Line; Function
=========================================================
β137 @Base\client.jl:522; _start()
β 137 @Base\client.jl:318; exec_options(opts::Base.JLOptions)
β 137 @Base\client.jl:404; run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
β 137 @Base\essentials.jl:726; invokelatest
β 137 @Base\essentials.jl:729; #invokelatest#2
β 137 @Base\client.jl:419; (::Base.var"#967#969"{Bool, Bool, Bool})(REPL::Module)
β β 137 C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:355; run_repl(repl::REPL.AbstractREPL, consumer::Any)
β β 137 C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:369; run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool)
β β 137 C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:232; start_repl_backend(backend::REPL.REPLBackend, consumer::Any)
β β 137 ...uildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:247; repl_backend_loop(backend::REPL.REPLBackend)
β β 136 ...uildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:151; eval_user_input(ast::Any, backend::REPL.REPLBackend)
β β β 136 @Base\boot.jl:368; eval
β β β 136 ...t\worker\package_win64\build\usr\share\julia\stdlib\v1.8\Profile\src\Profile.jl:27; top-level scope
β β β 136 REPL[27]:1; macro expansion
β β β 136 ...er\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:335; eigvals(A::Matrix{ComplexF64})
β β β 136 ...er\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:335; #eigvals#101
β β β β 12 ...ge_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\LinearAlgebra.jl:377; copy_oftype
β β β β 6 @Base\array.jl:346; copyto!
β β β β 6 @Base\array.jl:322; copyto!
β β β β 6 @Base\array.jl:331; _copyto_impl!(dest::Matrix{ComplexF64}, doffs::Int64, src::Matrix{ComplexF64}, soffs::Int64, n::Int64)
6β β β β 6 @Base\array.jl:289; unsafe_copyto!
β β β β 6 @Base\array.jl:376; similar
6β β β β 6 @Base\boot.jl:461; Array
β β β β 124 ...er\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:305; eigvals!
β β β β 124 ...r\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:306; eigvals!(A::Matrix{ComplexF64}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
β β β β 1 ...r\package_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\eigen.jl:140; sorteig!
β β β β 1 @Base\sort.jl:704; sort!##kw
β β β β 1 @Base\sort.jl:722; #sort!#8
β β β β β 1 @Base\sort.jl:661; sort!
β β β β β 1 @Base\sort.jl:572; sort!(v::Vector{Float64}, lo::Int64, hi::Int64, a::Base.Sort.QuickSortAlg, o::Base.Order.By{typeof(LinearAlgebra....
β β β β β 1 @Base\sort.jl:556; partition!(v::Vector{Float64}, lo::Int64, hi::Int64, o::Base.Order.By{typeof(LinearAlgebra.eigsortby), Base.Orde...
β β β β β 1 @Base\ordering.jl:119; lt
β β β β β 1 @Base\ordering.jl:117; lt
β β β β β β 1 @Base\float.jl:427; isless
β β β β β β 1 @Base\float.jl:421; _fpint
1β β β β β β 1 @Base\int.jl:366; xor
β β β β 123 ..._win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:71; eigvals
β β β β 123 ..._win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:74; #eigvals#212
β β β β 11 ...kage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetric.jl:284; copy
11β β β β β 11 @Base\array.jl:369; copy
β β β β 112 ...win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:65; eigvals!##kw
β β β β β 112 ...win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\symmetriceigen.jl:66; #eigvals!#211
β β β β β 1 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5245; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float64, vu::Float64, il::Int64, iu::Int6...
β β β β β 1 @Base\abstractarray.jl:797; similar
β β β β β 1 @Base\array.jl:378; similar
β β β β β 1 @Base\boot.jl:468; Array
1β β β β β β 1 @Base\boot.jl:459; Array
103β β β β β 104 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5254; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float64, vu::Float64, il::Int64, iu::Int6...
β β β β β 1 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5272; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float64, vu::Float64, il::Int64, iu::Int6...
β β β β β 1 @Base\array.jl:1236; resize!
1β β β β β 1 @Base\array.jl:1011; _growend!
β β β β β 4 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5274; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float64, vu::Float64, il::Int64, iu::Int6...
β β β β β 4 @Base\array.jl:1236; resize!
4β β β β β 4 @Base\array.jl:1011; _growend!
β β β β β 2 ...ackage_win64\build\usr\share\julia\stdlib\v1.8\LinearAlgebra\src\lapack.jl:5276; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float64, vu::Float64, il::Int64, iu::Int6...
β β β β β 2 @Base\array.jl:1236; resize!
2β β β β β 2 @Base\array.jl:1011; _growend!
1β β 1 ...uildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:154; eval_user_input(ast::Any, backend::REPL.REPLBackend)
Total snapshots: 150. Utilization: 100% across all threads and tasks. Use the `groupby` kwarg to break down by thread and/or task
Profiling eigvals(F) on macOS
Overhead β [+additional indent] Count File:Line; Function
=========================================================
β62 @Base/client.jl:522; _start()
β 62 @Base/client.jl:318; exec_options(opts::Base.JLOptions)
β 62 @Base/client.jl:404; run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set:...
β 62 @Base/essentials.jl:726; invokelatest
β 62 @Base/essentials.jl:729; #invokelatest#2
β 62 @Base/client.jl:419; (::Base.var"#967#969"{Bool, Bool, Bool})(REPL::Module)
β β 62 ...ease-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:355; run_repl(repl::REPL.AbstractREPL, consumer::Any)
β β 62 ...ease-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:369; run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool)
β β 62 ...ase-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:232; start_repl_backend(backend::REPL.REPLBackend, consumer::Any)
β β 62 ...ase-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:247; repl_backend_loop(backend::REPL.REPLBackend)
β β 62 ...se-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:151; eval_user_input(ast::Any, backend::REPL.REPLBackend)
β β β 62 @Base/boot.jl:368; eval
β β β 62 ...ot-8/usr/share/julia/stdlib/v1.8/Profile/src/Profile.jl:27; top-level scope
β β β 62 REPL[20]:1; macro expansion
β β β 62 ...usr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:335; eigvals(A::Matrix{Float64})
β β β 62 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:335; #eigvals#101
β β β β 2 .../julia/stdlib/v1.8/LinearAlgebra/src/LinearAlgebra.jl:377; copy_oftype
β β β β 2 @Base/array.jl:376; similar
2β β β β 2 @Base/boot.jl:461; Array
β β β β 60 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:300; eigvals!
β β β β 60 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:301; eigvals!(A::Matrix{Float64}; permute::Bool, scale::Bool, sortby::typeof(LinearAlg...
β β β β 2 ...share/julia/stdlib/v1.8/LinearAlgebra/src/generic.jl:1175; issymmetric
β β β β 1 ...hare/julia/stdlib/v1.8/LinearAlgebra/src/generic.jl:1246; ishermitian(A::Matrix{Float64})
1β β β β 1 @Base/float.jl:411; !=
β β β β 1 ...hare/julia/stdlib/v1.8/LinearAlgebra/src/generic.jl:1249; ishermitian(A::Matrix{Float64})
β β β β 1 @Base/range.jl:883; iterate
1β β β β β 1 @Base/promotion.jl:477; ==
β β β β 58 ...ulia/stdlib/v1.8/LinearAlgebra/src/symmetriceigen.jl:65; eigvals!
β β β β 58 ...ulia/stdlib/v1.8/LinearAlgebra/src/symmetriceigen.jl:66; #eigvals!#211
β β β β 1 ...share/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5079; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{Float64}, vl::Float64, v...
1β β β β β 1 ...share/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:101; chkuplofinite(A::Matrix{Float64}, uplo::Char)
50β β β β 50 ...share/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5102; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{Float64}, vl::Float64, v...
β β β β 6 ...share/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5120; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{Float64}, vl::Float64, v...
β β β β β 6 @Base/array.jl:1236; resize!
6β β β β β 6 @Base/array.jl:1011; _growend!
1β β β β 1 ...share/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5122; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{Float64}, vl::Float64, v...
Total snapshots: 194. Utilization: 100% across all threads and tasks. Use the `groupby` kwarg to break down by thread and/or task
Profiling eigvals(C) on macOS
Overhead β [+additional indent] Count File:Line; Function
=========================================================
β93 @Base/client.jl:522; _start()
β 93 @Base/client.jl:318; exec_options(opts::Base.JLOptions)
β 93 @Base/client.jl:404; run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set:...
β 93 @Base/essentials.jl:726; invokelatest
β 93 @Base/essentials.jl:729; #invokelatest#2
β 93 @Base/client.jl:419; (::Base.var"#967#969"{Bool, Bool, Bool})(REPL::Module)
β β 93 ...ease-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:355; run_repl(repl::REPL.AbstractREPL, consumer::Any)
β β 93 ...ease-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:369; run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool)
β β 93 ...ase-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:232; start_repl_backend(backend::REPL.REPLBackend, consumer::Any)
β β 93 ...ase-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:247; repl_backend_loop(backend::REPL.REPLBackend)
β β 93 ...se-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:151; eval_user_input(ast::Any, backend::REPL.REPLBackend)
β β β 93 @Base/boot.jl:368; eval
β β β 93 ...ot-8/usr/share/julia/stdlib/v1.8/Profile/src/Profile.jl:27; top-level scope
2β β β 93 REPL[24]:1; macro expansion
β β β 90 ...usr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:335; eigvals(A::Matrix{ComplexF64})
β β β 90 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:335; #eigvals#101
β β β β 5 .../julia/stdlib/v1.8/LinearAlgebra/src/LinearAlgebra.jl:377; copy_oftype
β β β β 5 @Base/array.jl:376; similar
5β β β β 5 @Base/boot.jl:461; Array
β β β β 85 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:305; eigvals!
1β β β β 1 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:305; eigvals!(A::Matrix{ComplexF64}; permute::Bool, scale::Bool, sortby::typeof(Linear...
β β β β 84 ...sr/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:306; eigvals!(A::Matrix{ComplexF64}; permute::Bool, scale::Bool, sortby::typeof(Linear...
2β β β β 4 ...share/julia/stdlib/v1.8/LinearAlgebra/src/generic.jl:1246; ishermitian(A::Matrix{ComplexF64})
2β β β β 2 @Base/array.jl:925; getindex
1β β β β 1 ...share/julia/stdlib/v1.8/LinearAlgebra/src/generic.jl:1249; ishermitian(A::Matrix{ComplexF64})
β β β β 79 ...ulia/stdlib/v1.8/LinearAlgebra/src/symmetriceigen.jl:71; eigvals
β β β β 79 ...ulia/stdlib/v1.8/LinearAlgebra/src/symmetriceigen.jl:74; #eigvals#212
β β β β 3 ...re/julia/stdlib/v1.8/LinearAlgebra/src/symmetric.jl:284; copy
3β β β β β 3 @Base/array.jl:369; copy
β β β β 76 ...lia/stdlib/v1.8/LinearAlgebra/src/symmetriceigen.jl:65; eigvals!##kw
β β β β β 76 ...lia/stdlib/v1.8/LinearAlgebra/src/symmetriceigen.jl:66; #eigvals!#211
β β β β β 1 ...hare/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5245; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float6...
β β β β β 1 @Base/abstractarray.jl:797; similar
β β β β β 1 @Base/array.jl:378; similar
β β β β β 1 @Base/boot.jl:468; Array
1β β β β β β 1 @Base/boot.jl:459; Array
β β β β β 1 ...hare/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5248; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float6...
1β β β β β 1 @Base/boot.jl:459; Array
72β β β β β 72 ...hare/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5254; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float6...
β β β β β 2 ...hare/julia/stdlib/v1.8/LinearAlgebra/src/lapack.jl:5276; syevr!(jobz::Char, range::Char, uplo::Char, A::Matrix{ComplexF64}, vl::Float6...
β β β β β 2 @Base/array.jl:1236; resize!
2β β β β β 2 @Base/array.jl:1011; _growend!
Total snapshots: 265. Utilization: 100% across all threads and tasks. Use the `groupby` kwarg to break down by thread and/or task
I also tried experimenting with the number of threads, but the results did not change.