24小时热门版块排行榜    

查看: 2597  |  回复: 7

新丰客

木虫 (小有名气)

[求助] shell脚本问题

写shell脚本提交sge,但提交集群之后qstat显示run一会就Eqw。刚刚接触shell脚本,跟着书学了一遍,sge以及mpi用法都是临时查网上的。主要疑问有这几个:
0,先说我要做的,就是通过不同大小的k点数目来测试其在多少k点时候能量已经开始收敛。我的做法是把pwscf的脚本K_POINTS部分先删掉成beta12.ktest.in文件,然后创建一个$k_points.in的文件存放不同的k点,然后用cat将原来pwscf脚本beta12.ktest.in文件连接起来成为一个新脚本conjunction.in。这些都通过for(())循环来用pw.x来执行。
1,shell虽然都当作字符处理但是我的np已经声明declare过了为何错误提示还会说Unable to read script file because of error: Numerical value invalid!
The initial portion of string "$np" contains no decimal number非十进制???
2,若把#$ -pe orte8x $np定义并行环境,后改成数字就可以交但运行后Eqw,投递任务出错,这是什么意思?
4,我再写sge或者pbe环境变量时到底需要编写那些必要变量(网上虽然有一些但是都必要的么)集群上并没有提示。
5,mpirun的用法上的理解,np是核数就是总共用np个核来计算,npool是通信池数,就是把总的k点分成npl个块来计算。np个核除以npl个块就是每个块用来计算的核数。是这个意思么?还有网上只有fortran和c的mpi编写,对于shell来说调用mpi时候用什么解释器么?还是说其中的那个#$ -S /bin/bash/就够了。
6,我有一个可以修改的脚本,但我希望能有朋友能帮忙解答一下问题,当然您要是给现成的脚本我也谢谢,可我还是希望能得到答复。谢谢。


#! /bin/bash/
#$ -S /bin/bash/
declare -i np=128
declare -i npl=16
np=${np}*1
npl=${npl}*1
INPUT_PATH="pwd"

#$ -pe orte8x $np
#$ -N beta12.kpoints.in
#$ -cwd
#$ -o /home/oai/work/tmp/outdir/err.out
#$ -j y
#$ -l h_cpu=12:00:00
#$ -q para0.q

if [ -f conjunction* ]
then rm -f conjunction*  
fi      
         
for((k=10;k <=30;k=k+10))
do      

cat > $k.points.in << EOF
K_POINTS {automatic}
$k $k 1 1 1 1
EOF


cat  beta12.ktest.in  $k.points.in > conjunction_$k.in


mpirun -np ${np} home/oai/work/software/espresso-5.2.1/bin/pw.x -npool $npl <$INPUT_PATH/conjunction_$k.in >> $INPUT_PATH/beta12.vcrelax_$k.out
  qsub $INPUT_PATH/beta12.kpoints.in
done
回复此楼

» 收录本帖的淘帖专辑推荐

pwscf

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

新丰客

木虫 (小有名气)

#! /bin/sh
#$ -S /bin/sh
module load intel/intel-ll
module load openmpi/intel-ll
export workdir=/home/oai/work/tmp/
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1

#$ -pe orte 4
#$ -N beta12.kpoints.in
#$ -cwd
#$ -o /home/oai/work/tmp/outdir/err.out
#$ -j y
#$ -l h_cpu=12:00:00
#$ -q para0.q


declare -i np=128
declare -i npl=16
np=${np}*1
npl=${npl}*1
INPUT_PATH="pwd"


if [ -f conjunction* ]
then rm -f conjunction*
fi

for((k=10;k <=30;k=k+10))
do

cat > $k.points.in << EOF
K_POINTS {automatic}
$k $k 1 1 1 1
EOF

cat beta12.ktest.in $k.points.in > conjunction_$k.in

mpirun -np ${np} home/oai/work/software/espresso-5.1/bin/pw.x -npool $npl <$INPUT_PATH/conjunction_$k.in >> $INPUT_PATH/beta12.vcrelax_$k.out


qsub $INPUT_PATH/beta12.kpoints.in
done
这是按照集群要求新修改的
2楼2016-05-09 12:09:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

新丰客

木虫 (小有名气)

3楼2016-05-11 12:31:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

新丰客

木虫 (小有名气)

已解决
4楼2016-05-19 13:06:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cugmsn

木虫 (著名写手)

Don't stay in step,the profect partner is waiting there.
5楼2016-05-19 19:59:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cugmsn

木虫 (著名写手)

引用回帖:
4楼: Originally posted by 新丰客 at 2016-05-19 13:06:12
已解决

可以分享一下正确的脚本吗?

发自小木虫Android客户端
Don't stay in step,the profect partner is waiting there.
6楼2016-05-19 20:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

新丰客

木虫 (小有名气)

引用回帖:
6楼: Originally posted by cugmsn at 2016-05-19 20:00:29
可以分享一下正确的脚本吗?
...

其实把if以及for格式写正确就没什大错误了,写成提交脚本的形式更好
7楼2016-05-23 13:58:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

新丰客

木虫 (小有名气)

引用回帖:
6楼: Originally posted by cugmsn at 2016-05-19 20:00:29
可以分享一下正确的脚本吗?
...

#! /bin/sh
#$ -S /bin/sh
#module load intel/intel-11
#module load openmpi/intel-11
export workdir=`pwd`
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1

nps=32
npls=4

NAME=pai3
if [ -f ${NAME} ]
then
   rm -fr ${NAME}
else
   mkdir ${NAME}
fi

cp ${NAME}.ktest.in `pwd`/${NAME}
cd `pwd`/${NAME}
#echo `pwd`
#echo "$workdir"


for (( k=10;k <=100;k=k+5 ))
do

cat > QSUB_${NAME}_kpoints_$k << LLL

#$ -pe orte8x 32
#$ -N kpoints
#$ -cwd
#$ -j y
#$ -l h_cpu=36:00:00
#$ -q para1.q


if [ -f *conjunction* ]
then rm -f *conjunction*
fi

if [ -f ${k}.points.in ]
then rm -f ${k}.points.in
fi

cat > $k.points.in << EOF
K_POINTS {automatic}
$k $k 1 1 1 1
EOF

cat ${NAME}.ktest.in $k.points.in > ${NAME}_conjunction_$k.in

mpirun -np ${nps} /home/gm/work/software/espresso-5.1/bin/pw.x -npool ${npls} <`pwd`/${NAME}_conjunction_$k.in >> `pwd`/${NAME}_vcrelax_$k.out

echo "$INPUT_PAHT"

rm -f $k.points.in ${NAME}_conjunction_$k.in
LLL

echo "`$workdir`"
#echo `pwd`
#echo "$INPUT_PATH"
qsub `pwd`/QSUB_${NAME}_kpoints_$k
#echo "$workdir"
done
8楼2016-05-23 14:01:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 新丰客 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 面上合作单位盖章 +6 ssyjh 2026-08-27 9/450 2026-09-01 20:01 by huagongfeihu
[文学芳草园] 梦想 +5 myrtle 2026-08-26 7/350 2026-09-01 15:18 by myrtle
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +13 Kittylucky 2026-08-27 14/700 2026-09-01 11:06 by feng6531
[基金申请] 怎么看青基中了没有啊 +6 叶九微 2026-08-26 6/300 2026-08-31 23:54 by yudaoqian88
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 基金不中,共勉 +12 eulota 2026-08-26 12/600 2026-08-31 08:42 by ZJTJZ
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
信息提示
请填处理意见