ジョブをローカル/job queuing system経由で流している. それを止めるには「job actions」プルダウンから「Abort running」を選べば止まる.
仕組みとしては実行しているjobフォルダ(Class2D/job032とかのフォルダ)に「RELION_JOB_ABORT_NOW」名称の空ファイルを置くとそのジョブが止まるみたい.
ジョブ発行ノードでrelionを立ち上げ、jobを発行して、jobフォルダが作られる. ジョブを受けた計算ノードはそのjobフォルダにて計算を行う.
ジョブ発行ノードで「Abort running」を実行すると「RELION_JOB_ABORT_NOW」ファイルがjobフォルダに作られる.
計算ノードで実行しているプログラムがjobフォルダに作られた「RELION_JOB_ABORT_NOW」を感知して、MPI_Abortを発行して計算が止まる
job queuing system経由ならscancelとかqdelでジョブの取り下げかなと思うのだがどうやらその系統は使ってないみたい. 計算自体が自分で辞めるって感じ.
ftpが使える場所から取得するしかないかも. っで取得したら
/apps/src/relion/external/torch_models/class_ranker_0.1.3_torch_1.0.1.pt.tar.gz
に置いて.
mkdir /apps/src/relion/external/torch_models/class_ranker
と掘って、その中に「class_ranker_0.1.3_torch_1.0.1.pt.tar.gz」の展開物を置く
cd /apps/src/relion/external/torch_models/class_ranker
tar xf ../class_ranker_0.1.3_torch_1.0.1.pt.tar.gz
これでftpが有効でない計算機ネットワーク環境でもrelionをコンパイルできる.
relion内部でpytorchを使う局面がある.
ドキュメントだと topaz のpythonにはこのpytorchパッケージが含まれているのでそれを流用って感じなのですが、
最近buildしたtopazに含まれるpytorchは新しいようで、relionで使うとコケるご様子.
っでrelion向けのものを作成
conda create --name relion_torch python=3.9
conda activate relion_torch
conda install pytorch=1.10.0 numpy -c pytorch
このrelion_torch実行環境で用意されるpythonのフルパスを「Python executable」欄に差し込みます
参照先https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=ind2207&L=CCPEM&O=D&P=78056
run.errに下記のようなメッセージが表示されて
roclylinux:rank2: PSM3 can't open nic unit: 1 (err=23)
run.outでも下記のようなメッセージが表示された.
roclylinux:rank2.relion_refine_mpi: Unable to create UDP socket for enp2s0: Address family not supported by protocol
roclylinux:rank2.relion_refine_mpi: Unable to initialize sockets NIC /sys/class/net/enp2s0 (unit 1:0)
原因は libfabric(ofi) でPSM3(Performance Scaled Messaging 3)プロバイダーが有効なのにopenmpiのmtl(matching transport layer)ではサポートされていないからっぽい.
ってかlibfabric(ofi)は使わないとしてbtlから外してもだめみたいで、mtlもpsm2に指定したら文句を言わなくなった.
btlは「Byte Transfer Layer」
[root@roclylinux ~]# ompi_info |grep mtl
MCA mtl: ofi (MCA v2.1.0, API v2.0.0, Component v4.1.1)
MCA mtl: psm2 (MCA v2.1.0, API v2.0.0, Component v4.1.1)
[root@roclylinux ~]#
なのでrelionのmodulefilesを下記のように修正してみた
:
setenv RELION_MPIRUN "mpirun --mca mtl psm2 --mca btl ^ofi"
:
「^ofi」は「ofi」を使わないとの意です.「^ofi,openib」になると「ofiとopenibを使わない」との意