JuliaParallel / JuliaParallel/DistributedArrays.jl

localindices methods in conflict with SharedArrays

Open
#194 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
205
Forks
34
PR merge metrics
No merged PRs in 30d

Description

It seems like there is a conflict between localindices method between SharedArrays and DistributedArrays. Please, see the REPL output below.

10:46:39 $ julia-1.0
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.2 (2018-11-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |

julia> using SharedArrays

julia> SharedArrays.
SharedArray include range_1dim shm_unlink
SharedMatrix indexpids sa_refs shmem_fill
SharedVector init_loc_flds sdata shmem_rand
_shm_mmap_array initialize_shared_array shared_pids shmem_randn
eval localindices shm_mmap_array sub_1dim
finalize_refs print_shmem_limits shm_open
julia> using DistributedArrays
WARNING: using DistributedArrays.localindices in module Main conflicts with an existing identifier.

help?> SharedArrays.localindices
localindices(S::SharedArray)

Returns a range describing the "default" indices to be handled by the current process. This range should
be interpreted in the sense of linear indexing, i.e., as a sub-range of 1:length(S). In multi-process
contexts, returns an empty range in the parent process (or any process for which indexpids returns 0).

It's worth emphasizing that localindices exists purely as a convenience, and you can partition work on the
array among workers any way you wish. For a SharedArray, all indices should be equally fast for each
worker process.

help?> DistributedArrays.localindices
localindices(d)

A tuple describing the indices owned by the local process. Returns a tuple with empty ranges if no local
part exists on the calling process.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the warning in the Julia 1.0.2 REPL by loading SharedArrays and DistributedArrays in that order. Compare the exported localindices methods and their documented return shapes, then determine the compatible API behavior and add or update a regression test showing that both packages can be used without an ambiguous identifier.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.