SDYU UED提醒您:检测到您在用IE老版本浏览器或360兼容模式访问,为帮助您获得更好的体验,推荐使用chrome,搜狗,IE11等浏览器或更换至360极速模式
文档手册
机群用户手册V2014吉林大学高性计算中心
提交部门:高性能计算中心        提交时间:2022-06-23        浏览次数:

一、 系统硬件信息

中心的高性能计算平台具有高性能、高密度、绿色节能等优点。系统规模根据校内用户调研结果按需而定,综合平衡各项性能,具有很高的性价比和适用性。

吉林大学高性能计算平台

计算节点

双子刀片节点1:每刀片节点含两台独立的服务器,每服务器2颗Intel Xeon X5650 CPU,24GB ECC内存

双子刀片节点2:每刀片节点含两台独立的服务器,每服务器2颗Intel Xeon X5650 CPU,48GB ECC内存

刀片节点3:每节点2颗Intel Xeon   E5-2692V2,64GB ECC内存

胖节点:每节点含4颗Intel Xeon E7-8837 CPU,96GB ECC内存,8*1T SATA硬盘

登录节点

登录节点,每节点2颗 Intel Xeon X5650 CPU,24GB ECC内存

计算网络

Mellanox QDR Infiniband(40Gb)

操作系统

RedHat Linux AS 5.5+6.3 x86_64版本

文件系统

LUSTRE并行文件系统1.8.5+2.3

作业调度系统

Platform LSF HPC 7 Update 6

1. 环境变量脚本文件
二、 系统环境设置

环境变量设置脚本文件的用途是告诉系统相关的应用程序及其lib文件所在的位置。


/data1/env下的文件列表

文件名

用途

environments

intel   11的编译器和mkl以及intel MPI3.x的环境变量设置

intel4

intel   11的编译器和mkl以及intel MPI4.x的环境变量设置

gnu47

gnu4.7.3编译器环境变量设置

gnu48

gnu4.8.2编译器环境变量设置

icoMPIler11

intel的cfotran编译器11.1,只含编译器环境变量设置

icoMPIler13

intel的cfotran编译器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

intel   MPI 版本3.2.2.006

iMPI4.0

intel   MPI 版本4.0.3.008

iMPI4.1

intel   MPI 版本4.1.1.036

mkl10

intel   mkl 版本10.0.3.020

mkl11

intel   mkl 版本11.1.072

mkl13

intel   mkl 版本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

GNU 4.1.2

gcc

g++

gfortran

gfortran

GNU 4.4.0

gcc44

g++44

gfortran44

gfortran44

GNU 4.7.3

gcc

g++

gfortran

gfortran

GNU 4.8.2

gcc

g++

gfortran

gfortran

Intel

icc

icpc

ifort

ifort

OpenMPI

mpicc

mpicxx

mpif77

mpif90

红色标记的版本在使用之前需要设置环境变量。

eg.source /data1/env/gnu4.8

source /data1/env/icoMPIler13

某些时候需要设置不同的编译器,intel编译器使用不同版本之前需要source一下对应的环境变量文件,gnu4.1和4.4编译器直接部署到系统/usr/bin下,因此直接引用即可,但是不同的版本有不同版本的后缀。

例如:

./configure CC=icc CXX=icpc F77=ifort FC=ifort

./configure CC=gcc44 CXX=g++44 F77=gfortran44 FC= gfortran44

3. 数学库

注意设置LD_LIBRARY_PATH和PATH。

PATH设置可执行文件的路径搜索顺序。

LD_LIBRARY_PATH设置静态库和动态链接库的路径搜索顺序。.a .so

据厂商测试,最新版本的intel mkl的效率超过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=Intel g=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.0   castep作业提交脚本模板


ms.lsf

ms   castep dmol3 discover作业提交脚本模板


namd.lsf

namd   作业提交脚本模板


normal-parallel.lsf

常规并行作业使用normal队列提交脚本模板


pwscf.lsf

pwscf作业提交脚本模板


siesta.lsf

siesta作业提交脚本模板


vasp.lsf

vasp作业提交脚本模板

2. 应用软件部署

开源软件统一部署,如果需要特别编译参数请事先沟通,可以为特殊需求单独生成可执行文件。商业软件可以选择统一部署和自行部署。如需要统一部署商业软件,请上传安装包和licenses文件,并提供销售商技术支持电话。

商业软件请务必确保自己拥有合法授权,否则发表论文的时候会遇到版权问题。 如有疑问请详询系统管理员。

目前我们知道的商业授权有:限定特定几个人的,要求单位内部使用的,限定通讯地址的。



