@@ -8,8 +8,6 @@ import MemPool
8
8
import MemPool: DRef, FileRef, poolget, poolset
9
9
10
10
import Base: collect, reduce
11
- import Distributed
12
- import Distributed: Future, RemoteChannel, myid, workers, nworkers, procs, remotecall, remotecall_wait, remotecall_fetch
13
11
14
12
import LinearAlgebra
15
13
import LinearAlgebra: Adjoint, BLAS, Diagonal, Bidiagonal, Tridiagonal, LAPACK, LowerTriangular, PosDefException, Transpose, UpperTriangular, UnitLowerTriangular, UnitUpperTriangular, diagind, ishermitian, issymmetric
@@ -33,6 +31,17 @@ import TimespanLogging: timespan_start, timespan_finish
33
31
34
32
import Adapt
35
33
34
+ # Preferences
35
+ import Preferences: @load_preference , @set_preferences!
36
+
37
+ if @load_preference (" distributed-package" ) == " DistributedNext"
38
+ import DistributedNext
39
+ import DistributedNext: Future, RemoteChannel, myid, workers, nworkers, procs, remotecall, remotecall_wait, remotecall_fetch, check_same_host
40
+ else
41
+ import Distributed
42
+ import Distributed: Future, RemoteChannel, myid, workers, nworkers, procs, remotecall, remotecall_wait, remotecall_fetch, check_same_host
43
+ end
44
+
36
45
include (" lib/util.jl" )
37
46
include (" utils/dagdebug.jl" )
38
47
@@ -96,6 +105,21 @@ include("utils/logging-events.jl")
96
105
include (" utils/logging.jl" )
97
106
include (" utils/viz.jl" )
98
107
108
+ """
109
+ set_distributed_package!(value[="Distributed|DistributedNext"])
110
+
111
+ Set a [preference](https://github.com/JuliaPackaging/Preferences.jl) for using
112
+ either the Distributed.jl stdlib or DistributedNext.jl. You will need to restart
113
+ Julia after setting a new preference.
114
+ """
115
+ function set_distributed_package! (value)
116
+ MemPool. set_distributed_package! (value)
117
+ TimespanLogging. set_distributed_package! (value)
118
+
119
+ @set_preferences! (" distributed-package" => value)
120
+ @info " Dagger.jl preference has been set, restart your Julia session for this change to take effect!"
121
+ end
122
+
99
123
# Precompilation
100
124
import PrecompileTools: @compile_workload
101
125
include (" precompile.jl" )
0 commit comments