大型机使用手册
快速使用指南 用户软件环境加载 示例 可加载的软件环境列表可以在命令行使用下面的命令获取或查看本手册后续部分 module avail 由用户根据自己使用的shell在下列文件中通过 module load / unload命令来加载/卸载自己所需要的运行环境 .bash_profile/.bashrc (bash shell ) .cshrc/.tcshrc (csh / tcsh) .kshrc (ksh) 可以在命令行使用下面的命令,获取自己使用的的shell 信息 echo $0 示例 shell为bash,希望登录后自动加载mvapich2, ncl, netcdf, grads等的软件环境信息,则把下列命令添加到~/.bashrc中 module load mvapich2 netcdf ncl GrADS
快速使用指南 加载注意事项 编译器模块必须第一个加载 如需要的环境与系统缺省设置不一致,先用下面命令清除,再加载需要的环境 module purge 加载编译器后,再加载其他的应用模块 有依赖关系的模块,在加载时需要注意先后顺序,例如 ncl/6.1.2依赖hdf5/1.8.11, netcdf/4.3.0 netcdf/4.3.0依赖hdf5/1.8.11 其加载顺序为 module load hdf5/1.8.11 netcdf/4.3.0 ncl/6.1.2 加载缺省版本模块时,可以不用指明版本号 可通过env命令来查看模块加载后进行的相关设置,例如,模块的安装位置,有关的环境变量设置等
快速使用指南 PBS脚本设置 以下PBS指令为必需指令 PBS脚本中MPI程序运行方式 #PBS –P project_no (项目号) #PBS -q queue_name (队列名) #PBS -l walltime=hh:nn:mm (墙钟限制) PBS脚本中MPI程序运行方式 mpirun -np nproc my_mpi_app.exe 注意: 1. 不需要指定--hostfile 参数 2. 现在启用了墙钟限制,脚本有可能需要根据相应的墙钟限制进行调整,避免由超时造成强制中断而的问题 示例脚本在 /nuist/p/public/app/scripts/pbs_example
快速使用指南 目录设置 系统预定义的目录环境变量 /nuist/u/home/$LOGNAME ( 用户主目录, 个人配额10G) /nuist/p/work/$LOGNAME (用户工作目录, 个人配额500G) /nuist/scratch/$LOGNAME (用户临时目录, 个人配额5T) /nuist/p/public/app (常用软件包安装目录,例如:NetCDF, NCL等) /nuist/p/public/data (共用数据存放目录,例如:WRF地形数据等) 系统预定义的目录环境变量 $TEMPDIR /nuist/scratch $WORKDIR /nuist/p/work $APPDIR /nuist/p/public/app
一 系统简介 集群计算节点 存储 308台两路六核IBM HS22刀片服务器,共3696个核 一个38TB高速SAS硬盘做成 /nuist/u/home ( 8.4 T ) /nuist/p/public ( 30 T ) 一个706TB近线SAS硬盘做成 /nuist/p/work ( 214 T ) /nuist/scratch ( 492 T )
二 存储空间设置 卷功能 配额 删除策略 备份 /nuist/u/home 10G/用户 不做删除 /nuist/p/work 当文件系统的可用空间低于10%的时候将删除一定时间以上的文件(如90天) 不备份 /nuist/scratch 5T/用户 当文件系统可用空间<50%时,删除>90天的 当文件系统可用空间<25%时,删除>30天的 当文件系统可用空间<10%时,删除>7天的 /nuist/p/public 不做删除, 用于保存共用的基础数据,例如地形数据等 磁盘空间配额使用查询 mmlsquota –u username
三 运行环境设置 编译器 并行环境 软件环境管理 Intel 11.1.046 / 12.1.0.233 PGI 11.7 / 13.3 GNU 4.4.6 / 4.7.2 / 4.8.2 并行环境 OpenMPI 1.4.3 / 1.6.5 MVAPICH2 2.0b 软件环境管理 Environment Modules 3.2.10
三 运行环境设置 软件包/库安装位置 /nuist/p/public/app /nuist/p/public/data /usr/lib64 /usr/include /usr/bin
三 运行环境设置 已安装的软件包 /nuist/p/app 名称 版本 编译器实现 CDO 1.6.2 NCL 6.1.2 Intel, GNU, PGI NCO 4.3.7 NCVIEW 2.1.2 VIS5D+ 1.2.1 GrADS 1.8, 1,9, 2.0.2 OpenGrADS 1.10, 2.01
三 运行环境设置 已安装的软件包 /usr/bin 名称 版本 编译器实现 ImageMagic 6.5.4.7
三 运行环境设置 已安装的库 /nuist/p/public/app 名称 版本 编译器实现 BLAS 20110419 Intel, GNU, PGI BUFR 10.2.3 EMOSLIB 000392 G2CLIB/G2LIB 1.4.0 GDAL 1.10.1 GRIB_API 1.11.0 HDF4 4.2.9 HGF5 1.8.11 HDF-EOS2 2.18V1.00 HDF-EOS5 1.14
三 运行环境设置 已安装的库 /nuist/p/public/app 名称 版本 编译器实现 LAPACK 3.3.1 Intel, GNU, PGI NETCDF 3.6.3, 4.3.0 PROJ 4.8.0 UDUNITS 2.1.24 W3LIB 2.0.2
三 运行环境设置 已安装的库 /usr/lib64 名称 版本 编译器实现 JAPSER 1.900.1 JPGE 6b PNG 1.2.46 ZLIB 1.2.3 CAIRO 1.8.8 FREETYPE 2.3.1 PIXMAN 0.18.4 EXPAT 2.0.1 CURL 7.19.7 FONTCONFIG 2.8.0
三 运行环境设置 已安装的库 /nuist/p/public/app/intel/Compiler/11.1/046/mkl/lib/em64t 名称 版本 编译器实现 Intel 数学核心库 11.1.046
三 运行环境设置 用户环境变量设置 列出加载的模块 – module list 加载可用的模块 – module avail 加载指定的模块 – module load 卸载指定的模块 – module unload 切换不同的模块 – module swap
三 运行环境设置 目录环境变量 加载自己所需要的模块 $TEMPDIR = /nuist/scratch $WORKDIR=/nuist/p/work $APPDIR=/nuist/p/public 加载自己所需要的模块 在下列文件中通过 module load / unload命令来加载/卸载自己所需要的运行环境 .bash_profile/.bashrc .cshrc .kshrc 例如: module load netcdf ncl ncview GrADS
三 运行环境设置 使用module命令时的注意事项 如果只使用模块名而没有指定版本,则所有操作都是针对缺省版本 当使用module swap反复切换编译器模块时,会引起segmentation fault问题。当需要对编译器进行反复切换时,建议使用module unload / module load来进行操作 module 命令加载的是系统缺省设置的运行环境变量,用户自己的设置,仍然需要通过设置用户主目录下的.bashrc / .bash_profile / .cshrc等来实现
三 运行环境设置 Module 使用示例 [jliu@log02 ~]$ module list Currently Loaded Modulefiles: 1) intel/11.1.046 2) mvapich2/2.0b [jliu@log02 ~]$ module swap mvapich2 openmpi 1) intel/11.1.046 2) openmpi/1.6.5 [jliu@log02 ~]$ module load ncl netcdf 1) intel/11.1.046 3) ncl/6.1.2 2) openmpi/1.6.5 4) netcdf/4.3.0
三 运行环境设置 [jliu@log02 ~]$ module list Currently Loaded Modulefiles: 1) intel/11.1.046 3) ncl/6.1.2 2) openmpi/1.6.5 4) netcdf/4.3.0 [jliu@log02 ~]$ module swap netcdf/4.3.0 netcdf/3.6.3 2) openmpi/1.6.5 4) netcdf/3.6.3
三 运行环境设置 C 编译命令 Fortran 编译命令 C++编译命令 MPI编译命令 Intel : ifort GNU: gfortran PGI : pgf90/pgf77/pgfortran C 编译命令 Intel : icc GNU: gcc PGI : pgcc C++编译命令 Intel : icpc GNU : g++ PGI : pgCC MPI编译命令 Fortran : mpif90, mpif77 C: mpicc C++ : mpic++, mpicxx
四 作业管理 1)队列设置 队列类型 说明 Regular 最多使用512个核,每个用户最多可同时运行2个任务,同时提交5个任务 Economy Longtime 最多使用336个核,每个用户最多可同时运行1个任务,同时提交2个任务
四 作业管理 2)墙钟限制 队列类型 墙钟限制 Regular 12小时 Economy 24小时 Longtime 无墙钟限制
五 账户管理规则 1)账号申请 项目负责人填写“计算资源申请表”申请资源 项目成员填写“高性能计算机账号申请表”开通其个人账号。 五 账户管理规则 1)账号申请 项目负责人填写“计算资源申请表”申请资源 项目成员填写“高性能计算机账号申请表”开通其个人账号。 项目负责人指定各成员可以使用的记账账号,开通/停止项目成员账号由项目负责人(或相关授权人员)提出 每个人拥有独立的大型机用户账号 只有有效的项目号和在该项目号下有效的成员才能提交作业
五 账户管理规则 超级计算机计算资源申请表 □个人项目 □业务项目 □部门项目 姓名 院系 电话 电子邮件 计算项目类别 计算项目号 五 账户管理规则 超级计算机计算资源申请表 姓名 院系 电话 电子邮件 计算项目类别 □个人项目 □业务项目 □部门项目 计算项目号 计算项目描述 起止时间 年度配额 (万核·小时) 配额估算依据 申请人: 填表人: 日期: 填表说明: 个人的计算项目号格式为 P+工号+三位数字(第一个为001, 第二个为002,... )。 业务/部门项目的姓名为实际运行的业务或部门名称,计算项目号由超算中心统一安排,起止时间不用填写。 项目描述要注明实际的科研项目及所用到的的模式或软件。 年度配额仅为预申请配额,最终核准的配额要根据计算机的实际年度计算能力协调分配。
五 账户管理规则 超级计算机账号申请表 姓名 学号/工号 预设账号 电话 电子邮件 院系 用户类别 □教师 □学生 □合作、访问学者 有效期 五 账户管理规则 超级计算机账号申请表 姓名 学号/工号 预设账号 电话 电子邮件 院系 用户类别 □教师 □学生 □合作、访问学者 计算项目号 有效期 项目主管人 申请人: 日期: 填表说明: 校内教师和学生需填写学号/工号;合作、访问人员不用填写。 预设账号为拟开通使用的超级计算机账号,如有冲突,由超算中心重新分配。 记帐项目号从项目负责人处获取,并由项目负责人签字。 教师有效期如无特别指定,可不用填写;合作、访问人员需要指定有效期;学生账号的有效期从申请日期起到规定毕业年份的6月底。
五 账户管理规则 2)账户数目限制 3)账户清理 每人只允许使用一个账户。假借他人身份多开账户,将对所有相关账户进行冻结 五 账户管理规则 2)账户数目限制 每人只允许使用一个账户。假借他人身份多开账户,将对所有相关账户进行冻结 3)账户清理 以下情况将被视为非活动账户,自动进行清理 账户到期后,给予30天的宽容期,在宽容期内,只能下载备份自己的数据, 30天后账户将被自动清除,并删除所有相关目录 6个月内登录次数少于10次的账户将冻结 超过一年没有使用的账户,将提前30天通知账户将关闭,30天后自动关闭 已离校或已结束合作关系,将提前30天通知账户将关闭,三个月后自动关闭
五 账户管理规则 3)帐户密码规则 密码长度至少8个字符长 密码中至少需要有一个大写字母 密码中至少需要有一个小写字母 五 账户管理规则 3)帐户密码规则 密码长度至少8个字符长 密码中至少需要有一个大写字母 密码中至少需要有一个小写字母 密码中至少需要有一个数字 密码中至少需要一个其他符号(例如,!,@#$%等)
六 计算资源管理 1)计算资源申请 每年由项目负责人根据需求按项目进行计算配额申请,年度总配额分别除以12和4后,按30日配额和90日配额进行滑动管理。在任意连续30日/90日内如果超出配额限制,则该项目组的所有账号都需要暂停使用,直到30日/90日累计算量降到配额限制以下才能恢复使用。亦即, 整个项目每日的最大可用计算量 = 30日/90日配额 – 前29日/89日的累计计算量 每年10月中旬开始进行计算配额申报,截至日期为10月底, 11月中旬将由大型机主管部门组织高性能资源分配协调会,讨论并协调高性能计算资源的最终分配方案
六 计算资源管理 2)计算量统计方式 计算量按‘核·小时’为单位来进行统计 独占任务 共享任务 核·秒/3600 x 权重系数 六 计算资源管理 2)计算量统计方式 计算量按‘核·小时’为单位来进行统计 独占任务 墙钟小时 x 所用计算节点 x 核数/节点 x 权重系数 共享任务 核·秒/3600 x 权重系数
七 不允许行为 以下情况将不被允许 处理 在登录节点上运行较大需要大资源的程序,导致节点响应缓慢,影响到其他用户 七 不允许行为 以下情况将不被允许 在登录节点上运行较大需要大资源的程序,导致节点响应缓慢,影响到其他用户 绕过作业管理,直接提交任务到计算节点 通过使用更改文件时间等手段来干扰/绕过工作目录卷、临时文件目录卷的文件清理机制 处理 不进行通知,直接中止正在运行的程序 第一次违反,将给以警告 第二次违反,将立即禁用账号30天 第三次违反,立即禁用账号,在项目负责人提出账户解冻申请并做相应承诺后,酌情处理
八作业提交 PBS指令 – 在脚本中以“#PBS”开头 #PBS -N jobname 可选设置,作业名 #PBS –S /bin/bash 指定PBS的Shell为bash #PBS -P project number 必需设置,作业项目号,P+9位数字 # PBS -q queue 必须设置,队列名,Regular, Economy, Longtime (注意: 队列名大小写敏感) #PBS -l nodes=N:ppn=M 必须设置,N:节点数, M:每个节点核数 #PBS -l walltime=hh:nn:mm 可选设置,墙钟限制,不同队列,墙钟限制不一样,最长24小时
八作业提交 #PBS -M me@eartch #PBS -m bea #PBS –V #PBS -o jobname.out 可选设置,作业报告发送电子邮件地址 #PBS -m bea 可选设置,作业报告发送状态,b – 开始,e – 结束, a – 中止 #PBS –V 可选设置,复制用户环境变量 #PBS -o jobname.out 可选设置,标准输出输出文件 #PBS -e jobname.err 可选设置,标准错误输出文件 注:注释PBS指令,在指令前再加一个“#”,例如:##PBS –V PBS指令也可以通过命令行方式提供,不放到脚本中,指令前不需要加“#PBS” 例如:qsub -n helloworld -P P123456789 -l nodes=2:ppn=12 -l walltime=00:05:00 -q Regular job.sh
八作业提交 2. 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 用户指定的作业名 $PBS_NODEFILE PBS系统指定的作业运行的节点名 $PBS_QUEUE PBS脚本在执行时的队列名
八作业提交 3. 命令运行方式 MPI程序 OpenMP程序 串行程序 ./serial_app.exe mpirun -n np mpi_app.exe OpenMP程序 export OMP_NUM_THREADS = np ./omp_app.exe 串行程序 ./serial_app.exe
八作业提交 示例一 MPI并行作业,使用两个节点,每个节点12个核 #!/bin/bash #PBS –S /bin/bash #PBS -N helloworld #PBS -P P123456789 #PBS -q queue Regular #PBS -l nodes=2:ppn=12 #PBS -l walltime=00:05:00 cd $PBS_O_WORKDIR nprocs=`cat $PBS_NODEFILE | wc -l` mpirun -np $nprocs ./hello.exe
八作业提交 示例二 串行作业,使用1个节点,4个核运行4个任务 #!/bin/sh … #PBS -l nodes=1:ppn=4 cd $WORK_DIR1 /usr/bin/time myapp1.exe & cd $WOR_DIR2 /usr/bin/time myapp2.exe & cd $WORK_DIR3 /usr/bin/time myapp3.exe & cd $WORK_DIR4 /usr/bin/time myapp4.exe WaitForAllDone.sh
八作业提交 示例三 关联作业 #!/bin/bash job1=`qsub job1.sh` job2=`qsub -W depend=afterok:$job1 job2.sh` job3=`qsub -W depend=afterok:$job2 job3.sh` job4=`qsub -W depend=afterok:$job3 job4.sh` exit 0 afterok:<Job-ID> : 当指定的作业正常退出 afternotok:<Job-ID> :当指定的作业异常退出 afterany:<Job-ID> : 只要指定的作业结束不论正常或异常
八作业提交 示例四,OpenMP作业 #!/bin/sh … #PBS -l nodes=1:ppn=12 export OMP_NUM_THREADS=12 ./my_openmp_app.exe
八作业提交 qdel – 删除作业. qstat – 查询作业信息 qdel job_id ... qstat # 显示所有用户信息 qstat -f # 显示完整信息 qstat -u username #查询指定用户的作业情况 qstat -q #查询队列情况
九常见编译问题 WRFDA 1. Intel 编译问题 : catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error. var/build/da.make 3.5.1 3.5 (line 410, 413) 3.4.1 3.4 (line 401, 404) 3.3.1 (line 385, 388) 把 $(FCFLAGS) 改为 -O1 $(FCBASEOPTS)
九常见编译问题 var/gen_be/gen_be_etkf.f90 3.5.1 3.5 3.4.1 3.4 gen_be_etkf 运行时,segmentation fault var/gen_be/gen_be_etkf.f90 3.5.1 3.5 3.4.1 3.4 38 character (len=nf_max_name) :: var_name 508 - 558 nf_inq_var 第三个参数替换成 var_name
九常见编译问题 使用NETCDF 4.1.2以上版本编译WRF 3.3 & WRFDA 3.3 GFORTRAN WRFPLUSV3 http://www.mmm.ucar.edu/wrf/src/fix/configure_fix.tar GFORTRAN WRF & WRFDA 3.4 3.4.1 3.3 3.3.1 configure.wrf 去掉 -ftree-loop-linear WRF 3.3 3.3.1 phys/module_cu_g3.F (line 3122 ) integer, dimension (8) :: seed -> integer, dimension (12) :: seed WRFPLUSV3 phys/module_cam_mp_microp_aero.F line 3 comment out
九常见编译问题 ARWpost RIP 4 NETCDFLIB = -L${NETCDF}/lib -lnetcdff -lnetcdf NCARGLIBS = -L${NCARG_ROOT}/lib -lncarg -lcgm -lncarg_gks -lncarg_c -lX11 -lm \ -L/usr/lib64 –lcairo ARWpost NETCDF 4.3.0 3.2 src/Makefile (line 19) 2.2 src/Makefile (line 31) 在 -lnetcdf 前加上-lnetcdff
九常见编译问题 WPS configure.wps COMPRESSION_LIBS = -L/usr/lib64 \ 3.3 3.3.1 configure.wps COMPRESSION_LIBS = -L/usr/lib64 \ -ljasper -lpng12 -lpng -lz COMPRESSION_INC = -I/usr/include NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \ -L/usr/lib64 -lX11 -lcairo 3.4 3.4.1 3.5 3.5.1 NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \
问题或建议 hpc@nuist.edu.cn