ラベル abci の投稿を表示しています。 すべての投稿を表示
ラベル abci の投稿を表示しています。 すべての投稿を表示

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

2020年5月18日月曜日

abci でjulia mpi

JuliaのMPIバインドをABCIで動かせるか確認。 Juliaにはマルチノード対応があるが、それとは全く別の枠組みで、ただのメッセージパッシングライブラリが動くだけ。

.bashrcに以下を追記。

module load julia
module load openmpi/3.1.6
でjuliaを起動して、
import Pkg
Pkg.add("MPI")
ENV["JULIA_MPI_BINARY"]="system"
Pkg.build("MPI")
Pkt.add するとどうもMPIを独自にダウンロードしているようなので、システムのMPIを使わせるために 下の2行が必要らしい。

こんなふうにバッチファイルを書いて、

#!/bin/bash

#$ -l rt_F=2
#$ -cwd

source /etc/profile.d/modules.sh

module load julia
module load openmpi/3.1.6

mpiexec -n 2 -N 1 julia hello.jl
qsub -g XXXX test.sh
とかで起動。 ちなみにABCIではノード専有の rt_F以外の構成ではマルチノードジョブが動かない。なんでやねん。