集群上已安装了软件,却无法调用,权限不足的情况下,往往管理账户会开放一个端口,让我能够只用module命令来加载相关软件。
module使用
管理账户modules的安装
sudo yum install -y environment-modules
module avail 查看当前可用软件
[lusong@ln02 p2p]$ module avail
------------------------------------- /usr/share/Modules/modulefiles --------------------------------------
dot module-git module-info modules null use.own
----------------------------------------- /share/soft/modulefiles -----------------------------------------
gcc/5.5.0 intel/2018_update1 mvapich2/2.0.1_gcc openmpi/1.8.4_gcc
gcc/6.4.0 mpich/3.1.3_gcc mvapich2/2.0.1_icc openmpi/1.8.4_icc
gcc/7.2.0 mpich/3.1.3_icc mvapich2/2.3b_gcc openmpi/3.0.0_gcc
module list 查看当前已经加载的库
[lusong@ln02 p2p]$ module list
Currently Loaded Modulefiles:
1) mpich/3.1.3_gcc
module load/unload 加载和卸载库
[lusong@ln02 p2p]$ module list
Currently Loaded Modulefiles:
1) mpich/3.1.3_gcc
[lusong@ln02 p2p]$ module load gcc/5.5.0
[lusong@ln02 p2p]$ module list
Currently Loaded Modulefiles:
1) mpich/3.1.3_gcc 2) gcc/5.5.0
[lusong@ln02 p2p]$ module unload gcc/5.5.0
[lusong@ln02 p2p]$ module list
Currently Loaded Modulefiles:
1) mpich/3.1.3_gcc
[lusong@ln02 p2p]$
当然,每次登陆都要先加载可用的包也是很烦的一件事情,我们可以在修改用户目录下的.bashr
使得用户在每一次登陆,某些命令都被自动执行一遍。如下:
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
alias vi='vim'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# MPI and compilers
#export MKLROOT="/share/soft/intel_2017/mkl"
export MV2_ENABLE_AFFINITY=0 # for MVAPICH2+OpenMP
#export OMP_PLACES=cores
#export OMP_PROC_BIND=spread
#----------- Intel compilers
. /share/soft/intel_2018_update1/bin/compilervars.sh intel64
. /share/soft/intel_2017/bin/compilervars.sh intel64
#----------- MPI
module purge
module load mvapich2
#module load openmpi
export PATH="/soft/Scripts:$PATH"
# phg
# export PHG_MAKEFILE_INC=/soft/phg/phg-0.9.3-mvapich2-20171209/share/phg/Makefile.inc
# export PHG_LIB_DIR=/share/soft/phg/phg-0.9.3-mvapich2-20171209/lib
export PHG_MAKEFILE_INC=/soft/phg/phg-0.9.4-mvapich2-20180902/share/phg/Makefile.inc
export PHG_LIB_DIR=/share/soft/phg/phg-0.9.4-mvapich2-20180902/lib
#myphg
if [ -f "/share/soft/intel_2018/bin/compilervars.sh" ]; then
. /share/soft/intel_2018/bin/compilervars.sh intel64
fi
作业提交
bsub提交方式(大作业)
bsub -q batch -n 8 -e tmp.err -o tmp.out ./FFTParallel
bsub -q batch -n 8 -e tmp.err -o tmp.out -I ./FFTParallel
-q表示选择运行程序的队列,使用bqueues可以查看可用队列。 可以查看tmp标准输出和错误输出来查看程序运行情况,文件以追加的形式追加到已有文件末尾。一般程序运行完了或者中断才会产生这两个文件。
-I 表示命令行输出比较干净地输入到tmp文件。
mpirun交互式提交方式(小程序或者调试用)
mpirun -np 2 ./FFTParallel
-I选项交互式提交方式(调试用)
bsub -q batch -n 8 -I ./FFTParallel
当然,以上命令作为命令行命令,当然可以添加到Makefile文件中。bsub的命令都是以b+英文单词的方式提供。比如bqueues、bjobs、bkill、bpeek等,不需要专门记,想想要干嘛,在b后面加上你想要干的事情即可。