四、 LSF常用命令

#BSUB脚本常用参数:

#BSUB   -q vasp

作业使用的队列queue

#BSUB   -app vasp

作业使用的应用程序

#BSUB   -a intelMPI

作业使用的MPI

#BSUB   -J MYJOBNAME

作业名

#BSUB   -n 12

作业使用的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 “c1b2 c1b3 c1b4”

在指定节点内选择机器运行作业

Mpirun.lsf   path/vasp.5.2

MPI并行

dos2unix   *

把当前目录下所有文本文件的格式从dos格式转换为unix格式





bsub < 脚本文件名 提交作业

bjobs 查看自己的所有运行任务情况;说明:输入bjobs后,会列出当前用户正在运行的所有作业,最左边一列数字是每个作业的JOBID,一些其他命令使用的时候需要调用这个JOBID。

bjobs -l 查看所有运行任务的详细情况

bjobs -l JOBID 查看JOBID这个任务的详细情况

bpeek JOBID 查看某任务屏幕输出

bkill JOBID 终止某任务运行

bkill JOBID1 JOBID2 JOBID3 终止多个任务运行

bstop JOBID 临时挂起某个作业,为其它作业腾出计算资源

bresume JOBID 恢复由bstop挂起的作业

btop JOBID 把指定作业放到队列的最前面

bbot JOBID 把指定作业放到队列的最后面


五、 常用linux命令

& 后台执行作业标示符

nohup如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂断的意思( no hang up)。

nohup command & 在后台运行一个不挂断的作业

ls 列出当前目录下的所有内容

ll ls –l 每行列一个文件或目录,显示更详细的信息

cd 目录名 进入指定的目录名

cd 进入自己的home目录

mkdir 目录名 在当前目录下创建一个目录

rmdir 目录名 删除当前目录下的一个空目录

rm 文件名 删除一个文件

rm –Rf 目录名 强制删除一个目录,包括目录下的文件和子目录

mv src dest 把src下的内容移动到dest

cp src dest 把src复制到dest

cp /data1/scripts/vasp.lsf . 把/data1/scripts下的vasp.lsf复制到当前目录下

export A=123 给变量A赋值123

echo $A 显示变量A的值

man ls 显示命令ls的帮助,更简单的办法是用ls –-help

source 文件名 把一个文件的内容当成是shell来执行。

. 作为目录的一部分的时候表示当前目录,作为操作符的在bash里面等同于source

.. 作为目录的一部分,代表当前目录的父目录。

vi 文本文件名linux下的文本编辑器,很强大。vimvi更强大。

dos2unix 转换dos/win平台下的文本文件到unix格式

ccmake 编译源码前的配置工具

configure编译源码前的配置工具

make 编译源码

make install 安装源码

chmod u+x 文件名 赋予文件可执行权限

chmod –R 755 目录名 共享目录或文件,其他人可以查看和执行

chmod –R 700 目录名 防止别人看你的数据和应用程序

pwd 显示当前目录的全路径

which 文件名 查找一个可执行文件是否在搜索路径里面,前提是你有执行这个文件的权限。

cat文本文件名 查看文本文件内容

more文本文件名 查看文本文件,每屏暂停一下,等同于cat 文本文件名 | more

tail 文本文件名 查看文件的末尾10行

tail 文本文件名 –n 20查看文件的末尾20行

| 管道操作符,把前面命令的输出当作后面命令的输入

< > 都是重定向操作符,分别用于重定向标准输入和标准输出。

linux下是大小写敏感的,请特别注意!!!

六、 如何编译软件

1. 选定编译软件,设置对应的环境变量

a) GNU编译环境

系统里面已经部署,使用GNU编译环境,免费软件。

source /data1/env/gnu4.8

b) Intel编译环境

系统里面已经部署,使用Intel编译器,收费软件。

source /data1/env/icoMPIler13

c) PGI编译环境

需要自行部署,使用PGI编译器,收费软件。

d) OpenMPI编译环境

OpenMPI自身没有编译器,源码安装OpenMPI的时候使用那个编译器来编译安装的,就调用那个编译器。系统部署有对应Intel CoMPIler和GNU CoMPIler两种

source /data1/env/OpenMPI1.6_intel

source /data1/env/OpenMPI1.6_gnu

执行以上某个环境变量后可以通过oMPI_info | more 查看OpenMPI的相关信息,包括编译器信息

一般来说在x86_64cpu的平台上, IntelMPI编译器编译速度最慢,但是编译生成的代码执行效率最高,特别是数值运算。目前中心的硬件环境只支持运行在CPU上的并行,不支持GPU和MIC。

