我正在尝试将远程进程与本地进程结合使用,但是当我这样做时,我得到以下输出
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.
...
我尝试先添加本地进程,但在添加远程进程时出现相同的错误。
我知道这个问题很老了,但今天有人问我是否知道这个未回答问题的答案。
您可以将-p
与--machinefile
选项一起使用:
Julia 可以通过
-p
或--machine-file
选项以并行模式启动。-p
n 将启动额外的 n 个工作进程,而--machine-file
文件将为文件文件中的每一行启动一个工作进程。文件中定义的计算机必须可以通过无密码的 ssh 登录名访问,Julia 安装在与当前主机相同的位置。每个计算机定义采用[count*][user@]host[:port] [bind_addr[:port]]
的形式。用户默认为当前用户,端口为标准 SSH 端口。count
是要在节点上生成的工作器数,默认为 1。可选的绑定bind_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 -p 2 --machinefile machinefile.txt
总共 25 个进程(2 个本地进程和 23 个远程进程)。
但是,如果记录了n
选项,则应该可以工作,否则请检查是否存在错误,如果没有,请打开一个新错误。