JuliaParallel / JuliaParallel/DistributedArrays.jl

`distribute` no longer works on ranges

未关闭
#190 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。