生信入门:LInux集群使用

作者: 基因的生物信息学分析 | 来源:发表于2019-07-08 20:00 被阅读2次

    简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。在某种意义上,他们可以被看作是一台计算机。

    集群系统的主要优点:

    1. 高可扩展性

    2. 高可用性:集群中的一个节点失效,它的任务可以传递给其他节点。可以有效防止单点失效。

    3. 高性能:负载平衡集群允许系统同时接入更多的用户。

    4. 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。

    集群分类

    集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构可以分成以下几类 :

    高可用性集群 High-availability (HA) clusters

    负载均衡集群 Load balancing clusters

    高性能计算集群 High-performance (HPC) clusters

    网格计算 Grid computing

    高性能计算集群

    高性能计算集群采用将计算任务分配到集群的不同计算节点儿提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库, 比如专为科学计算设计的MPI库。

    HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。

    1. 集群系统的硬件架构和软件配置实例

    1.1 硬件架构

    image

    1.1.1 节点命名规则

    根据用途系统内各节点分为:

    1. 管理/登录节点1个:mgt01

    2. 计算节点3个:node01-node03

    备注:节点所使用的系统都为CentOS 7.4 64位操作系统

    备注(关于管理节点):

    管理节点上一般仅用于编译和其他预处理操作,严禁在其上直接执行程序或运行软件,以免影响系统正常运行以及其他用户正常使用。

    1.1.2 管理节点配置

    机器型号 Dell R740

    2*12 Intel(R) Xeon(R) Gold 6126 CPU @ 2.60GHz;

    128GB 2666MHz DDR4 内存;

    2*600GB;

    OS: CentOS Linux 7.4

    1.1.3 计算节点配置

    机器型号 Dell R740

    2*12 Intel(R) Xeon(R) Gold 6126 CPU @ 2.60GHz;

    128GB 2666MHz DDR4 内存;

    2*600GB;

    OS: CentOS Linux 7.4

    1.1.4 存储系统

    存储系统部分:

    管理节点挂载了存储,挂载在/data目录下,

    计算节点上挂载的路径为:/data(共享目录)

    用户家目录在:/data/home

    软件目录在:/data/software

    共计约306TB空间

    1.2 作业管理系统与调度策略

    采用Torque资源调度软件对集群上的计算资源进行统一调度管理,用户提交作业时将统一使用Torque作业管理系统进行作业提交、管理、监控、删除等操作。

    1.2.1 Torque基本介绍

    PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。 PBS的目前包括openPBS,PBS Pro和Torque三个主要分支。其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。

    Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本。本集群系统上安装集成了Torque 4.2.1+Maui 3.3.1。

    1.2.2 集群系统的队列划分

    常用的任务队列名称和说明见下表:

    下表是队列设置以及每个队列最多可以使用的核数,见下表

    队列 主机系统类型 调度规则 备注
    com 常规CPU计算节点 缺省配置,按照先进先运行策略调度。 最多可用72个核(3个节点)

    1.2.3 集群登陆

    1注:也可使用putty等远程登录方式接入,使用方法类似,此处省略。

    1.2.4 上传本地文件到集群,从集群下载文件到本地。

    使用Xftp进行Windows跳转机与集群的文件收发

    使用xshell登录集群之后,可以通过快捷键“Ctrl+Alt+F”或者点击菜单栏上的 image

    图标,即可打开文件传送框。

    image image image

    1.2.5 用户账号相关

    1、用户的家目录在:/data/home/yourusername

    2、集群用户更改自己的密码

    登录到mgt上之后使用yppasswd命令更改密码,先输入一遍旧密码,然后再输入两遍新密码即可完成更改密码。

    如下

    image

    1.3 编译器的使用

    集群上已安装Intel开发组件试用版,软件路径为/data/software/intel/2017_update4

    在/data/software下有个env.sh文件,里面放置了编译器的环境变量,如果要进行使用,直接读取文件里的环境变量加载即可

    使用时,只需要指定下Intel Compiler编译器环境即可:

    source /data/software/env.sh

    使用示例:

    image

    注:若需要使编译器环境变量永久生效,把/data/software下的env.sh里的内容加到您用户的~/.bashrc里即可:

    之后退出当前终端重新登录或者执行source ~/.bashrc ,既可永久生效。

    2. 集群作业调度系统及并行环境的使用

    2.1 作业提交基本流程

    Step1 : 用户准备数据输入文件与作业脚本文件;

    Step2 : 上传数据文件至用户目录;

    Step3 : 登录到mgt01节点上,利用qsub命令提交作业。

    Step4 : 监控作业完成,并通过工具下载结果文件。

    image

    2.2 并行环境使用

    集群上已安装了试用MPI (Intel MPI Version 2017 )使用方式如下:

    指定并行环境:

    a) 指定使用Intel MPI

    source /data/software/intel/2017_update4/impi/2017.3.196/bin64/mpivars.sh

    使用示例:

    image

    永久使用:

    把上述命令加到您用户的环境变量里,如:

    echo " source /data/software/intel/2017_update4/impi/2017.3.196/bin64/mpivars.sh " >> ~/.bashrc

    之后退出当前终端重新登录或者执行source ~/.bashrc ,既可永久生效。

    2.3 利用Torque递交作业

    为了便于管理充分利用计算资源,规定用户不能登录到计算节点,这样用户只能通过Torque递交作业,由Torque自动分配调度计算资源。

    2.3.1 作业示例脚本

    在这里给大家做参考:

    <pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash" cid="n121" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; background-position: inherit inherit; background-repeat: inherit inherit;">#!/bin/bash //指定所有的shell环境

    PBS -q com //指定提交到的队列

    PBS -N TEST //指定作业名

    PBS -l nodes=1:ppn=8 //指定作业申请的资源(申请1个节点,每个节点8核)

    PBS -o TEST.out //指定作业的标准输出文件名

    PBS -e TEST.err //指定作业的错误输出文件名

    bash job.sh</pre>

    image

    2.3.2 检查作业状态

    qstat命令列出了用户提交作业的作业号、用户名、作业状态、作业列队、作业提交点、作业计算节点、作业名以及作业提交时间等信息。

    image

    使用qstat –f jobid 可以查看作业详细信息

    image

    2.3.3 用showq查看当前集群里节点使用情况。

    image

    2.3.4 查看各节点状态

    pbsnodes 可以查看各节点状态

    image

    pbsnodes –l 可以只查看有问题的节点,一般输出都为空,如果看到有输出,则该节点可能有问题,请联系管理员处理。

    pbsnodes -l free 可以查看空闲节点(只要有1核空闲即该节点标记为free空闲,所以为使资源利用最大化,以及保证作业运行时不受干扰,建议满节点提交作业:ppn=28)

    2.3.5 其他作业管理相关命令

    其他常用用户命令有

    • canceljob:取消已存在的作业

    • checkjob:显示作业状态、资源需求、环境、限制、信任、历史、已分配资源和资源利用

    • pbsnodes:显示节点信息

    • printjob:显示指定作业脚本中的作业信息

    • qdel:取消指定的作业

    • qhold:挂起一个作业

    • qmove:将一个作业从一个队列移到另一个队列中

    • qnodes:pbsnodes 的别名,显示节点信息

    • qorder:交换两个作业的排队顺序

    • qrls:将被挂起的作业送入准备运行的队列中

    • qselect:显示符合条件的作业的作业号

    • qstat:显示队列、服务节点和作业的信息

    • qsub:提交作业

    • showbf:显示有特殊资源需求的资源的可用性

    • showq:显示已激活和空闲的作业的优先级细节

    • showstart:显示空闲作业的估计开始时间

    • tracejob:追踪作业信息。

    3. 附录:Linux 常用命令

    1. date :显示或设置系统时间

    2. ls :列出当前或指定目录下的文件或目录。

    3. yppasswd: 更改用户登录密码

    4. rlogin, telnet, rsh, ssh :远程登录

    5. pwd: 显示当前目录

    6. cd : 进入指定目录

    7. more, less, head tail: 显示或部分显示文件内容.

    8. lp/lpstat/cancel, lpr/lpq/lprm: 打印文件的有关命令.

    9. chmod:更改文件读、写或执行权限

    10. rm :删除文件或目录

    11. cp:拷贝文件或目录

    12. mv : 文件更名或移动

    13. vi/vim:文本编辑器

    14. top : 查看系统长时间运行的主要进程

    15. fg jobid :可以将一个后台进程放到前台。

    Ctrl-z 可以将前台进程挂起(suspend), 然后可以用 bg jobid 让其到后台运行。

    job & 可以直接让 job 直接在后台运行。

    1. ps:查看系统进程, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中 session 显示的 sessionid, tpgid 显示前台进程组 id, comm 显示命令名称。)

    2. kill : 杀掉一个指定进程号的进程或向系统发送一个信号。

    3. scp: 远程文件拷贝。

    4. man :给出指定命令的详细使用说明。

    Linux 的绝大部分命令都可以用man命令来查看更详细的说明。

    感谢您的支持,欢迎点击“在看"和转发!!

    长按下方二维码,即可关注 “基因的生物信息学分析”。

    image

    相关文章

      网友评论

        本文标题:生信入门:LInux集群使用

        本文链接:https://www.haomeiwen.com/subject/rftzhctx.html