メモです。下記は実際に試していないです. 出来ないかもしれません

特に Clusters形式 で cryoSPARC を運用していると同じ「常に」特定の計算ノードでジョブが動くわけではなので
計算ノードが違うと /scratch に初めから再度データ転送が始まって、計算の完了に時間を要する.

ネットワークが太かったり高速なストレージを持っていれば気にしないのかもしれませんが、まぁー転送時間はなるべく小さくしたい..

ではどうするべきか?

安直にBeeONDを考えた。でもこれって他のノードの/scratchを合わせられるが、他のノードの計算リソースも使うなら有利だけど(relionなら)、
cryoSPARCは単一ノードでしか計算しないから微妙. 加えてネットワークを跨ぐので律速はネットワーク。
ローカルのNVMeのみ使うならそっちのほうが断然いい。

ならば、そのプロジェクトで計算が行われたノードを調べ、そのノードにある/scratchを丸ごとrsyncで持ってくる。転送が終わってからcryoSPARCのジョブを開始させると。

プロジェクトと計算ノードリスト

これは単純に「cluster_script.sh」の「{{ run_cmd }}」の後、末尾に実行ノードを別ファイルに記載するコードを追加
例えばこんな感じに

echo "{{ project_uid } } `hostname -s`" >> $HOME/cryoSPARC/project-worker-map

と「project_uid hostname」のリストを作る

っで実際に使う際、例えば P100 の直近のworkerは
「grep P100 $HOME/cryoSPARC/project-worker-map | tail -n 1 | awk '{print $2}'」
で得られる.

直前の計算ノードからrsyncでデータを持ってくる

これも「cluster_script.shにて「{{ run_cmd }}」の前に記載する
なので全体像は

#!/usr/bin/env bash
#SBATCH --chdir={{ job_dir_abs } }
#SBATCH --export=NONE
#SBATCH --job-name cs_{{ project_uid } }{{ job_uid } }
#SBATCH --cpus-per-task={{ num_cpu } }
#SBATCH --gres=gpu:{{ num_gpu } }
#SBATCH --partition=workq
#SBATCH --mem={{ (ram_gb|float * (ram_gb_multiplier|default(1))|float)|int } }G
#SBATCH --comment="created by {{ cryosparc_username } }"
#SBATCH --account={{ cryosparc_username } }
#SBATCH --output={{ job_log_path_abs } }
#SBATCH --error={{ job_log_path_abs } }
 
# /scratchデータのコピー
worker=$(grep {{ project_uid } }   $HOME/cryoSPARC/project-worker-map | tail -n 1 | awk '{print $2}')
if [ -n "$work" ]; then
  if ping -c 1 "$work" > /dev/null 2>&1; then
     rsync -aH \
           --delete \
           --whole-file \
           --numeric-ids \
          $work:/scratch/instance_cryosparc:39001/  $work:/scratch/instance_cryosparc:39001/
   fi
fi
 
# cryoSPARC job実行
{{ run_cmd } }
 
# 実行場所の記録
grep {{ project_uid } } $HOME/cryoSPARC/project-worker-map | tail -n 1 | awk '{print $2}'

* このwebページの記載書式により「} }」となってますが、実際には「}」は繋がって表記されます

めも

まったくもって試していない。なんかネットワーク依存なのであんまり時短にはらないかも.

最新の60件
2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-28 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-05-21 (木) 23:52:48