Julia并行计算集群中的多个节点

时间:2017-03-28 20:27:12

标签: parallel-processing cluster-computing julia

我正在共享群集上运行一些作业,而且我一直尝试使用多个节点。虽然使用julia -p #processors适用于一个节点上的核心,但它找不到其他节点。 群集正在使用SGE,我尝试了很多不同的方法来使节点工作,但只有一个工作。在Julia中有一种简单的方法可以用julia -mpi 32或类似的方式启动Julia吗? 使用

using ClusterManagers
println(nworkers(),nprocs(),Sys.CPU_CORES)
ClusterManagers.addprocs_sge(16)
ClusterManagers.addprocs_sge(15)
println(nworkers(),nprocs(),Sys.CPU_CORES)

不起作用(我已经提交了一份保留2个节点的作业,每个节点在SGE上各有16个核心),作业的输出文件为空,而我得到16个不同的输出文件julia-70755.o8252776.* {{ 1}}使用以下文字:

(* = 1...16)

使用julia_worker:9009#192.168.17.206 Master process (id 1) could not connect within 60.0 seconds. exiting. 启动Julia也失败了:

julia --machinefile $PE_HOSTFILE

我被建议使用 MPI.jl 包,但我并不认为它真的支持julia并行语法,就像我使用它一样只需在我希望并行运行的for循环之前编写@sync @parallel(即Metropolis-Montecarlo)。

2 个答案:

答案 0 :(得分:2)

IT团队回复我并告诉我SGE不允许无密码ssh,这就是为什么addprocs_sge()不起作用的原因。然而,他们现在为我可以传递给Julia的工作添加了一个文件,并告诉我用这个脚本运行这个工作:

qlogin -pe mpi_28_tasks_per_node 56
module load julia/0.5.1
julia --machinefile $TMPDIR/machines

计算机文件如下所示:

::::::::::::::
/scratch/8548498.1.u/machines
::::::::::::::
{hostname1}
{hostname1}
...
{hostname2}
{hostname2}

答案 1 :(得分:0)

您可能希望阅读关于并行计算的julia文档,其中有关于集群管理器的部分。另外,请查看支持SGE的ClusterManagers.jl:

julia> using ClusterManagers
julia> ClusterMangers.addprocs_sge(5)