とある大学のスパコンで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件
2025-02-17 2025-02-15 2025-02-14 2025-02-12 2025-02-03 2025-02-02 2025-02-01 2025-01-27 2025-01-26 2025-01-25 2025-01-24 2025-01-23 2025-01-20 2025-01-13 2025-01-12 2025-01-08 2024-12-30 2024-12-29 2024-12-22 2024-12-20
  • cryoSPARC/sge
2024-12-17 2024-12-15 2024-12-14 2024-12-12 2024-12-11 2024-12-10 2024-12-09 2024-12-08 2024-11-28 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05 2024-11-04 2024-11-02 2024-11-01 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14

edit


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