とある大学のスパコンでcryoSPARCを流すことになった.

そこはジョブコントローラーにGridEngineを採用していた.
まぁーそれはいい. 問題は master を常駐状態でどのように稼働させるかであった.

試しにログインノードでmasterを動かしたら、プロセス数の上限に引っかかり起動しなかった.
まぁー当然の措置ですな. なのでジョブとしてmasterを動かすことに.

幸いなことに、恐らくphenix・ccp4を念頭なのかインターラクティヴモードが結構安く利用できるみたい

iqrsh -l h_rt=24:00:00

と最大24時間利用できるのでその最大数でインターラクティヴモードを開催する

次にcryoSPARCをインターラクティヴモードで動かすわけだが、「iqrsh」の毎に割り当てられるホストが異なる.
「cryosparc_master/config.sh」にはホスト情報が明記されている. なのでホスト情報を割り当てられたマシンに修正してcryosparcを立ち上げる

 :
export CRYOSPARC_MASTER_HOSTNAME=r4n11
 :

問題がなければこれでcryoSPARCサービスは立ち上がるのだが、web接続ははてどうするか?

ssh tunnelingでカバーする必要がある.

既にcryoSPARCサービスが動いているマシンは知っているので、そこに向けてトンネルを作る.
この場合はログインノードを中継に使う
なので

ssh -L 39000:r4n11:39000 YYYY@login2.t4.gsic.XXXXX.ac.jp

とmacOSのターミナルで作るか、簡単にmobaXtermで用意する.
そうすれば、「localhost:39000」で立ち上げたcryoSPARCにアクセスできる.

次にジョブの投入

こちらはcluster運用なので「cluster_info.json」と「cluster_script.sh」をGridEngine向けに用意して読ませればOK
具体的には
「cluster_info.json」

{
    "name" : "gpu_1",
    "worker_bin_path" : "/gs/fs/tga-XXXXXXXX/cryoSPARC/cryosparc_worker/bin/cryosparcw",
    "cache_path" : "/local/${JOB_ID}",
    "send_cmd_tpl" : "{{ command } }",
    "qsub_cmd_tpl" : "qsub -g tga-XXXXXXXX {{ script_path_abs } } ",
    "qstat_cmd_tpl" : "qstat -j {{ cluster_job_id } } ",
    "qdel_cmd_tpl" : "qdel {{ cluster_job_id } }"
}

Pukiwikiの書式により「}」の連続表記にスペースを噛ましてます
また「cluster_script.sh」は

#!/usr/bin/env bash
#$ -cwd
#$ -l gpu_1=1
#$ -l h_rt=24:00:00
#$ -N cs_{{ project_uid } }_{{ job_uid } }
#$ -o {{ job_dir_abs } }/slurm.out
#$ -e {{ job_dir_abs } }/slurm.err
{{ run_cmd } }

な感じで. nameは使用可能な資源名でいいのかなと.

ただ、そのままではGridEngineから出される「job ID」が上手くパースしてくれなくてエラーがでます
なので、ソースコードを一部修正する必要がありました

vi ./cryosparc_master/cryosparc_compute/cluster.py
 
145行目
 
        return message.strip().split()[-1]
↓
        return message.strip().split()[2]

こんな感じで. Slurm/OpenPBSはジョブ発行時の文言の末尾に「job ID」が提示されるのですが、ここのGridEngineはそうではないみたい.
なので修正が必要となりました.

cryoSPARCサービスは最大でも24時間まで動かせれる. それ以上動かすと強制停止になる. そうなるとかなり面倒. まずdetabaseが正常終了しないので怪しい. /tmp/cryosparc-*と/tmp/mongo*が残る.
怖いことに インターラクティヴモード に入っているターミナルで「Ctrl-C」でも強制終了となる. 扱いに注意が必要かな.

もしmasterを止めてしまったら、即座にインターラクティヴモードを再開させて復旧を図る. 発行されている計算jobはmasterと常に通信してます. masterが不在になるとjobも落ちます.
運が良ければ継続可能かなと思いますが、インターラクティヴモードを再開したら別のノードに移ってしまった... アウトかな. はじめら計算を再開になりそうです.

最新の60件
2026-04-22 2026-04-21 2026-04-20 2026-04-17 2026-04-16 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-04 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14 2026-03-13 2026-03-07 2026-03-06 2026-03-04 2026-03-02 2026-02-26 2026-02-24 2026-02-21 2026-02-18 2026-02-17 2026-02-16 2026-02-11 2026-02-09 2026-02-07 2026-02-06 2026-02-03 2026-02-02 2026-01-31 2026-01-26 2026-01-24

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-12-20 (金) 05:32:25