ジョブファイルの自動書き換え
2025年7月10日 更新
CrySPYのジョブファイルで,CrySPY_ID
という文字列は自動的に構造IDに置換される.
PBSやSLURMなどのジョブスケジューラーを使う時,ジョブ名に構造IDを使うと便利である.
例えばPBSでは, #PBS -N Si_CrySPY_ID
が#PBS -N Si_15
に置き換わる
大抵の場合,ジョブ名は数字から始められないことが多いので,Si_
のように英字から始めておくと良い.
また,バージョン1.4.2からは末尾に以下のコマンドを書く必要はなくなった.CrySPYが自動で追記する.
sed -i -e '3s/^sub.*/done/' stat_job
例えばこのようなジョブファイルを./calc_in/job_cryspy
(job_cryspy
はcryspy.in
のjobfile
で指定するファイル名)に準備しておくと
#!/bin/sh
#$ -cwd
#$ -V -S /bin/bash
####$ -V -S /bin/zsh
#$ -N Si8_CrySPY_ID
#$ -pe smp 20
####$ -q ibis1.q
####$ -q ibis2.q
mpirun -np $NSLOTS pw.x < pwscf.in > pwscf.out
if [ -e "CRASH" ]; then
sed -i -e '3 s/^.*$/skip/' stat_job
exit 1
fi
例えばIDが15の場合,CrySPYが./work/15/job_cryspy
を下記のように書き換える.
5行目のCrySPY_ID
が15
に置換され,末尾にsed
のコマンドが追記される.
#!/bin/sh
#$ -cwd
#$ -V -S /bin/bash
####$ -V -S /bin/zsh
#$ -N Si8_15
#$ -pe smp 20
####$ -q ibis1.q
####$ -q ibis2.q
mpirun -np $NSLOTS pw.x < pwscf.in > pwscf.out
if [ -e "CRASH" ]; then
sed -i -e '3 s/^.*$/skip/' stat_job
exit 1
fi
# ---------- CrySPY
sed -i -e '3s/^sub.*/done/' stat_job