2. 编译软件

a) 自动配置软件

configurecmake

make

make install

b) 手动修改配置文件,vasp

vi makefile

vi makefile.inc

make

make install

c) 手动编译

icc -o hello.o hello.c

icpc -o test1.o test1.cxx

ifort -o test2.o test2.f77

ifort -o test3.o test3.f

七、 如何开始计算

1. 选定要使用的应用软件

系统中已经部署的开源软件可以直接使用,没有部署的软件请自行部署或联系系统管理员协助部署。商业软件请务必确保自己具有合法授权才能使用。

部署商业软件请务必确认是适合linux和x86_64平台的版本,其他平台的软件版本无法部署在我们的计算平台。

2. 编制作业脚本

使用ssh客户端软件如putty等登录到login4或login5节点,在HOME目录的workplace子目录下面合适的位置建立作业子目录,进入此作业目录,使用vivim软件编写作业脚本。

可以从/data1/scripts里面彩电合适的脚本模板,或者请系统管理员帮助,或者自己编制作业脚本。建议命名作业脚本文件的时候使用.lsf扩展名,虽然作业脚本文件怎么命名都可以。

作业脚本里面一般有三类指令:

a) 作业调度指令:以# BSUB 开头的行,是lsf作业调度软件的指令,用于告诉作业调度系统你需要的资源和作业的属性。

a)#BSUB -q vasp #使用vasp队列(queue)

a)#BSUB -app vasp #应用程序是vasp

a)#BSUB -a intelMPI #使用intelMPI

#BSUB -a OpenMPI #使用OpenMPI

#BSUB -n 12 #使用12核进行计算

#BSUB -J MYJOBNAME #设置作业名

#BSUB -o %J.output #作业输出文件,%J是作业ID

b) 作业预备指令:包括执行必要的环境变量设置,如MPI的环境变量设置,应用程序可执行文件及库文件所在的路径信息等。

b)export g09root=/data1/soft/gaussian09 #设置应用程序路径

b)export MSVERSION=5.0  #设置作业环境变量

