使用本地存储

集群normal、high以及smp队列本地均为SSD,IO性能较好,如果作业有大量的小文件读写,此时使用计算节点本地SSD进行文件读写会有较大的速度提升。

Warning

由于本地盘较小(normalhigh为480G,smp为1.4T),因此不可拷入或生成大型文件。使用LSF选项-R "rusage[tmp=10G]"来指定预计使用的本地存储大小,以免出现/tmp目录写满或/tmp空间不够导致作业挂掉。

使用方式如下,输入和输出文件分别为inputfile和outputfile,两个文件大小一起不超过5G。

#BSUB -J program
#BSUB -n 10
#BSUB -R "rusage[tmp=5G]"
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q normal

# 生成随机字符串,以免与其它目录重复
tmpn=`mktemp -u program_XXXXX`

# 在/tmp/中新建运行目录,并进入该目录
tmpd="/tmp/${tmpn}"
mkdir ${tmpd}

# 打印节点名称和新建目录名称,以方便出错处理
hostname
echo ${tmpd}

# 将输入文件拷到节点本地存储目录
cp /path/inputfile ${tmpd}

# 运行程序
program ${tmpd}/inputfile ${tmpd}/outputfile

# 程序运行结束后,将生成文件拷回共享存储目录
mv ${tmpd}/outputfile .

# 清理临时文件
rm -r ${tmpd} && echo "program done"

# 如果因程序出错、节点宕机等原因导致作业日志没有输出program done的提示,此时节点本地数据很可能未删除,需要另外提作业到该节点将本地数据删除。
# 节点和目录为23和24行的输出,可以在作业日志中获取。
本文阅读量  次
本站总访问量  次