|
35 | 35 |
|
36 | 36 |
|
37 | 37 | function check_addprocs_args(kwargs) |
38 | | - valid_kw_names = collect(keys(default_addprocs_params())) |
| 38 | + valid_kw_names = keys(default_addprocs_params(manager)) |
39 | 39 | for keyname in keys(kwargs) |
40 | 40 | !(keyname in valid_kw_names) && throw(ArgumentError("Invalid keyword argument $(keyname)")) |
41 | 41 | end |
@@ -137,11 +137,23 @@ This timeout can be controlled via environment variable `JULIA_WORKER_TIMEOUT`. |
137 | 137 | The value of `JULIA_WORKER_TIMEOUT` on the master process specifies the number of seconds a |
138 | 138 | newly launched worker waits for connection establishment. |
139 | 139 | """ |
140 | | -function addprocs(machines::AbstractVector; tunnel=false, multiplex=false, sshflags=``, max_parallel=10, kwargs...) |
141 | | - check_addprocs_args(kwargs) |
142 | | - addprocs(SSHManager(machines); tunnel=tunnel, multiplex=multiplex, sshflags=sshflags, max_parallel=max_parallel, kwargs...) |
| 140 | +function addprocs(machines::AbstractVector; , kwargs...) |
| 141 | + manager = SSHManager(machines) |
| 142 | + check_addprocs_args(manager, kwargs) |
| 143 | + addprocs(manager; kwargs...) |
143 | 144 | end |
144 | 145 |
|
| 146 | +default_addprocs_params(::SSHManager) = |
| 147 | + merge(default_addprocs_params(), |
| 148 | + Dict{Symbol,Any}( |
| 149 | + :ssh => "ssh", |
| 150 | + :sshflags => ``, |
| 151 | + :shell => :posix, |
| 152 | + :cmdline_cookie => false, |
| 153 | + :env => [], |
| 154 | + :tunnel => false, |
| 155 | + :multiplex => false, |
| 156 | + :max_parallel => 10)) |
145 | 157 |
|
146 | 158 | function launch(manager::SSHManager, params::Dict, launched::Array, launch_ntfy::Condition) |
147 | 159 | # Launch one worker on each unique host in parallel. Additional workers are launched later. |
@@ -426,8 +438,9 @@ processes on the local machine. If `restrict` is `true`, binding is restricted t |
426 | 438 | `enable_threaded_blas` have the same effect as documented for `addprocs(machines)`. |
427 | 439 | """ |
428 | 440 | function addprocs(np::Integer; restrict=true, kwargs...) |
| 441 | + manager = LocalManager(np, restrict) |
429 | 442 | check_addprocs_args(kwargs) |
430 | | - addprocs(LocalManager(np, restrict); kwargs...) |
| 443 | + addprocs(manager; kwargs...) |
431 | 444 | end |
432 | 445 |
|
433 | 446 | Base.show(io::IO, manager::LocalManager) = print(io, "LocalManager()") |
|
0 commit comments