b)dos2unix ./*  #担心文本文件格式错误

export OMP_NUM_THREADS=n  #设置OpenMP并行的线程数

#设置可执行文件的搜索路径

export PATH=$g09root/bin:$PATH

#设置库文件的搜索路径

export LD_LIBRARY_PATH=$g09root/lib:$LD_LIBRARY_PATH

#IntelMPI

source /data1/env/iMPI4.1

#OpenMPI

source /data1/env/OpenMPI1.6_intel

c) 作业执行命令,与具体使用的应用程序并行模式有关

c)gaussian03 H10-C60H50-2.com #OpenMP并行

c)mpirun.lsf ./vasp.5.2 #MPI并行

c)mpirun -lsb_mcpu_hosts -e "MPI_REMSH=rsh" $app $basename #在作业执行命令里面包含环境变量设置

mpirun.lsf mdrun_mpid -s topol.tpr #包含输入文件

3. 提交作业

借助合适的软件生成作业输入文件。

使用winscp或SSH Secure File Transfer Client等软件上传作业数据文件。

在作业子目录下提交作业。

bsub < myjob.lsf

3275


如上图所示,作业的jobid就是484813

4. 查看作业输出

bpeek 484813

4DF9

如上图所示。

5. 查看作业状态

1E7D

bjobs

JOBID  作业号

USER  用户ID

STAT  作业状态,一般有如下几种状态:

PEND 作业排队中

PSUSP 作业在排队状态被bstop挂起

RUN 作业正常运行中

USUSP 作业运行状态被bstop

SSUSP 作业运行状态因为不满足运行条件被系统自动挂起

DONE 作业正常完成,退出码为0

EXIT 作业非正常退出

UNKWN 作业状态异常,多是作业节点lsf进程死亡或死机

WAIT 批量提交作业包在运行中,这个作业处于等待状态

ZOMBI bkill掉一个作业节点UNKWN的作业

QUEUE  作业队列名

FROM_HOST  提交作业的节点

EXEC_HOST  计算节点名称及每个节点上执行的核数

JOB_NAME  作业名称

SUBMIT_TIME提交作业的时间


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.lsf mdrun_mpid -s topol.tpr

OpenMP并行的作业一般是直接运行你的应用程序,这种程序一般不跨节点运行。

g03 H10-C60H50-2.com

5. 系统目录结构

866F

每个用户有两个空间:

HOME

目录空间

用户登录后就在这个目录,每个用户200GB,用户自行部署软件使用

执行cd命令或cd ~命令都可以来到这里

workplace

目录空间

公用空间,并行高速缓存空间,定期清理

执行cd ~/workplace即可来到这里

提交作业的时候一定要在workplace目录下,还要注意这里面的计算结果要及时下载到你自己的机器里面去,每个假期中心会根据lustre文件系统的表现决定是否重新初始化整个lustre系统,这时候没有及时清理数据的用户会丢失数据。

cd /data1/intel

各种编译器和intel mkl

cd /data1/soft

数学库和应用软件

cd /data1/scripts

常用的应用程序脚本模板文件

cd /data1/env

编译器、MPI、mkl的环境变量设置脚本










公共部署的应用程序和脚本等资源都在data1里面,这些目录是系统动态挂载的,想进入这些目录的时候请直接进入具体的子目录,在/data1下用ls很可能是看不到任何子目录的。


九、 SSH软件的使用

1. 登录

用户在windows或Linux下,使用客户端,通过ssh协议来链接。使用的客户端大家登录login4.hpcc.jlu.edu.cn.

文本界面登陆软件:SSH Secure Shell Client、putty。

外网用户登录:login5.hpcc.jlu.edu.cn,端口22222。

内网用户登录:login4.hpcc.jlu.edu.cn,端口222。


输入服务器 IP地址或域名:login4.hpcc.jlu.edu.cn

用户名:***** 密码:******。

即可登陆服务器终端进行命令操作。


外网用户如果不是教育网用户和国外用户,请使用VPN拨号进入吉林大学校园网,然后正常登录服务器即可。VPN使用指南请看vpn.jlu.edu.cn,VPN服务由吉林大学网络中心提供,仅限校内教工使用。

文件传输

使用winscp或SSH Secure File Transfer Client。

外网用户登录:login5.hpcc.jlu.edu.cn,端口22222。

内网用户登录:login4.hpcc.jlu.edu.cn,端口222。

2. 作业提交和软件使用

用户登陆后,用户可以在登录节点查看目录、编辑文件、查看作业、查看资源使用情况等。

但是用户不允许在登录节点运行计算程序或前后处理程序,只能以作业形式向作业调度系统提交,由作业调度软件安排程序的具体执行节点。登录节点功能为管理用户登录等事务,严禁在登录节点上直接运行程序,会造成该节点很忙,影响大家的使用。

3. PUTTY使用指南

通过SSH方式连接登录服务器,用户可以使用命令行方式向lsf提交作业并查看作业相关信息。较小的ssh客户端有putty,绿色软件不需要安装。下载putty软件(如果是压缩文件请解压),双击图标运行程序。在吉林大学高性能计算中心QQ群的群共享里面可以下载相关软件和其他的文档。群号115060597。

45DE


2、显示如下界面。在hostname位置填写登录服务器IP地址。

18FDA

3、首次登录会出现以下对话框,点击是(Y)。

1C8DF

4、登录界面如下,输入在高性能计算中心申请的帐号,回车后输入密码,就正常登录到系统中了。

1F74

5、现在可以运行作业相关的命令或linux命令了。

登录进来的目录就是你的HOME目录,用cd或cd ~命令可以回到你的HOME目录。HOME目录下的workplace目录就是你计算用的目录。

如果需要在HOME目录里面安装软件,请建立子目录。如果要计算作业请在workplace里面建立子目录。

如果账号多人共享,良好的习惯是分别在HOME目录和workplace里面建立每个人姓名缩写的子目录,然后每个人只在自己的子目录里面操作。




十、 常用的资源站点


GNU编译器  http://gcc.gnu.org/

Intel编译器  http://software.intel.com/en-us/intel-coMPIlers/

PGI编译器 http://www.pgroup.com/

CUDA  http://www.nvidia.cn/object/cuda-cn.html

OpenMP   http://OpenMP.org/wp/

mpich  http://www.mpich.org/

mvapich http://mvapich.cse.ohio-state.edu/

OpenMPI   http://www.Open-MPI.org/

FFTW http://www.fftw.org/

GOTOBLAS2 https://www.tacc.utexas.edu/tacc-projects/gotoblas2

LAPACK  http://www.netlib.org/lapack/

CSDN论坛CUDA http://bbs.csdn.net/forums/CUDA/

小木虫 http://emuch.net/




十一、 中心联系方式

办公电话:85155256

传真电话:85155257

单位主页:http://hpcc.jlu.edu.cn

服务邮箱:hpccadmin@jlu.edu.cn

QQ群号:115060597

单位位置:吉林大学前卫南校区计算机楼b201

通讯地址:长春市前进大街2699号计算机楼b201

邮政编码:130012