@@ -531,11 +531,11 @@ A remote reference is an object that can be used from any process to refer to an
531531on a particular process. A remote call is a request by one process to call a certain function
532532on certain arguments on another (possibly the same) process.
533533
534- Remote references come in two flavors: [` Future` ](@ref ) and [` RemoteChannel` ](@ref ).
534+ Remote references come in two flavors: [` Future` ](@ref Distributed . Future ) and [` RemoteChannel` ](@ref ).
535535
536- A remote call returns a [` Future` ](@ref ) to its result. Remote calls return immediately; the process
536+ A remote call returns a [` Future` ](@ref Distributed . Future ) to its result. Remote calls return immediately; the process
537537that made the call proceeds to its next operation while the remote call happens somewhere else .
538- You can wait for a remote call to finish by calling [` wait` ](@ref ) on the returned [` Future` ](@ref ),
538+ You can wait for a remote call to finish by calling [` wait` ](@ref ) on the returned [` Future` ](@ref Distributed . Future ),
539539and you can obtain the full value of the result using [` fetch` ](@ref ).
540540
541541On the other hand, [` RemoteChannel` ](@ref ) s are rewritable. For example, multiple processes can
@@ -615,8 +615,8 @@ on the process that owns `r`, so the [`fetch`](@ref) will be a no-op (no work is
615615(It is worth noting that [` @spawn` ](@ref ) is not built- in but defined in Julia as a [macro ](@ref man- macros).
616616It is possible to define your own such constructs.)
617617
618- An important thing to remember is that, once fetched, a [` Future` ](@ref ) will cache its value
619- locally. Further [` fetch` ](@ref ) calls do not entail a network hop. Once all referencing [` Future` ](@ref )s
618+ An important thing to remember is that, once fetched, a [` Future` ](@ref Distributed . Future ) will cache its value
619+ locally. Further [` fetch` ](@ref ) calls do not entail a network hop. Once all referencing [` Future` ](@ref Distributed . Future )s
620620have fetched, the remote stored value is deleted.
621621
622622[` @async` ](@ref ) is similar to [` @spawn` ](@ref ), but only runs tasks on the local process. We
@@ -981,8 +981,8 @@ Here each iteration applies `f` to a randomly-chosen sample from a vector `a` sh
981981
982982As you could see, the reduction operator can be omitted if it is not needed. In that case, the
983983loop executes asynchronously, i. e. it spawns independent tasks on all available workers and returns
984- an array of [` Future` ](@ref ) immediately without waiting for completion. The caller can wait for
985- the [` Future` ](@ref ) completions at a later point by calling [` fetch` ](@ref ) on them, or wait
984+ an array of [` Future` ](@ref Distributed . Future ) immediately without waiting for completion. The caller can wait for
985+ the [` Future` ](@ref Distributed . Future ) completions at a later point by calling [` fetch` ](@ref ) on them, or wait
986986for completion at the end of the loop by prefixing it with [` @sync` ](@ref ), like ` @sync @distributed for` .
987987
988988In some cases no reduction operator is needed, and we merely wish to apply a function to all integers
@@ -1008,7 +1008,7 @@ Remote references always refer to an implementation of an `AbstractChannel`.
10081008
10091009A concrete implementation of an ` AbstractChannel` (like ` Channel` ), is required to implement
10101010[` put!` ](@ref ), [` take!` ](@ref ), [` fetch` ](@ref ), [` isready` ](@ref ) and [` wait` ](@ref ).
1011- The remote object referred to by a [` Future` ](@ref ) is stored in a ` Channel{Any}(1)` , i. e., a
1011+ The remote object referred to by a [` Future` ](@ref Distributed . Future ) is stored in a ` Channel{Any}(1)` , i. e., a
10121012` Channel` of size 1 capable of holding objects of ` Any` type.
10131013
10141014[` RemoteChannel` ](@ref ), which is rewritable, can point to any type and size of channels, or any
@@ -1111,9 +1111,9 @@ Objects referred to by remote references can be freed only when *all* held refer
11111111in the cluster are deleted.
11121112
11131113The node where the value is stored keeps track of which of the workers have a reference to it.
1114- Every time a [` RemoteChannel` ](@ref ) or a (unfetched) [` Future` ](@ref ) is serialized to a worker,
1114+ Every time a [` RemoteChannel` ](@ref ) or a (unfetched) [` Future` ](@ref Distributed . Future ) is serialized to a worker,
11151115the node pointed to by the reference is notified. And every time a [` RemoteChannel` ](@ref ) or
1116- a (unfetched) [` Future` ](@ref ) is garbage collected locally, the node owning the value is again
1116+ a (unfetched) [` Future` ](@ref Distributed . Future ) is garbage collected locally, the node owning the value is again
11171117notified. This is implemented in an internal cluster aware serializer. Remote references are only
11181118valid in the context of a running cluster. Serializing and deserializing references to and from
11191119regular ` IO` objects is not supported.
@@ -1122,12 +1122,12 @@ The notifications are done via sending of "tracking" messages--an "add reference
11221122a reference is serialized to a different process and a " delete reference" message when a reference
11231123is locally garbage collected.
11241124
1125- Since [` Future` ](@ref )s are write- once and cached locally, the act of [` fetch` ](@ref )ing a
1126- [` Future` ](@ref ) also updates reference tracking information on the node owning the value.
1125+ Since [` Future` ](@ref Distributed . Future )s are write- once and cached locally, the act of [` fetch` ](@ref )ing a
1126+ [` Future` ](@ref Distributed . Future ) also updates reference tracking information on the node owning the value.
11271127
11281128The node which owns the value frees it once all references to it are cleared.
11291129
1130- With [` Future` ](@ref )s, serializing an already fetched [` Future` ](@ref ) to a different node also
1130+ With [` Future` ](@ref Distributed . Future )s, serializing an already fetched [` Future` ](@ref Distributed . Future ) to a different node also
11311131sends the value since the original remote store may have collected the value by this time.
11321132
11331133It is important to note that * when* an object is locally garbage collected depends on the size
@@ -1136,9 +1136,9 @@ of the object and the current memory pressure in the system.
11361136In case of remote references, the size of the local reference object is quite small, while the
11371137value stored on the remote node may be quite large. Since the local object may not be collected
11381138immediately, it is a good practice to explicitly call [` finalize` ](@ref ) on local instances
1139- of a [` RemoteChannel` ](@ref ), or on unfetched [` Future` ](@ref )s. Since calling [` fetch` ](@ref )
1140- on a [` Future` ](@ref ) also removes its reference from the remote store, this is not required on
1141- fetched [` Future` ](@ref )s. Explicitly calling [` finalize` ](@ref ) results in an immediate message
1139+ of a [` RemoteChannel` ](@ref ), or on unfetched [` Future` ](@ref Distributed . Future )s. Since calling [` fetch` ](@ref )
1140+ on a [` Future` ](@ref Distributed . Future ) also removes its reference from the remote store, this is not required on
1141+ fetched [` Future` ](@ref Distributed . Future )s. Explicitly calling [` finalize` ](@ref ) results in an immediate message
11421142sent to the remote node to go ahead and remove its reference to the value.
11431143
11441144Once finalized, a reference becomes invalid and cannot be used in any further calls.
@@ -1147,7 +1147,7 @@ Once finalized, a reference becomes invalid and cannot be used in any further ca
11471147# # Local invocations(@id man-distributed-local-invocations)
11481148
11491149Data is necessarily copied over to the remote node for execution. This is the case for both
1150- remotecalls and when data is stored to a[` RemoteChannel` ](@ref ) / [` Future` ](@ref ) on
1150+ remotecalls and when data is stored to a[` RemoteChannel` ](@ref ) / [` Future` ](@ref Distributed . Future ) on
11511151a different node. As expected, this results in a copy of the serialized objects
11521152on the remote node. However, when the destination node is the local node, i. e.
11531153the calling process id is the same as the remote node id, it is executed
0 commit comments