2022年3月16日水曜日

ABCIでjulia multi node

ABCIではマルチノードを確保して、相互にsshできる。
qrsh -g XXXX -I USE_SSH=1 -v SSH_PORT=2222 -l rt_F=2
とかやる。すると環境変数SGE_JOB_HOSTLISTに書かれたファイルにホストのリストが 入るので、Juliaのジョブの中で下のような関数を実行してやれば、 workerを追加することができる。
using Distributed

function invoke_hosts(port)
    hosts = open(ENV["SGE_JOB_HOSTLIST"]) do f
        readlines(f)
    end
    pairs = map(hosts) do h
        "$h:$port"
    end
    addprocs(pairs; sshflags="-o StrictHostKeyChecking=no")
end