天河二号使用指南

使用方式

  • 节点使用方式:独占式
  • 机时计算:以节点为基本单元计算核时。
  • 开源软件的安装:超算中心根据实际情况对基于“天河二号”部署的开源软件的安装进行一定程度上的协助。
  • 请不要在登录结点直接运行可执行程序(极大的影响其他用户的登录和使用效率)。
  • 如无特殊需要,请使用批处理方式(yhbatch)提交任务。
  • 请保存好运行程序的log文件,从而方便超算中心技术人员在作业出问题后,协助解决问题。
  • 若需登录计算结点运行程序,需要先分配计算结点,方可登录。
  • 除了可看见work分区的用户,其他用户都需在提交命令中加入参数选项“-p 分区名”,即提交命令应为“yhurn -p 分区名 …”或者“yhbatch -p 分区名”。

登录

  1. VPN验证
  2. 建立了VPN安全链接后,须使用ssh 客户端(如Xmanager、Putty、SecureCRT)来登录系统。
    • Step 1:从管理员处获取认证文件
    • Step 2:使用终端工具连接,通过使用系统管理员提供的Private Key文件(随账号通知邮件附件给出)进行认证。

文件传输

文件系统

天河二号高性能计算平台文件系统被分为/home和/work两个区

  • /home分区

    • 仅用于存储代码和程序编译。
    • 在脚本中使用“/home/系统账号”引用该分区下的用户主目录。
    • 试用用户磁盘限额:50GB;签约用户磁盘限额:100GB。
    • 所有登录服务结点和计算结点皆可以访问该分区下的文件。
  • /work分区

    • 用于数据存放和运行作业。
    • 在脚本中使用“/work/系统账号”引用该分区下的用户主目录。
    • 该分区磁盘容量大,数据读写快。试用用户磁盘限额:200GB~300GB;签约用户磁盘限额根据用户的具体需求进行配置。
    • 所有登录服务结点和计算结点都可以访问该分区下的文件。

数据传输

  • 从外部机器向天河二号上传或下载文件,可以使用sftp 客户端(如Xmanager、FileZilla、WinScp、FlashFTP)
  • 密钥所在路径不能含有中文。
  • 文件传输时,数据应上传至“/home/系统账号/workspace/”下。
  • 程序编译应在“/home/系统账号/”下进行
  • 提交作业以及运行程序应在“/home/系统账号/workspace”下进行。
  • 在有大量文件需要下载时,建议使用tar命令进行打包,以加快下载速度,减少出错几率。该命令为:tar –cvf file.tar file,其中file为需要打包压缩的文件或目录,file.tar为打包后的文件。

环境变量管理工具module

由于不同用户在天河二号上可能需要使用不同的软件环境,配置不同的环境变量,因而在天河二号上安装了module ,通过配置modulefile支持环境变量的动态修改,基本命令:

  • module avail:查看可用的模块的列表。
  • module load [modulesfile]:加载需要使用的modulefiles。
  • module其它用法,可在help中查询。

编译器

  • 天河二号系统已配置GNU和Intel编译器
  • 支持 C,C++,Fortran77、Fortran90 语言程序的开发。
  • 天河二号系统支持OpenMP和MPI两种并行编程模式。
    • OpenMP为共享内存方式,仅能在一个计算结点内并行,最大线程数不能超过结点处理器核心数。
    • MPI是分布式内存并行,计算作业可以在一个或者若干个结点上进行,最大进程数仅受用户帐号所能调用的CPU总数限制。
    • 共享内存的OpenMP并行方式通常由编译器来支持,目前GNU和Intel的编译器均已实现了对该标准的支持。

Intel编译器

  • 天河二号系统上已配置3个版本的Intel编译器,分别为intel 11.1、intel 13和intel 14。
  • intel 14为用户默认编译器。
  • 若无特殊要求,用户登录后无需设置编译器环境。
  • 可使用module进行加载其他版本的Intel编译器:
    • 使用Intel 13编译器:module load intel-compilers/13.0.0
    • 使用Intel 11编译器:module load intel-compilers/11.1
  • which命令:查找编译命令所在的路径,如“which icc”
  • -v:确认编译器的版本,如“icc -v”、“ifort -v”
  • –help:获取Intel编译器想去,如“icc –help”

GCC编译器

  • 天河二号上默认安装的GNU编译器版本是4.4.6
  • 相关的编译命令都安装到/usr/bin目录中。

