JuliaParallel / JuliaParallel/DistributedArrays.jl
`distribute` no longer works on ranges
- 主要语言
- Julia
- 星标
- 205
- 派生
- 34
- PR 合并指标
- 30 天内没有已合并 PR
描述
I believe this used to work, but now gives
```
julia> distribute(1:100)
MethodError: no method matching UnitRange{Int64}(::Array{Int64,1})
Closest candidates are:
UnitRange{Int64}(::Any, !Matched::Any) where T<:Real at range.jl:255
UnitRange{Int64}(!Matched::UnitRange{T<:Real}) where T<:Real at range.jl:846
UnitRange{Int64}(!Matched::UnitRange) where T<:Real at range.jl:847
...
Stacktrace:
[1] empty_localpart(::Type, ::Int64, ::Type) at /home/jeff/.julia/packages/DistributedArrays/XV7NS/src/darray.jl:66
[2] macro expansion at ./task.jl:264 [inlined]
[3] macro expansion at /home/jeff/.julia/packages/DistributedArrays/XV7NS/src/darray.jl:84 [inlined]
[4] macro expansion at ./task.jl:244 [inlined]
[5] DArray(::Tuple{Int64,Int64}, ::Function, ::Tuple{Int64}, ::Array{Int64,1}, ::Array{Tuple{UnitRange{Int64}},1}, ::Array{Array{Int64,1},1}) at /home/jeff/.julia/packages/DistributedArrays/XV7NS/src/darray.jl:82
[6] DArray(::Function, ::Tuple{Int64}, ::Array{Int64,1}, ::Array{Int64,1}) at /home/jeff/.julia/packages/DistributedArrays/XV7NS/src/darray.jl:169
[7] #distribute#61(::Array{Int64,1}, ::Array{Int64,1}, ::Function, ::UnitRange{Int64}) at /home/jeff/.julia/packages/DistributedArrays/XV7NS/src/darray.jl:501
[8] distribute(::UnitRange{Int64}) at /home/jeff/.julia/packages/DistributedArrays/XV7NS/src/darray.jl:494
[9] top-level scope at In[18]:1
```
贡献指南
这个仓库没有索引到贡献指南
调研方向
使用 `distribute(1:100)` 重现失败,并检查 `src/darray.jl`,尤其是第 66 行附近的 `empty_localpart` 以及第 494-501 行附近的 `distribute` 方法。将失败的 range 路径与 stack trace 进行比较,并验证分发 `UnitRange` 时可以完成,且不会出现报告的 `MethodError`。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- julia
- 领域
- distributed-systems
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 48/100