7

我正在尝试将远程进程与本地进程结合使用,但是当我这样做时,我得到以下输出

julia> addprocs(["user@host"], tunnel=true, dir="~/julia-79599ada44/bin/", sshflags=`-p 6969`)
id: cannot find name for group ID 350
1-element Array{Any,1}:
 2

julia> addprocs(23)
fatal error on 2: ERROR: connect: host is unreachable (EHOSTUNREACH)
 in wait at ./task.jl:284
 in wait at ./task.jl:194
 in stream_wait at stream.jl:263
 in wait_connected at stream.jl:301
 in Worker at multi.jl:113
 in anonymous at task.jl:905
fatal error on fatal error on 5: 6: fatal error on fatal error on fatal error on 9: 14: 8: Worker 3 terminated.
...

我尝试先添加本地进程,但添加远程进程时出现相同的错误。

4

1 回答 1

1

我知道这个问题很老,但今天有人问我是否知道这个未回答问题的答案。

您可以-p--machinefile选项一起使用:

Julia 可以使用-p--machine-file选项以并行模式启动。-pn 将启动额外的 n 个工作进程,而--machine-filefile 将为文件文件中的每一行启动一个工作进程。文件中定义的机器必须可以通过无密码ssh 登录访问,并且 Julia 安装在与当前主机相同的位置。每个机器定义都采用[count*][user@]host[:port] [bind_addr[:port]]. 用户默认为当前用户,端口为标准 ssh 端口。count是在节点上生成的工作人员的数量,默认为 1。可选的 bind-tobind_addr[:port]指定其他工作人员应该用来连接到该工作人员的 IP 地址和端口。

自从我使用该选项以来已经很长时间了--machinefile,在我的情况下,该n选项不起作用,我不知道它是否已修复,但是您可以为您想要的每个工作进程添加一行,例如,如果这对您不起作用:

# machinefile.txt
23 user@host

你可以试试这个:

# machinfile.txt
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host
user@host

然后像这样调用 julia:

$ julia -p 2 --machinefile machinefile.txt

总共 25 个进程(2 个本地进程和 23 个远程进程)。

但是n如果有文档,该选项应该可以工作,否则请检查是否有错误,如果没有,请打开一个新的。

于 2020-01-27T22:57:40.970 回答