宁波材料所高性能计算集群普通用户培训 曙光公司
目录 一、集群系统概况 二、软件安装情况 三、集群管理
集群系统拓扑图
计算系统:TC5600H 100台 CPU整体理论峰值性能达到61.44T 网络系统: 千兆管理网络,千兆管理网络用于系统管理控制、系统监控、作业的递交、作业监控管理等方面的数据通讯。 Infiniband计算网络 系统配置Infiniband FDR交换机,连接所有节点,用于计算节点间的计算通信以及所有节点对存储系统的高速访问 存储系统: 配备1套曙光ParaStor分布式并行存储,存储有效容量达到44TB。
目录 一、集群系统概况 二、软件安装情况 三、集群使用
编译器 /usr 软件名称 软件信息 GNU编译器 软件版本 4.4.7 安装路径 环境变量配置文件 调用方式 C:gcc C++:g++ F77:g77 F90: gfortran Intel编译器 14.0.0 /public/software/compiler/intel/composer_xe_2013_sp1.0.080 /public/software/profile.d/compiler_intel-composer_xe_2013_sp1.0.080.sh C:icc C++:icpc F77:ifort F90: ifort
OpenMPI(与Intel编译器关联) 软件名称 软件信息 OpenMPI(与Intel编译器关联) 说明 OpenMPI,与Intel编译器关联,支持以太网和InfiniBand。系统默认的MPI环境 软件版本 openmpi-1.6.5 安装路径 /public/software/mpi/openmpi/1.6.5/intel 环境变量配置文件 /public/software/profile.d/mpi_openmpi-intel-1.6.5.sh 调用方式 C:mpicc C++:mpicxx F77:mpif77 F90: mpif90 mpirun -np <N> -machinefile <machinefile> ...
MPI并行库(续1) OpenMPI(与GNU编译器关联) 说明 OpenMPI,与GNU编译器关联,支持以太网和InfiniBand 软件版本 openmpi-1.6.5 安装路径 /public/software/mpi/openmpi/1.6.5/intel 环境变量配置文件 /public/software/profile.d/mpi_openmpi-intel-1.6.5.sh 调用方式 C:mpicc C++:mpicxx F77:mpif77 F90: mpif90 mpirun -np <N> -machinefile <machinefile> ...
数学库 FFTW2-float 说明 单精度版FFTW2数学库 软件版本 fftw-2.1.5 安装路径 /public/software/mathlib/fftw/2.1.5/float 调用方式 <编译器> -I/public/software/mathlib/fftw/2.1.5/float /include ... -L/public/software/mathlib/fftw/2.1.5/float /lib -lsrfftw -lsfftw FFTW2-double 双精度版FFTW2数学库 /public/software/mathlib/fftw/2.1.5/double <编译器> -I/public/software/mathlib/fftw/2.1.5/double/include ... -L/public/software/mathlib/fftw/2.1.5/double/lib -lrfftw -lfftw FFTW3-float 单精度版FFTW3数学库 fftw-3.3 /public/software/mathlib/fftw/3.3.3/float <编译器> -I/public/software/mathlib/fftw/3.3.3/float include ... -L/public/software/mathlib/fftw/3.3.3/float /lib -lfftw3f
数学库(续1) FFTW3-double 说明 双精度版FFTW3数学库 软件版本 fftw-3.3 安装路径 /public/software/mathlib/fftw/3.3.3/double 调用方式 <编译器> -I/public/software/mathlib/fftw/3.3.3/double /include ... -L/public/software/mathlib/fftw/3.3.3/double /lib -lfftw3 Intel MKL Intel MKL,包含BLAS、LAPACK、FFT、ScaLAPACK、BLACS等 Intel Compiler 14.0.0自带版本 /public/software/compiler/composer_xe_2013_sp1.0.080/mkl 环境变量配置文件 /public/software/compiler/composer_xe_2013_sp1.0.080/mkl/bin/mklvars.sh ifort/icc ... –L${MKLROOT}/lib/em64t -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
应用软件 应用软件 1 vasp 5.2.12 /public/software/app/vasp-5212 /public/software/app/vasp-5212neb 2 gaussian 09 /public/software/app/g09 3 lammps 9Dec14 /public/software/app/lammps 4 matlab R2012a /public/software/app/R2012a
目录 一、集群系统概况 二、软件安装情况 三、、集群使用
目录 一、集群系统概况 二、软件安装情况 三、集群使用 Gridview登录 命令行登录
Gridview 用户注册
Gridview普通用户-登录 选择“普通用户”
普通用户-资源申请
普通用户-文件管理
普通用户-作业列表
系统登录(命令行终端) SSH Secure Shell Client,PuTTY,SecureCRT等SSH客户端软件登录。 Linux客户端可以直接在命令行终端中执行ssh命令进行登录: $>ssh username@登录节点IP地址
上传下载数据:WinSCP简介 WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端, 并支持SCP协议。
WinSCP-支持UTF8编码
设置软件环境变量 安装软件的环境变量设置脚本(/public/software/profile.d)
设置软件环境变量 各用户在.bashrc中选择需要的进行设置
集群信息查看命令 集群计算资源 pestat 存储可用资源 df –h
使用作业调度
作业管理系统的结构
查询节点状态 [dawn@node1 ~]$ qsub example.pbs 2743.node200 [dawn@node1 ~]$ pestat node state load pmem ncpu mem resi usrs tasks jobids/users node10 excl 8.06* 24025 12 24025 662 0/0 12 2743 dawn node11 free 0.00 24025 12 24025 661 1/1 0 node12 free 0.00 24025 12 24025 661 1/1 0 node13 free 0.00 24025 12 28127 660 0/0 0 node14 free 0.00 24025 12 28127 661 1/1 0 node16 free 0.99* 24025 12 28127 1233 6/2 2 2733 NONE* 2735 NONE* node17 free 1.33 24025 12 24025 1011 3/1 1 2740 NONE* node18 free 0.00 24025 12 24025 661 1/1 0 node19 free 0.00 24025 12 28127 660 0/0 0 node20 offl* 0.00 48267 24 52369 1203 0/0 0 node21 offl* 0.00 48267 24 52369 1204 0/0 0 node22 offl* 0.00 48267 24 52369 1203 0/0 0 node23 free 0.00 48267 24 52369 1219 0/0 0 node24 free 0.00 48267 24 52369 1211 1/1 0 node25 free 0.00 48267 24 52369 1211 1/1 0 node26 free 0.00 48267 24 52369 1212 1/1 0 node27 free 0.00 48267 24 52369 1207 1/1 0 node28 free 0.00 32107 16 36209 894 0/0 0 node29 free 0.00 32107 16 36209 891 0/0 0 节点状态 excl :所有CPU资源已被占用; busy :CPU已接近满负荷运行; free :全部或部分CPU空闲; offl :管理员手动指定离线状态;
PBS作业提交步骤 准备:编写描述改作业的脚本,包括作业名,需要的资源等。 提交:使用qsub命令将该作业提交给PBS服务器 排队:服务器将该任务排入适当的队列 调度:服务器检查各工作节点的状态是否符合该作业的要求,并进行调度。 执行:当条件满足时,作业被发给相应的执行服务器执行。程序运行时执行服务器会收集程序的标准输出和标准错误流,等程序结束时,将这些信息返回给用户。 查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。用户发现作业提交错误时,可以使用qdel删除正在运行的作业。 查看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出及错误信息显示。
PBS作业提交基本命令 在PBS系统中,用户使用 qsub 命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,作业脚本使用如下格式提交到PBS系统运行: qsub <PBS作业脚本> qsub -N wrf -l nodes=4:ppn=20 -q batch <PBS作业脚本>
PBS作业脚本 本质是一个SHELL脚本 注释以“#”开头 PBS运行参数,以“#PBS”开头 可以直接调用SHELL命令和系统命令 #PBS -N test #PBS -l nodes=1:ppn=20 #PBS -l walltime=12:00:00 #PBS -q batch cd /home/test/work ./test.exe
PBS运行参数 在 PBS 脚本和 qsub 命令行中均有效,qsub命令行参数的优先级更高 运 行 参 数 说 明 说 明 -a <作业开始运行的时间> 向PBS系统指定作业运行的开始时间。 作业运行时间格式为: [[[[CC]YY]MM]DD]hhmm[.SS] -A <用户名> 使用不同的用户来提交作业,缺省使用当前用户名 -o <标准输出文件的路径> -e <标准错误输出的路径> 该参数指定标准错误输出的位置,缺省的情况下,PBS系统把标准输出和标准错误输出放在用户qsub命令提交作业的目录下。 标准错误输出:<作业名>.o<作业号> 标准错误输出:<作业名>.e<作业号> 路径使用如下格式标准: [<节点名>:]<路径名> -N <作业名> 指定提交的作业名 -q <目标队列> 指定作业提交的目标队列,其中目标队列可以是目标队列、目标节点名或者是目标节点上的队列。如果目标队列是一个路由队列,那么服务器可能把作业路由到新的队列中。如果该参数没有指定,命令qsub会把作业脚本提交到缺省的队列中。 -l <申请资源列表> 该参数指定作业脚本申请的PBS系统资源列表。 申请资源列表使用如下格式: <资源名>[=[<数量>]][,资源名[=[<数量>]], …..] 例如作业希望申请在双路节点上申请5个CPU资源的情况, 则可以在脚本中如下: #PBS –l nodes=2:ppn=2+1:ppn=1
PBS的环境变量 变 量 名 说 明 登陆SHELL继承来的变量 说 明 登陆SHELL继承来的变量 包括$HOME,$LANG,$LOGNAME,$PATH,$MAIL,$SHELL和$TZ。 $PBS_O_HOST qsub提交的节点名称 $PBS_O_QUEUE qsub提交的作业的最初队列名称 $PBS_O_WORKDIR qsub提交的作业的绝对路径 $PBS_JOBID 作业被PBS系统指定的作业号 $PBS_JOBNAME 用户指定的作业名,可以在作业提交的时候用qsub –N <作业名>指定,或者在PBS脚本中加入#PBS –N <作业名>。 $PBS_NODEFILE PBS系统指定的作业运行的节点名。该变量在并行机和机群中使用。当在PBS脚本中用#PBS –l nodes=2:ppn=2指定程序运行的节点数时,可以使用$PBS_NODEFILE在脚本中引用PBS系统指定的作业运行的节点名。比如: #PBS –l nodes=2:ppn=2 mpirun –np 4 –machinefile $PBS_NODEFILE <程序名> $PBS_QUEUE PBS脚本在执行时的队列名
PBS脚本举例 # 这是一个串行作业脚本的例子 #PBS -N test #PBS -l nodes=1:ppn=1 cd $HOME/test/ ./a.out > $HOME/result/a.result # 这是一个并行作业脚本的例子 #PBS -N wrf #PBS -o out.txt #PBS -e err.txt #PBS -l nodes=2:ppn=20 #PBS -q batch cd $PBS_O_WORKDIR NP=$(wc -l “$PBS_NODEFILE”) source /public/software/profile.d/mpi_mvapich2-pgi-20b-nemesis.sh mpirun -np $NP -f $PBS_NODEFILE ./wrf.exe
一个复杂的PBS脚本 #!/bin/bash #PBS -N jobname #PBS -l nodes=2:ppn=8 cat `echo $PBS_NODEFILE` > $HOME/$PBS_JOBID.nodes for node in `cat $HOME/$PBS_JOBID.nodes` do ssh $node mkdir /tmp/$PBS_JOBID ssh $node cp -rf $PBS_O_WORKDIR/* /tmp/$PBS_JOBID/ done cd /tmp/$PBS_JOBID mpirun -np 16 -machinefile $PBS_NODEFILE $HOME/bin/vasp cp -rf /tmp/$PBS_JOBID/* $PBS_O_WORKDIR/ ssh $node rm -rf /tmp/$PBS_JOBID rm $HOME/$PBS_JOBID.nodes
指定资源 #PBS -l nodes=4:ppn=20 #PBS -l nodes=1:ppn=20+1:ppn=10 #PBS -l nodes=a210:ppn=20+a211:ppn=20 #PBS -l walltime=01:00:00
查询作业状态 作业提交后,会生成一个作业号,如: [dawning@node1 ~]$ qsub test.pbs 93.node1 查看集群作业运行状态: [dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----- 93.node1 test.pbs test 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default 作业状态说明: E:退出 Q:排队 H :挂起 R :运行 C:结束
查询作业状态(续) 查询作业命令 qstat [参数],其中参数可为: -q :列出系统队列信息 -B :列出PBS服务器的相关信息 -an:列出队列中的所有作业及其分配的节点 -r :列出正在运行的作业 -f jobid :列出指定作业的信息 -Qf queue:列出指定队列的所有信息
删除作业 注:用户只能删除自己的作业,管理员可以删除所有用户作业 [dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----- 93.node1 test.pbs zhaocs 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default qdel 93.node1 注:用户只能删除自己的作业,管理员可以删除所有用户作业
谢谢! Q&A