SharedArray
SharedArray(T::Type, dims::NTuple; init=false, pids=Int[])
Construct a SharedArray
of a bitstype T
and size dims
across the processes specified by pids
- all of which have to be on the same host.
If pids
is left unspecified, the shared array will be mapped across all processes on the current host, including the master. But, localindexes
and indexpids
will only refer to worker processes. This facilitates work distribution code to use workers for actual computation with the master process acting as a driver.
If an init
function of the type initfn(S::SharedArray)
is specified, it is called on all the participating workers.
Examples
julia> using Distributed
julia> addprocs(4) # Adding 4 worker processes
julia> @everywhere using SharedArrays
julia> shared_array = SharedArray{Float64}(3, 3)
3×3 SharedArray{Float64,2}:
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
julia> fill!(shared_array, 1.5)
3×3 SharedArray{Float64,2}:
1.5 1.5 1.5
1.5 1.5 1.5
1.5 1.5 1.5
julia> shared_array[2, 2] = 2.0
2.0
julia> shared_array
3×3 SharedArray{Float64,2}:
1.5 1.5 1.5
1.5 2.0 1.5
1.5 1.5 1.5
In this example, we create a SharedArray
of type Float64
with dimensions 3x3
. The SharedArray
is mapped across all processes (including the master process) on the current host. We initialize the shared array with zeros and then fill it with the value 1.5
. Finally, we modify the element at index [2, 2]
to 2.0
.
Note: The example assumes that the SharedArray
function is used in a distributed Julia environment where worker processes are available.
See Also
User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.