ThreadsX.jl
ThreadsX.jl copied to clipboard
Error with Measurements.jl
MWE:
using Measurements
using ThreadsX
a = rand(10)
ThreadsX.sum(a)
m = measurement.(a, 0.0)
ThreadsX.sum(m)
versioninfo()
Results:
julia> using Measurements
julia> using ThreadsX
julia>
julia> a = rand(10)
10-element Vector{Float64}:
0.2416506402137748
0.3990329932552872
0.1183600409493728
0.3580759482824696
0.37286691967008
0.8649471719752331
0.3331806331440914
0.916678845510899
0.36100460510024246
0.5964408873789975
julia> ThreadsX.sum(a)
4.562238685480448
julia>
julia> m = measurement.(a, 0.0)
10-element Vector{Measurement{Float64}}:
0.2416506402137748 ± 0.0
0.3990329932552872 ± 0.0
0.1183600409493728 ± 0.0
0.3580759482824696 ± 0.0
0.37286691967008 ± 0.0
0.8649471719752331 ± 0.0
0.3331806331440914 ± 0.0
0.916678845510899 ± 0.0
0.36100460510024246 ± 0.0
0.5964408873789975 ± 0.0
julia> ThreadsX.sum(m)
ERROR: UndefRefError: access to undefined reference
Stacktrace:
[1] macro expansion
@ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:37 [inlined]
[2] restack
@ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:16 [inlined]
[3] macro expansion
@ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:37 [inlined]
[4] restack
@ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:16 [inlined]
[5] _foldl_linear_bulk
@ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:201 [inlined]
[6] macro expansion
@ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:192 [inlined]
[7] macro expansion
@ E:\.julia\packages\Transducers\oOWtX\src\basics.jl:113 [inlined]
[8] _foldl_array
@ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:188 [inlined]
[9] __foldl__
@ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:182 [inlined]
[10] foldl_nocomplete
@ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:356 [inlined]
[11] _reduce_basecase(rf::Transducers.Reduction{Transducers.UseSIMD{false}, Transducers.Reduction{Transducers.Map{typeof(identity)}, Transducers.BottomRF{Transducers.Completing{typeof(Base.add_sum)}}}}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)},
reducible::Transducers.SizedReducible{SubArray{Measurement{Float64}, 1, Vector{Measurement{Float64}}, Tuple{UnitRange{Int64}}, true}, Int64})
@ Transducers E:\.julia\packages\Transducers\oOWtX\src\threading_utils.jl:56
[12] _reduce(ctx::Transducers.NoopDACContext, rf::Transducers.Reduction{Transducers.UseSIMD{false}, Transducers.Reduction{Transducers.Map{typeof(identity)}, Transducers.BottomRF{Transducers.Completing{typeof(Base.add_sum)}}}}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, reducible::Transducers.SizedReducible{SubArray{Measurement{Float64}, 1, Vector{Measurement{Float64}}, Tuple{UnitRange{Int64}}, true}, Int64})
@ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:170
[13] _reduce(ctx::Transducers.NoopDACContext, rf::Transducers.Reduction{Transducers.UseSIMD{false}, Transducers.Reduction{Transducers.Map{typeof(identity)}, Transducers.BottomRF{Transducers.Completing{typeof(Base.add_sum)}}}}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, reducible::Transducers.SizedReducible{SubArray{Measurement{Float64}, 1, Vector{Measurement{Float64}}, Tuple{UnitRange{Int64}}, true}, Int64}) (repeats 3 times)
@ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:179
[14] _transduce_assoc_nocomplete
@ E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:159 [inlined]
[15] transduce_assoc(xform::Transducers.Map{typeof(identity)}, step::Transducers.Completing{typeof(Base.add_sum)}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, coll0::Vector{Measurement{Float64}}; simd::Val{true}, basesize::Int64, stoppable::Nothing, nestlevel::Nothing)
@ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:128
[16] foldxt(step::typeof(Base.add_sum), xform::Transducers.Map{typeof(identity)}, itr::Vector{Measurement{Float64}}; init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, kwargs::Base.Iterators.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:basesize, :simd), Tuple{Int64, Val{true}}}})
@ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:266
[17] #mapreduce#11
@ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:19 [inlined]
[18] #sum#14
@ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:48 [inlined]
[19] sum
@ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:48 [inlined]
[20] #sum#13
@ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:47 [inlined]
[21] sum(itr::Vector{Measurement{Float64}})
@ ThreadsX.Implementations E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:47
[22] top-level scope
@ REPL[6]:1
julia>
julia> versioninfo()
Julia Version 1.6.0
Commit f9720dc2eb (2021-03-24 12:55 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Xeon(R) W-10885M CPU @ 2.40GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
Environment:
JULIA_CUDA_USE_BINARYBUILDER = false
JULIA_DEPOT_PATH = E:\.julia
JULIA_NUM_THREADS = 8