将本地进程与 Julia 中的远程进程相结合



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

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选项以并行模式启动。-pn 将启动额外的 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选项,则应该可以工作,否则请检查是否存在错误,如果没有,请打开一个新错误。

相关内容

  • 没有找到相关文章

最新更新