24小时热门版块排行榜    

查看: 2598  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 新丰客 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 XlxB7q11Bc3x 2026-09-01 3/150 2026-09-01 21:52 by Y3OMSsg8u9zj
[基金申请] 面上函评意见出来了,像什么等级? 20+4 Tsingking1 2026-08-27 17/850 2026-09-01 19:51 by 超级无敌华子
[基金申请] 为什么国自然不能直接公布 +5 bjdxyxy 2026-08-26 5/250 2026-09-01 17:54 by 小伟大博士
[文学芳草园] 梦想 +5 myrtle 2026-08-26 7/350 2026-09-01 15:18 by myrtle
[基金申请] 学科评审组评审是指会评吗? +4 瞬息宇宙 2026-08-31 4/200 2026-09-01 14:58 by jiaoxg
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +7 gdd2018 2026-08-28 12/600 2026-09-01 08:32 by 尼古拉斯小虫
[基金申请] 怎么看青基中了没有啊 +6 叶九微 2026-08-26 6/300 2026-08-31 23:54 by yudaoqian88
[基金申请] 国社科又开始会评了,不知道这次命运如何 +7 雨打竹帘 2026-08-30 11/550 2026-08-31 23:16 by hittle2008
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-31 21:30 by xiangy672
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +6 yuleib84 2026-08-26 7/350 2026-08-31 19:46 by 鱼翔浅底1
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 基金不中,共勉 +12 eulota 2026-08-26 12/600 2026-08-31 08:42 by ZJTJZ
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +15 晴天加油 2026-08-26 16/800 2026-08-29 18:28 by symmetry
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
信息提示
请填处理意见