所以我对我的工作流程有一套中等复杂的要求。 我想使用主从拓扑和非默认工作目录。 我也想混合本地和远程工作人员。
据我所知,准备documentation的--machine-file
部分。
它不会让我这样做。
所以我正在查看-L <file
参数
&gt; julia -h
...
-L, - load立即加载所有处理器
...
因此,如果我不使用-p
或--machine-file`标志,那么最初只有一个处理器,因此所有处理器只是在唯一的处理器上。< / p>
所以我试了一下
addprocs([
("cluster_c4_1",:auto),
("cluster_c4_2",:auto)
],
dir="/mnt/",
topology=:master_slave
)
addprocs(
dir="/mnt/",
topology=:master_slave
)
println("*************")
println(workers())
println("-------------")
>julia -L start_workers.jl pl.jl
*************
[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]
-------------
所以它看起来很好,得到了我的20名工人。 我做了什么不合理的事吗?这是最好的方式吗?
答案 0 :(得分:1)
这正是我在Torque调度程序下将其部署在HPC集群上的方式。事实上,我正在重新编写集群管理器,以便在通过Torque调度系统添加进程时支持更多选项,所以我花了很多时间来研究这个问题。
您可能还想知道有各种ClusterManagers Pkg.add("ClusterManagers")
可以在各种环境下扩展addprocs的功能,例如当您需要从调度程序请求资源时。看起来无密码ssh是可行的,因此默认的集群管理器就足够了。
我不相信在命令行上有任何定义额外拓扑和目录参数的方法,因此您的方法是正确的。