中心的高性能计算平台具有高性能、高密度、绿色节能等优点。系统规模根据校内用户调研结果按需而定,综合平衡各项性能,具有很高的性价比和适用性。
吉林大学高性能计算平台
计算节点
双子刀片节点1:每刀片节点含两台独立的服务器,每服务器2颗IntelXeonX5650CPU,24GBECC内存
双子刀片节点2:每刀片节点含两台独立的服务器,每服务器2颗IntelXeonX5650CPU,48GBECC内存
刀片节点3:每节点2颗IntelXeonE5-2692V2,64GBECC内存
胖节点:每节点含4颗IntelXeonE7-8837CPU,96GBECC内存,8*1TSATA硬盘
计算网络
MellanoxQDRInfiniband(40Gb)
操作系统
RedHatLinuxAS5.5+6.3x86_64版本
文件系统
LUSTRE并行文件系统1.8.5+2.3
作业调度系统
PlatformLSFHPC7Update6
1.环境变量脚本文件二、系统环境设置
/data1/env下的文件列表
文件名
用途
environments
intel11的编译器和mkl以及intelMPI3.x的环境变量设置
intel4
intel11的编译器和mkl以及intelMPI4.x的环境变量设置
gnu47
gnu4.7.3编译器环境变量设置
gnu48
gnu4.8.2编译器环境变量设置
icoMPIler11
intel的c和fotran编译器11.1,只含编译器环境变量设置
icoMPIler13
intel的c和fotran编译器13.1,含编译器环境变量设置和mkl13.1的环境变量设置
OpenMPI1.6_gnu
OpenMPI1.6.5使用gnu4.8,含编译器和MPI环境变量设置
OpenMPI1.6_intel
OpenMPI1.6.5使用icoMPIler13,含编译器和MPI环境变量设置
OpenMPI1.8_intel
OpenMPI1.8使用icoMPIler13,含编译器和MPI环境变量设置
iMPI3.2
intelMPI版本3.2.2.006
iMPI4.0
intelMPI版本4.0.3.008
iMPI4.1
intelMPI版本4.1.1.036
mkl10
intelmkl版本10.0.3.020
mkl11
intelmkl版本11.1.072
mkl13
intelmkl版本13.1.1
fftw3.3.4
数学库fftw版本3.3.4,编译时需要,含单双精度
2.编译器设置
当需要部署应用程序的时候,推荐使用源码包在本地编译部署,这样优化等级比较高的时候应用程序的执行效率会比较高。而且可以方便的修改编译参数和源码的代码。
主流的C/C++编译器包括MicroSoft的CL、GNU的gcc、Intel的icc、PGI的pgcc及Codegear的bcc(原来属于Borland公司)。Windows上使用最多的自然是cl,而在更广阔的平台上,gcc则是C/C++编译器的首选。大多数情况下,x86服务器使用intel编译器会获得更好的数值计算速度。
高版本的编译器校验会更严格,因此有些时候用最新版本编译器无法通过的源码包尝试换一个较低版本的反而会编译成功。一般而言,应用程序使用的编程规范会滞后于编译器的更新。因此如果不是追求新版本软件的新特性支持,不要盲目追求高版本软件。
编译环境
CC
CXX
F77
FC
GNU4.1.2
gcc
g++
gfortran
GNU4.4.0
gcc44
g++44
gfortran44
GNU4.7.3
GNU4.8.2
Intel
icc
icpc
ifort
OpenMPI
mpicc
mpicxx
mpif77
mpif90
红色标记的版本在使用之前需要设置环境变量。
eg.source/data1/env/gnu4.8
source/data1/env/icoMPIler13
某些时候需要设置不同的编译器,intel编译器使用不同版本之前需要source一下对应的环境变量文件,gnu4.1和4.4编译器直接部署到系统/usr/bin下,因此直接引用即可,但是不同的版本有不同版本的后缀。
例如:
./configureCC=iccCXX=icpcF77=ifortFC=ifort
./configureCC=gcc44CXX=g++44F77=gfortran44FC=gfortran44
3.数学库
注意设置LD_LIBRARY_PATH和PATH。
PATH设置可执行文件的路径搜索顺序。
LD_LIBRARY_PATH设置静态库和动态链接库的路径搜索顺序。.a.so
据厂商测试,最新版本的intelmkl的效率超过gotoblas2和lapack。
数学库
位置
Fftw3.0.1
/data1/soft/libs/fftw-3.0.1
Fftw3.1.2
/data1/soft/fftw3.1.2
Fftw3.2.2
/data1/soft/fftw.3.2.2
Fftw3.3.4
/data1/soft/fftw3.3.4
Gotoblas
/data1/soft/libs/gotoblas
Gotoblas2
/data1/soft/gotoblas2-1.1.3子目录为编译器版本
Lapack3.4.2
/data1/soft/lapack/3.4.2子目录为编译器版本
Lapack3.5.0
/data1/soft/lapack/3.5.0子目录为编译器版本
mkl10.0.3.020
/data1/intel/mkl/10.0.3.020
mkl11.1.072
/data1/intel/CoMPIler/11.1/072/mkl
mkl13.1.1
/data1/intel/composer_xe_2013.3.163/mkl
子目录首字母:i=Intelg=GNU
三、应用软件信息
1.作业脚本模板
使用gromacs的脚本无需用户另行设置环境变量,脚本内直接包含,避免同时使用多个版本的时候会出现冲突。
当多个人共用一个用户帐号的时候,推荐大家把必要的环境变量设置写到作业提交脚本里面去,避免同时部署多个版本的软件导致冲突。
/data1/scripts下的文件列表
abaqus.lsf
abaqus作业提交脚本模板
gaussian.lsf
gussian作业提交脚本模板
gromacs454float.lsf
gromacs4.5.4单精度作业提交脚本模板
gromacs465double.lsf
gromacs4.6.5双精度作业提交脚本模板
gromacs465float.lsf
gromacs4.6.5单精度作业提交脚本模板
molpro.lsf
molpro作业提交脚本模板
ms6.lsf
ms6.0castep作业提交脚本模板
ms.lsf
mscastepdmol3discover作业提交脚本模板
namd.lsf
namd作业提交脚本模板
normal-parallel.lsf
常规并行作业使用normal队列提交脚本模板
pwscf.lsf
pwscf作业提交脚本模板
siesta.lsf
siesta作业提交脚本模板
vasp.lsf
vasp作业提交脚本模板
2.应用软件部署
四、LSF常用命令
#BSUB脚本常用参数:
#BSUB-qvasp
作业使用的队列queue
#BSUB-appvasp
作业使用的应用程序
#BSUB-aintelMPI
作业使用的MPI
#BSUB-JMYJOBNAME
作业名
#BSUB-n12
作业使用的cpu核数cores
#BSUB-R"span[ptile=12]"
当需要跨节点计算的时候,指定每个节点使用的核数
#BSUB-R"cu[usablecuslots=12]"
每12核当作一个计算单元,以12核为单位进行资源预留
#BSUB-R"[hosts=1]"
确保作业不跨节点计算,只使用一个host里面的cpu核
#BSUB-o%J.vasp-output.jlu-hpcc
作业输出文件,一般用于排错
#BSUB-x
独占作业节点,即使上面还有空核也不允许其他作业使用
#BSUB–m“c1b2c1b3c1b4”
在指定节点内选择机器运行作业
Mpirun.lsfpath/vasp.5.2
MPI并行
dos2unix*
把当前目录下所有文本文件的格式从dos格式转换为unix格式
bsub<脚本文件名提交作业
bjobs查看自己的所有运行任务情况;说明:输入bjobs后,会列出当前用户正在运行的所有作业,最左边一列数字是每个作业的JOBID,一些其他命令使用的时候需要调用这个JOBID。
bjobs-l查看所有运行任务的详细情况
bjobs-lJOBID查看JOBID这个任务的详细情况
bpeekJOBID查看某任务屏幕输出
bkillJOBID终止某任务运行
bkillJOBID1JOBID2JOBID3终止多个任务运行
bstopJOBID临时挂起某个作业,为其它作业腾出计算资源
bresumeJOBID恢复由bstop挂起的作业
btopJOBID把指定作业放到队列的最前面
bbotJOBID把指定作业放到队列的最后面
五、常用linux命令
&后台执行作业标示符
nohup如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂断的意思(nohangup)。
nohupcommand&在后台运行一个不挂断的作业
ls列出当前目录下的所有内容
ll同ls–l每行列一个文件或目录,显示更详细的信息
cd目录名进入指定的目录名
cd进入自己的home目录
mkdir目录名在当前目录下创建一个目录
rmdir目录名删除当前目录下的一个空目录
rm文件名删除一个文件
rm–Rf目录名强制删除一个目录,包括目录下的文件和子目录
mvsrcdest把src下的内容移动到dest
cpsrcdest把src复制到dest
cp/data1/scripts/vasp.lsf.把/data1/scripts下的vasp.lsf复制到当前目录下
exportA=123给变量A赋值123
echo$A显示变量A的值
manls显示命令ls的帮助,更简单的办法是用ls–-help
source文件名把一个文件的内容当成是shell来执行。
.作为目录的一部分的时候表示当前目录,作为操作符的在bash里面等同于source
..作为目录的一部分,代表当前目录的父目录。
vi文本文件名linux下的文本编辑器,很强大。vim比vi更强大。
dos2unix转换dos/win平台下的文本文件到unix格式
ccmake编译源码前的配置工具
configure编译源码前的配置工具
make编译源码
makeinstall安装源码
chmodu+x文件名赋予文件可执行权限
chmod–R755目录名共享目录或文件,其他人可以查看和执行
chmod–R700目录名防止别人看你的数据和应用程序
pwd显示当前目录的全路径
which文件名查找一个可执行文件是否在搜索路径里面,前提是你有执行这个文件的权限。
cat文本文件名查看文本文件内容
more文本文件名查看文本文件,每屏暂停一下,等同于cat文本文件名|more
tail文本文件名查看文件的末尾10行
tail文本文件名–n20查看文件的末尾20行
|管道操作符,把前面命令的输出当作后面命令的输入
<>都是重定向操作符,分别用于重定向标准输入和标准输出。
linux下是大小写敏感的,请特别注意!!!
六、如何编译软件
1.选定编译软件,设置对应的环境变量
a)GNU编译环境
系统里面已经部署,使用GNU编译环境,免费软件。
source/data1/env/gnu4.8
b)Intel编译环境
系统里面已经部署,使用Intel编译器,收费软件。
c)PGI编译环境
需要自行部署,使用PGI编译器,收费软件。
d)OpenMPI编译环境
OpenMPI自身没有编译器,源码安装OpenMPI的时候使用那个编译器来编译安装的,就调用那个编译器。系统部署有对应IntelCoMPIler和GNUCoMPIler两种
source/data1/env/OpenMPI1.6_intel
source/data1/env/OpenMPI1.6_gnu
一般来说在x86_64cpu的平台上,IntelMPI编译器编译速度最慢,但是编译生成的代码执行效率最高,特别是数值运算。目前中心的硬件环境只支持运行在CPU上的并行,不支持GPU和MIC。
2.编译软件
a)自动配置软件
configure或cmake
make
makeinstall
b)手动修改配置文件,vasp
vimakefile
vimakefile.inc
c)手动编译
icc-ohello.ohello.c
icpc-otest1.otest1.cxx
ifort-otest2.otest2.f77
ifort-otest3.otest3.f
七、如何开始计算
1.选定要使用的应用软件
部署商业软件请务必确认是适合linux和x86_64平台的版本,其他平台的软件版本无法部署在我们的计算平台。
2.编制作业脚本
可以从/data1/scripts里面彩电合适的脚本模板,或者请系统管理员帮助,或者自己编制作业脚本。建议命名作业脚本文件的时候使用.lsf扩展名,虽然作业脚本文件怎么命名都可以。
作业脚本里面一般有三类指令:
a)作业调度指令:以#BSUB开头的行,是lsf作业调度软件的指令,用于告诉作业调度系统你需要的资源和作业的属性。
a)#BSUB-qvasp#使用vasp队列(queue)
a)#BSUB-appvasp#应用程序是vasp
a)#BSUB-aintelMPI#使用intelMPI
#BSUB-aOpenMPI#使用OpenMPI
#BSUB-n12#使用12核进行计算
#BSUB-JMYJOBNAME#设置作业名
#BSUB-o%J.output#作业输出文件,%J是作业ID
b)作业预备指令:包括执行必要的环境变量设置,如MPI的环境变量设置,应用程序可执行文件及库文件所在的路径信息等。
b)exportg09root=/data1/soft/gaussian09#设置应用程序路径
b)exportMSVERSION=5.0#设置作业环境变量
b)dos2unix./*#担心文本文件格式错误
exportOMP_NUM_THREADS=n#设置OpenMP并行的线程数
#设置可执行文件的搜索路径
exportPATH=$g09root/bin:$PATH
#设置库文件的搜索路径
exportLD_LIBRARY_PATH=$g09root/lib:$LD_LIBRARY_PATH
#IntelMPI
source/data1/env/iMPI4.1
#OpenMPI
c)作业执行命令,与具体使用的应用程序并行模式有关
c)gaussian03H10-C60H50-2.com#OpenMP并行
c)mpirun.lsf./vasp.5.2#MPI并行
c)mpirun-lsb_mcpu_hosts-e"MPI_REMSH=rsh"$app$basename#在作业执行命令里面包含环境变量设置
mpirun.lsfmdrun_mpid-stopol.tpr#包含输入文件
3.提交作业
借助合适的软件生成作业输入文件。
使用winscp或SSHSecureFileTransferClient等软件上传作业数据文件。
在作业子目录下提交作业。
bsub 如上图所示,作业的jobid就是484813 4.查看作业输出 bpeek484813 如上图所示。 5.查看作业状态 bjobs JOBID作业号 USER用户ID STAT作业状态,一般有如下几种状态: PEND作业排队中 PSUSP作业在排队状态被bstop挂起 RUN作业正常运行中 USUSP作业运行状态被bstop SSUSP作业运行状态因为不满足运行条件被系统自动挂起 DONE作业正常完成,退出码为0 EXIT作业非正常退出 UNKWN作业状态异常,多是作业节点lsf进程死亡或死机 WAIT批量提交作业包在运行中,这个作业处于等待状态 ZOMBIbkill掉一个作业节点UNKWN的作业 QUEUE作业队列名 FROM_HOST提交作业的节点 EXEC_HOST计算节点名称及每个节点上执行的核数 JOB_NAME作业名称 bjobs-d可以查看最近完成或退出的作业。 如果作业提交成功30s以后用bjobs看不到,就用这个命令查看一下作业是否异常退出EXIT,正常结束的作业状态是DONE。然后找这个作业的日志文件,根据里面的错误信息进行纠错,或寻求系统管理员获取技术支持。 八、要注意的一些问题 1.Dos/Windows和unix/linux的文本格式不同 换行符 文件结束符 unix ^J LF 0A ^D 04 windows/dos ^M^J CR+LF 0D+0A ^Z 1A 在win平台下转换成unix格式的文本文件,通过ftp上传的时候最好使用二进制方式上传,避免出现格式问题。 也可以在linux使用dos2unix命令来转换文本文件的格式。 linux里面常用的文本编辑器是vi或vim,习惯了windows的老师可能很不习惯,但是熟悉以后会很方便。 2.提交作业有问题 在提交作业的时候系统会显示你一个作业号jobid(一般是6位数字),查看提交作业的目录下是否有一个以作业号开始的文件,然后联系管理员;或者用bjobs–d查看作业退出的原因。 #BSUB-o%J.gromacs-output.jlu-hpcc 作业提交脚本有上面这样类似的一行非常重要,这是在作业出现问题的时候提供重要信息的记录文件,可以帮助系统管理员定位故障。 3.作业排队的原因 提交作业的参数有问题,参数前后矛盾,或没有足够的空余CPU核。还有些时候是提交作业的规模过大,或计算过程中出现重大错误,导致计算节点死机或导致计算节点剩余的内存不足,不能满足作业调度的条件。还要注意作业脚本里面的“#BSUB”前面的“#”是不能去掉的,连在一起的这五个符号是保留字,去了#会出错。 span[ptile=12]和[hosts=1]不要一起使用,跨节点计算一般会指定每节点运行的核数span[ptile=12],使用单节点内的核数进行计算的时候才需要[hosts=1]。 例如:在一个只有12核的节点内想进行24核的计算在逻辑上是错误的,作业也就无法运行了,只能排队等候。 4.经常会用到的并行模式 在lsf调度软件环境里,MPI并行的作业一般都是以Mpirun.lsf来引导你的应用程序 mpirun.lsfmdrun_mpid-stopol.tpr OpenMP并行的作业一般是直接运行你的应用程序,这种程序一般不跨节点运行。 g03H10-C60H50-2.com 5.系统目录结构 每个用户有两个空间: HOME 目录空间 执行cd命令或cd~命令都可以来到这里 workplace 公用空间,并行高速缓存空间,定期清理 执行cd~/workplace即可来到这里 提交作业的时候一定要在workplace目录下,还要注意这里面的计算结果要及时下载到你自己的机器里面去,每个假期中心会根据lustre文件系统的表现决定是否重新初始化整个lustre系统,这时候没有及时清理数据的用户会丢失数据。 cd/data1/intel 各种编译器和intelmkl cd/data1/soft 数学库和应用软件 cd/data1/scripts 常用的应用程序脚本模板文件 cd/data1/env 编译器、MPI、mkl的环境变量设置脚本 公共部署的应用程序和脚本等资源都在data1里面,这些目录是系统动态挂载的,想进入这些目录的时候请直接进入具体的子目录,在/data1下用ls很可能是看不到任何子目录的。 九、SSH软件的使用 文本界面登陆软件:SSHSecureShellClient、putty。 输入服务器IP地址或域名:login4.hpcc.jlu.edu.cn 用户名:*****密码:******。 即可登陆服务器终端进行命令操作。 文件传输 使用winscp或SSHSecureFileTransferClient。 2.作业提交和软件使用 3.PUTTY使用指南 如果需要在HOME目录里面安装软件,请建立子目录。如果要计算作业请在workplace里面建立子目录。 如果账号多人共享,良好的习惯是分别在HOME目录和workplace里面建立每个人姓名缩写的子目录,然后每个人只在自己的子目录里面操作。 十、常用的资源站点 十一、中心联系方式 单位位置:吉林大学前卫南校区计算机楼b201 通讯地址:长春市前进大街2699号计算机楼b201 邮政编码:130012 地址:吉林省长春市前进大街2699号信息管理和技术维护:吉林大学大数据和网络管理中心