MPI编译环境

  • 由于天河二号采用了自主互连的高速网络,因此底层MPI为自主实现,基于Intel编译器和GNU编译器进行编译。

  • 系统默认使用/usr/local/mpi3目录下的mpi。该mpi调用Intel 14编译器,且该mpi的库均为静态库,用户不用担心动态链接库问题

  • 如果编译需要使用动态库,请调用 mpi3-dynamic , 可用 MPI/Intel/MPICH/3.1-dyn 加载环境 。

  • 不同MPI版本之间的切换,用户可通过module工具来完成。

  • 如用户必须使用其他版本mpi,比如openmpi1.4.8,mpich2-1.3.1 等,也可以自己安装并部署。

  • MPI编译命令内部会自动包含MPI标准头文件所在的路径,并自动连接所需的MPI通信接口库,所以不需要用户在命令行参数中指定。

  • 如果用户使用makefile或autoconf编译MPI并行程序,还可以将makefile中的CC,CXX,F77,F90等变量设置成mpicc,mpicxx,mpif77,mpif90,或这在autoconf的configure过程前设置CC,CXX,F77和F90等环境变量为mpicc,mpicxx,mpif77和mpif90等。

MIC编译环境

  • MIC编译器包含Intel 13和14两个版本编译器,目前支持native和offload两种编程模式。

  • 用户环境默认支持Intel 14编译器

  • 若需13版编译器,操作:module load intel-compilers/13.0.0

  • 用户若需登录MIC使用native模式计算,需要配置计算结点的环境,请发邮件到客服邮箱该申请配置环境。

作业提交

  • yhinfo 或 yhi :查看结点状态。(yhi为yhinfo命令的简写)
    返回信息:

    • PARTITION:分区
    • NODES:节点数
    • NODELIST:节点列表
    • STATE:节点运行状态(idle:空闲,allocated:已分配作业)
  • yhqueue 或 yhq:查看作业运行情况(yhq为yhueue命令的简写)(推荐使用“yhq -a”查看作业状态信息)
    返回信息:

    • JOBID:任务ID
    • Name:任务名称
    • USER:用户
    • TIME:已运行时间
    • NODES:占用结点数
    • NODELIST:任务运行的结点列表
  • yhrun:交互式作业提交

    • 在shell窗口中执行yhrun 命令,格式:yhrun [options] program
    • yhrun常用选项:
      • -n, –ntasks=number:指定要运行的任务数。请求为number 个任务分配资源,默认为每个任务一个处理器核。
      • -c, –cpus-per-task=ncpus:告知资源管理系统控制进程,作业步的每个任务需要ncpus 个处理器核。若未指定此选项,则控制进程默认为每个任务分配一个处理器核。
      • -N, –nodes=minnodes[-maxnodes]:为作业分配最少minnodes个、最多maxnodes个结点(例如“-N 2-4”或“–nodes=2-4”)。如果作业的结点申请数超出了分区的结点总数,作业将被拒绝。缺省条件下,作业将被分配尽可能多的结点。
      • -p, –partition=partition name:在指定分区中分配资源。如未指定,则由控制进程在系统默认分区中分配资源。
      • -w, –nodelist=node name list:请求指定的结点名字列表。作业分配资源中将至少包含这些结点。可以用逗号分隔的结点名或结点范围(如cn[1-5,7,…])指定,或者用文件名指定。如果参数中包含“/”字符,则会被当作文件名。如果指定了最大结点数如-N 1-2,但是文件中有多余2个结点,则请求列表中只使用前2个结点。
      • -x, –exclude=node name list:不要将指定的结点分配给作业。如果资源请求不能立即被满足,yhrun将阻塞等待,直到资源可用以运行作业。如果指定了–immediate选项,则yhrun将在资源不是立即可用时终止。
      • -h, –help:查看yhrun更多选项。
  • yhbatch 批处理作业,是用户编写的作业脚本,指定资源需求约束,提交后台执行作业。

    • 用户提交命令即返回命令行窗口,系统将在所分配的第一个计算结点(而不是登录结点)上加载执行用户的作业脚本。
    • 批处理作业的脚本为一个文本文件,脚本第一行以“#!”字符开头。由于计算节点为精简环境,只提供 sh 和 bash 的默认支持。
  • yhalloc:节点资源抢占命令,支持用户在提交作业前,抢占所需计算资源。

  • yhcancel:取消任务命令。格式: yhcancel jobid

    • 对于排队作业,取消作业将简单地把作业标记为CANCELLED状态而结束作业。
    • 对于运行中或挂起的作业,取消作业将终止作业的所有作业步,包括批处理作业脚本,将作业标记为CANCELLED状态,并回收分配给作业的结点。一般地,批处理作业将会马上终止。
    • 交互作业的yhrun进程将会感知到任务的退出而终止;
    • 抢占结点资源的yhalloc进程不会自动退出,除非作业所执行的用户命令因作业或任务的结束而终止。
    • 在作业被取消时,控制进程都会发送通知消息给分配资源的yhrun或yhalloc进程。用户可以选择通过yhalloc的–kill-command选项设置在收到通知时向所执行的命令发送信号将其终止。

