云计算事业部高性能集群使用手册
-----------------------------------------
1 系统及其使用简介
1.1 集群结构
- 登陆节点:用于作业提交,作业查询
- 编译节点:仅提供编译服务、安装应用程序服务和测试代码。无法联网和提交作业
- ftp节点:数据传输
- 计算节点:用于实际的高性能计算
- 胖节点:内存较高、核数较多,属于特殊的计算节点
1.2 注意事项
- 登陆节点对用户可使用的内存和进程数等都进行了限制,用户不可以在登陆节点做编译和大文件的解压、传输等操作(因为运算会导致登陆节点变慢,进而妨碍到其他用户的登陆)。尤其数据传输请通过ftp节点完成。
- 编译节点需用户先登录登陆节点后,才能切换到编译节点,切换命令:ssh v3-build1
- 用户无法登录计算节点,仅通过提交任务的方式使用计算节点
- 大量文件的拷贝请通过提交作业完成
1.3 网络地址
节点名称 | IP地址 | 端口号 |
---|---|---|
登录节点 | 124.127.245.49 | 22 |
ftp节点 | 114.251.219.74 | 21 |
1.4 软件安装
登陆节点,编译节点和各计算节点均安装了 Suse Enterprise Linux 11.1 操作系统,各计算节点和编译节点均安装了MPI库和编译器及部分常用软件。
由于没有root权限,推荐使用conda进行安装软件:
- conda软件公共位置:/share/software/anaconda/anaconda3_py37/
echo PATH=$PATH:/share/software/anaconda/anaconda3_py37/bin >> ~/.bashrc
source ~/.bashrc
- 推荐仅使用计算中心本地源,本地源会不定时更新
conda config --add channels http://192.168.30.67:8080/main
conda config --add channels http://192.168.30.67:8080/r
conda config --add channels http://192.168.30.67:8080/bioconda
#此步骤注释掉conda的默认源以加快载入速度
sed -i s/\-\ defaults/\#\-\ defaults/ ~/.condarc
- 以安装RNAseq常用软件为例,conda安装软件运行以下代码
# conda install bioconda软件名
conda install sra-tools fastqc hisat2 samtools htseq
2 LSF作业调度系统
大规模超级计算系统,为了有效利用多处理核心所提供的计算能力,需要一个作业管理系统,统一跟用户交互,接收提交的各类计算任务,合理分配计算资源,将用户作业指派到具体的节点执行。北京市计算中心计算平台使用的作业管理系统是 IBM 的 LSF 作业管理系统,通过 ssh 远程登陆北京市计算中心的集群,然后通过LSF作业管理系统提交作业。
2.1 提交作业
2.1.1 生物信息分析作业提交语法–bsub
- 必选参数
-q 队列名称
-n 调用核数
- 可选参数
-I 交互模式,作业将输出到交互窗口
-m 队列中的节点名称
-o 输出日志文件名称
-e 输出错误日志
%J 用于调用作业号
- 示例
#提交一个查看根目录的命令,返回结果在ls.log
bsub -q bioblade -n 1 -o ls.log "ls /"
2.1.2管理作业和监控作业状态的常用命令
由于用户不能登陆计算节点,无法直接查看作业的进程信息。用户可以通过以下几种方法提交作业和查看作业信息。
- 查看作业状态: bjobs
显示信息分别为:
| 英文显示 | 中文对照 |
| -------- | -------- |
JOBID | 作业号
USER | 用户名
STAT | 作业状态
QUEUE | 队列名
FROM_HOST |提交作业的节点名
EXEC_HOST |执行作业的节点
JOB_NAME | 作业名
SUBMIT_TIME | 提交作业时间
作业状态:RUN 正在执行,PEND 作业被挂起,这种情况常常是因为队列满或者用户已达到其最大使用核数在排队,DONE 作业正常结束,EXIT 作业异常退出(程序运行出错或用户自行杀死)。
bjobs -a 查看所有的作业,包括最近结束的。
bjobs -l 作业号,查看作业的详细信息,包括何时运行,运行目录,执行节点等。
-
删除作业:bkill 作业号
shell # 取消115166号作业 bkill 115166 # 删除当前用户全部任务 bkill 0
-
bqueues 查看队列信息
bqueues 不加参数可以查看全部队列
bqueues 队列名 可以查看队列信息
bqueues –u 用户名 可以查看该用户的队列权限 -
bhosts
bhosts 节点名 可看后台节点信息,该信息主要表明节点是否可以跑新的任务 (状态 ok 表示可加载作业;closed 表示不能加载作业(一般是 cpu 核数已被作业占满,或者被管理员 close);unavail 表示节点未开机或 lsf 进程未启动;unreached 表示 LSF 进程出错,该节点不可用。不指定节点名时会显示所有节点的信息) -
lsload
lsload 节点名 查看后台节点的负载(通常 r15s 反映的是最近 15 秒该节点运行的线程或进程数,如果作业被加载以后,r15s 的值较小
(明显小于该节点运行作业使用的核数),则该节点的作业可能未被正常加载。mem 表示可用的内存。)
- myquota
用于查看当前用户磁盘配额及使用情况
3 远程连接教程
3.1 远程登陆
登陆 IP:124.127.245.49。如果使用 linux 操作系统可在终端下直接 ssh 登陆,例如:ssh username@124.127.245.49 如果使用 windows 操作系统则需要使用 ssh 客户端登陆。常用的 ssh 客户端有 :Putty,下载地址: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html其他的 ssh 客户端有xshell,openssh 等。
以 putty 为例:
- 输入要登陆主机的 IP,选择连接类型 ssh:
- 弹出提示输入密码界面:
- 输入用户帐户密码(密码输入过程不显示任何输入):
- 完成登陆。
3.2 数据下载
可以使用任何 ftp 客户端软件(要支持 sftp),如 filezlia,winscp 等。
以 filezlia 为例(下载地址:https://filezilla-project.org/)为例可以如下设置:
4 常见问题
4.1 如何登录到编译节点?
编译节点为v3-build1,系统为CentOS6.5。在队列执行的任务, 若涉及到编译程序,须在 v3-build1 中执行。编译节点无法上网。
登陆 v3-build1 时,先登录到登陆节点,然后执行 ssh v3-build1 即可。
4.2 登陆后乱码怎么办?
临时解决方法:直接在终端输入 LANG=””,不过开启新的终端时候需要重新输入。永久解决方法:把命令 export LANG=””,添加到~/.profile 文件中,重新登录即可。中文乱码可以在 putty 中设定 translation->UTF-8:
4.3 如何修改登陆密码?
用户得到得到登陆帐号和初始密码后应及时修改。可以使用 passwd 命令直接修改,先输入原密码,再输入两次新密码。输入新密码时不要过于简单。
4.4 如何查看用户可使用的最大 CPU 核数?
使用 busers 命令查看,输出结果如下:
MAX 对应的就是用户可使用的最大 CPU 核数。
4.5 如何查看用户可使用的队列?
开通帐户时业务人员会告知,也可使用命令查看:bqueues -u username(账户名) ,会输出可使用的队列。
4.6 MPI 的路径?
不同的 mpi 库都安装在/usr/mpi/gcc 目录下,进入编译节点,ls /usr/mpi/gcc就可以看到了。
4.7 如何判断自己的程序是并行还是串行程序?
目前,在并行计算领域内,主要的并行编程模型有三类模型:数据并行、消息传递、共享变量。
其中基于消息传递的 MPI 编程模型和基于共享变量的 OpenMP/Pthread 编程模型是最为流行的并行编程模型。Openmp 比较简单,用于单机多 CPU/多核并行。MPI 较为复杂,有时需要从基本设计思路上重写整个程序,涉及到局域网通信这一不确定的因素。我们拿到一个软件,首先看它的使用说明,如果需要用 mpirun 运行的都属于 MPI 并行程序。否则,都属于串行程序或单机多线程程序。