天河二号简明使用手册
要求时)推荐使用/usr/local/mpi3版本,有较高的效率。
并行mpi编译环境使用注意事项:
1. 系统默认使用/usr/local/mpi3目录下的mpi。该mpi调用Intel 14编译器,且该mpi的库均为静态库,用户不用担心动态链接库问题(如果编译需要使用动态库,请调用 mpi3-dynamic , 可用 MPI/Intel/MPICH/3.1-dyn 加载环境 )。
2. 系统还提供了其他版本的mpi,如mpi3-dbg、mpi3-dynamic、mpi3-gcc、mpi3-icc11 mpi3-large以及intel的impi。其中,mpi3-dbg调用Intel 14编译器,可用于调试;mpi3-dynamic调用Intel 14编译器,但其mpi的库均为动态库;mpi3-gcc则是调用GNU编译器,且该mpi的库也均为静态库;mpi3-icc11是调用Intel 11编译器,且其mpi的库也均为静态库;mpi3-large调用Intel 14编译器,且该mpi的库均为静态库,同时它支持超过2GB的地址空间,开启了“-mcmodel=large”选项。不同MPI版本之间的切换,用户可通过module工具来完成。
3. 天河二号具备自主高速互联网络,并提供MPI编程环境,如用户必须使用其他版本mpi,比如openmpi1.4.8,mpich2-1.3.1 等,也可以自己安装并部署。用自行mpi编译的程序,同样可以利用高速互联网络的虚拟以太网运算任务,但性能会较天河二号自主MPI低很多。
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等。
4.4 MIC编译环境
MIC编译器包含Intel 13和14两个版本编译器,目前支持native和offload两种编程模式。
目前用户环境默认支持Intel 14编译器,若需13版编译器,需做以下操作:
module load intel-compilers/13.0.0
注意:目前用户若需登陆MIC使用native模式计算,需要配置计算结点的环境,请发邮件到客服邮箱该申请配置环境。
11
天河二号简明使用手册
5 作业提交
5.1 结点状态查看yhinfo或yhi
yhi为yhinfo命令的简写,用户用其查看结点状态。
其中PARTITION表示分区,NODES表示结点数,NODELIST为结点列表,STATE表示结点运行状态。其中,idle表示结点处于空闲状态,allocated表示结点已经分配了一个或多个作业。
5.2 作业状态信息查看yhqueue或yhq
yhq为yhueue命令的简写,用户用其查看作业运行情况。
其中JOBID 表示任务ID,Name表示任务名称,USER为用户,TIME为已运行时间,NODES表示占用结点数,NODELIST为任务运行的结点列表。
5.3 交互式作业提交yhrun
5.3.1 简介
交互式提交作业:在shell窗口中执行yhrun 命令,主要命令格式如下: yhrun [options] program
5.3.2 yhrun常用选项
yhrun包括多个选项,其中最常用的选项主要有以下几个: ?
-n, --ntasks=number
指定要运行的任务数。请求为number 个任务分配资源,默认为每个任务一个处理器核。 ?
-c, --cpus-per-task=ncpus
告知资源管理系统控制进程,作业步的每个任务需要ncpus 个处理器核。若未指定此选项,则控制进程默认为每个任务分配一个处理器核。
12
天河二号简明使用手册
? -N, --nodes=minnodes[-maxnodes]
请求为作业至少分配minnodes个结点。调度器可能觉得在多于minnodes个结点上运行作业。可以通过maxnodes限制最多分配的结点数目(例如“-N 2-4”或“--nodes=2-4”)。最少和最多结点数目可以相同以指定特定的结点数目(例如,“-N 2”或“--nodes=2-2”将请求两个且仅两个结点)。分区的结点数目限制将覆盖作业的请求。如果作业的结点限制超出了分区中配置的结点数目,作业将被拒绝。如果没有指定-N,缺省行为是分配足够多的结点以满足-n和-c参数的需求。在允许的限制范围内以及不延迟作业开始运行的前提下,作业将被分配尽可能多的结点。
?
-p, --partition=partition name
在指定分区中分配资源。如未指定,则由控制进程在系统默认分区中分配资源。 ?
-w, --nodelist=node name list
请求指定的结点名字列表。作业分配资源中将至少包含这些结点。列表可以用逗号分隔的结点名或结点范围(如cn[1-5,7,...])指定,或者用文件名指定。如果参数中包含“/”字符,则会被当作文件名。如果指定了最大结点数如-N 1-2,但是文件中有多余2个结点,则请求列表中只使用前2个结点。
?
-x, --exclude=node name list
不要将指定的结点分配给作业。如果包含“/”字符,参数将被当作文件名。yhrun将把作业请求提交到控制进程,然后在远程结点上启动所有进程。如果资源请求不能立即被满足,yhrun将阻塞等待,直到资源可用以运行作业。如果指定了--immediate选项,则yhrun将在资源不是立即可用时终止。
?
-h, --help
若需使用yhrun更多选项,可通过“yhrun –h”或“yhrun --help”查看。
5.3.3 使用示例
1)在分区MIC 上指定任务数运行hostname:
2)在分区MIC,结点cn[145-147]上运行hostname:
13
天河二号简明使用手册
3)在MIC分区,运行4 任务的hostname,每个结点一个任务,分配的结点中至少包含结点cn[145-147]:
4)在MIC分区,运行4 任务的hostname,每个结点一个任务,分配的结点中不包含结点cn[145-147]:
5.4 批处理作业yhbatch
5.4.1 简介
批处理作业是指用户编写作业脚本,指定资源需求约束,提交后台执行作业。提交批处理作业的命令为yhbatch,用户提交命令即返回命令行窗口,但此时作业在进入调度状态,在资源满足要求时,分配完计算结点之后,系统将在所分配的第一个计算结点(而不是登录结点)上加载执行用户的作业脚本。
批处理作业的脚本为一个文本文件,脚本第一行以“#!”字符开头,并制定脚本文件的解释程序,如sh,bash。由于计算节点为精简环境,只提供 sh 和 bash 的默认支持。
5.4.2 使用示例
例如用户的脚本名为mybash.sh,内容如下:
根据该脚本用户提交批处理作业,需要明确申请的资源为MIC分区的4个结点。
注意:需给该文本文件设置mybash.sh可执行权限,利用命令:chmod +x mybash.sh
用户yhbatch批处理命令如下: yhbatch -N 4 -p MIC./mybash.sh
14