常见上机问题(FAQ)

  • VPN账号连接成功,但是终端工具连接不了天河二号。

    • 如果您的电脑安装了360卫士、安全卫士等软件,请先将软件关闭,再重新连接VPN
    • 若上一步完成后仍无法连接,请ping 系统IP,查看丢包率,若丢包率很高则是您的网速导致,若丢包率低,则请联系中心相关人员排查。
  • 机时以及磁盘限额查询。

    • 登录VPN后,在非IE 浏览器网页中输入网(http://172.16.22.11:10021/)并打开。输入系统账号以及选择秘钥(Private Key)文件后,点击登录即可查看机时以及磁盘限额情况。
  • 如果遇到一些作业运行时报库无法找到,如何处理?

    • 可通过locate命令查找相应的库,并将在/home或/work目录下的对应的库路径加入环境变量LD_LIBRARY_PATH中。
    • 系统的库文件,可以尝试命令“source /work/app/osenv/ln1/set2.sh”然后再提交作业。
    • 如果还是不行,可将缺少的库拷贝到自己的文件夹如~/lib 中,并设置环境变量 :“export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH”。
  • 提交作业报“Invalid partition name specified”。

    • 报该错时,建议用户先用“yhi”查看是否可以看见自己所在的分区。
    • 若无法看见分区,则是您的机时已到限制.。
  • 提交作业报“Failed to allocate resources: User’s group not permitted to use this partition”。

    • 用户提交作业时通常需要加“-p 分区名”这一参数,同时该参数应写在程序名前。
    • 分区可用“yhi”来查看所在分区。
  • 采用yhrun提交作业,关闭界面后,再次登录时发现作业被killed。

    • yhrun是交互式提交作业模式,一旦作业提交的界面关闭作业就会被killed。
    • 若需要较长时间运行的作业,建议用户采用yhbatch批处理提交方式。yhbatch负责资源分配,yhbatch获取资源后会在获取资源的第一个结点运行提交的脚本,当前登录shell断开后,加载作业仍可正常运行。
  • 采用yhbatch提交多结点作业失败的原因。

    • 采用yhbatch提交作业首先进行的是分配资源,因此对于多结点作业,采用yhbatch提交时应在提交命令中指定-N参数,即提交命令是“yhbatch –N nodenum –n pronum –p pardition job.sh”。
  • 计算结点无法登录。

    • 目前我们对计算结点做了限制,除非用户分配了计算结点,否则无法登录。
    • 用户若想登录计算结点再算题,首先需要用yhalloc分配结点,方可登录结点算题。
  • yhalloc分配资源,退出yhalloc后发现作业断掉。

    • yhalloc与yhbatch最主要的区别是,yhalloc命令资源请求被满足时,直接在提交作业的结点执行相应任务,适合需要指定运行结点和其他资源限制,并有特定命令的作业。当当前登录shell断开后,申请获得的资源以及加载作业任务会退出。
  • 如果遇到一些作业报错,应该如何处理?

    • 较为常见的报错如:“No enough endpoint resources”,“Job credential expired”,“bus error”
    • 如遇到相关报错问题也希望您能及时与我们进行联系,并提供您的报错日志信息(并加上错误发生的时间,提交命令等信息),以便我们进行有效的分析和处理。
  • 作业退出后仍显示CG状态,是否影响作业退出?

    • CG状态是作业退出时,部分结点上的进程没有完全停止导致,并不影响作业的正常退出。
  • 作业完成退出时显示部分进程被killed,然后退出。

    • 这种情况下,用户首先应检查所需的输出是否已正常输出完成。
    • 导致这种情况出现的原因是有部分进程先完成了计算而提前结束,而当一个作业的部分进程结束,系统默认为作业已完成,在一定时间内其他进程若不结束,则会被强制结束。

猜你喜欢

转载自blog.csdn.net/lk3030/article/details/79699108