HPC用户环境设置-气象灾害教育部重点实验室httpklme_第1页
HPC用户环境设置-气象灾害教育部重点实验室httpklme_第2页
HPC用户环境设置-气象灾害教育部重点实验室httpklme_第3页
HPC用户环境设置-气象灾害教育部重点实验室httpklme_第4页
HPC用户环境设置-气象灾害教育部重点实验室httpklme_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NUIST HPC使用讲座 用户环境设置刘建宇2015-04-14!声明!这里讨论的用户环境设置是基于目前(2014年)的NUIST HPC的配置上进行的相关的用法、设置方式等有一定的普遍性,也有本地局限性这里讨论的用法、设置方式,在不同的系统及配置下可能不适用这里讨论的用法、设置方式,可能有不全面或不足之处仅供参考,谨慎使用3/Public/User_Environment.pdf仅校内可访问用户环境设置方式静态设置 直接在用户环境文件(.bashrc, kshrc, cshrc等)中设置具体的路径信息 在脚本中硬编码嵌入具体的路径信具体的路径信息 适用于

2、单一或静态的环境 设置简单,不需要特殊的脚本编程知识动态设置 使用“modules” system,例如 Environment Modules http:/ Lmod http:/ 适用于多版本共存,需要动态切换的复杂环境 需要相应的脚本编程知识用户环境变量PATH可执行程序的搜索路径当前路径”.”不是缺省搜索位置从安全角度考虑,缺省设置没有把”.” 添加到可执行程序搜索路径中当前路径”.”不在可执行程序搜索路径中时,执行当前路径下的可执行程序时,必须指明当前路径信息“./”,例如;”./hello”从方便角度考虑,可以在自己的用户环境文件中在PATH环境变量中添加当前路径”.”LD_LIB

3、RARY_PATH运行时,除了ld.so.conf中设置的缺省路径之外的其他共享库的搜索路径该路径在缺省路径之前查找跟编译时库搜索路径没有关系,编译的时候还是该加-L就得加,不要混淆该变量只适用于Linux,其他系统如,AIX, Mac OS X等不使用该变量MANPATH帮助命令man搜索man page的路径应用程序环境变量根据具体的应用程序而定,例如,NETCDF, NCARG_ROOT等用户环境变量(续)以下环境变量慎用,可能会与预期的工作方式不同 FPATHKSH的shell function的搜索路径可用于头文件搜索路径 (Linux OS and Mac OS X) LIBRAR

4、Y_PATHgcc 编译期间查找动态链接库时指定查找共享库的路径不是所有编译器都会使用该变量 C_INCLUDE_PATHgcc 编译期间头文件的搜索路径不是所有编译器都会使用该变量 CPLUS_INCLUDE_PATHg+ 编译期间C+头文件的搜索路径不是所有编译器都会使用该变量用户环境变量(续)编译相关的通用约定环境变量以下环境变量仅为通用约定,具体的应用程序不一定遵循这些约定使用遵循通用约定的configure/make时,如无具体设置这些变量,则会调用缺省的编译设置FCFortran 编译器F90Fortran 90编译器F95Fortran 95编译器F77Fortran 77编译器

5、CCC 编译器CXXC+ 编译器CPPC预处理器FCFLAGSFortran 编译选项FFLAGSF77 编译选项CFLAGSC 编译选项CXXFLAGSC+ 编译选项CPPFLAGSC预处理选项LDFLAGS链接选项使用Environment Modules常用命令 列出加载的模块 module list 列出可用的模块 module avail 加载指定的模块 module load 卸载指定的模块 module unload 切换不同的模块 module switch使用自定义module 需要首先加载 use.own 模块把自定义的模块放$MODULEPATH中定义的用户自定义模块路径

6、下,一般为$HOME/privatemodules 或 $HOME/.privatemodulesmodule 脚本的编写采用tcl/tk(http:/tcl.tk/)可参考$MODULEPATH中定义的模块路径下的脚本来改写自己的module脚本加载Module时按$MODULEPATH中定义的路径顺序搜索,使用第一个匹配的项目Environment Modules注意事项module load 为前添加方式 后加载的模块的路径在最前面在搜索路径时,按路径顺序搜索,使用搜索到的第一个匹配项目某些模块需要使用的库有兼容性问题 libhdf5 : matlab, hdf5 / ncl + net

7、cdf 4.x某些模块可能有依赖关系 netcdf 4.x, hdf5, ncl IMPI, MKL, Intel Compiler编译模块是基础模块,大多数模块的加载都依赖于编译模块需要首先加载编译模块,然后再加载其他的模块加载缺省版本模块时,可以不用指明版本号切换不同版本模块时,需要指明版本号在module加载后,修改了module脚本,再卸载,无法完全清除旧的信息。因此,要更改module脚本时,如该module已加载,需要先卸载,再更改module脚本。用户环境设置注意事项对同一环境变量,同时通过module命令与静态方式分别进行设置,只有其中的一个设置会有效,例如,module lo

8、ad netcdf/3.6.3export LD_LIBRARY_PATH=/my/netcdf/lib:$LD_LIBRARY_PATHexport的设置有效export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my/netcdf/libexport的设置无效export LD_LIBRARY_PATH=/my/netcdf/lib:$LD_LIBRARY_PATHmodule load netcdf/3.6.3module加载的netcdf-3.6.3的LD_LIBRARY_PATH有效(前添加方式)通过module load加载相关库后,只是设置了常用约定的环

9、境变量,并非适用所有的应用情形。针对具体的应用,可采用以下步骤获得正确设置所需要的信息1.先使用module load加载相关的模块2.使用env命令,查看PATH、LD_LIBRARY_PATH中等对应模块的位置及相关变量的设置3.根据具体应用的要求,设置对应的相关信息用户环境设置注意事项(续)除非清楚相关的设置及相关关系,否则最好不要同时混用module命令与静态方式进行设置,特别是交叉混合设置不同编译器,不同版本库可执行程序、库、头文件的搜索都是依相关搜索路径顺序进行,使用第一个匹配的项目。在有多个同名文件时,需要注意搜索路径顺序,以免使用的并不是所期望的。在用户环境文件或脚本中安全切换

10、环境设置的方式为module purgemodule load use.own # 可选步骤,如果需要加载自己的模块module load 编译器模块module load 相关模块 当登录节点的login shell与计算节点的login shell设置不同时,有可能引起作业运行时因环境初始化不一致而导致作业运行问题。这一问题大多发生在用户账户信息同步的问题上。可以通过设置相应的login shell的用户环境设置文件自行解决或通知系统管理员对账户信息同步进行处理当login shell 与作业脚本shell不同时,相应的用户环境设置文件中都要进行相同的设置,以避免出现运行时,运行环境不一致

11、的情况login shell与non login-shell login shell取得Shell需要完整的登入流程,就称为login shell non-login shell取得Shell而不需要重复登入的动作 login shell 和 non-login shell的最大区别在于读取环境变量的配置文件不同 在X介面下启动的终端,基本都是non-login shellInteractive与non-interactive shells Interactive shell login shell 或 non-login shell 可以交互式输入/中断命令 non-interactive

12、shell 一个子shell,通常是一个non-login shell 在interactive shell下执行脚本,将会启动non-interactive shell non-interactive shell只能从其父进程处继承环境变量 ksh 在non-interactive shell中不扩展父进程中的别名和shell functions用户环境初始化流程/etc/profile/.profilenon-login shellsnon-login shellsksh/etc/profile/.profile/.bashrcnon-login shellslogin shellsbas

13、hNO/.bash_profileYes? /.bash_login/.bash_loginNOYes? /.bash_profile$ENV$ENV/.kshrc-pNOYes用户环境初始化流程(续)/etc/csh.csh? /.tcshrc/.tcshrcYesnon-login shellslogin shellsNO/etc/csh.login/.cshrc-f optioncsh/tcshNOYestcsh不同Shell模式都涉及的用户初始化文件shell 模式执行方式bashkshcsh/tcshinteractive login shell打开putty终端/.bashrc/.

14、kshrc/.cshrcinteractive non-login shell打开xterm终端/.bashrc/.kshrc/.cshrcnon-interactive login shell执行远程命令/.bashrc/.cshrcnon-interactive non-login shell运行一个脚本/.cshrccrontab启动任务注:以上测试环境为Red Hat Enterprise Linux Server release 6.2 (Santiago)GNU bash, version 4.1.2(1)-releaseksh sh (AT&T Research) 93t

15、+ 2010-06-21tcsh 6.17.00 (Astron) 2009-07-10因环境/系统配置不同,有可能有差异运行MPI任务时环境初始化过程non-interactivelogin shellnon-interactivenon-login shellmy_job.shmpirun执行远程命令non-interactive login shellnon-interactivenon-login shell调度节点主节点MPI任务节点mpi_prog.exe mpi_prog.exe脚本中所设环境变量只在主节点及对MPI主进程有效,要传递到MPI任务节点,需通过MPI启动脚本的相应参

16、数主节点环境变量MPI节点环境变量执行远程命令环境变量继承顺序运行MPI任务时环境初始化过程(续)Interactive login shellnon-interactivenon-login shellmy_job.shmpirunnon-interactive login shellnon-interactivenon-login shell主节点MPI任务节点mpi_prog.exe mpi_prog.exe脚本中所设环境变量只在主节点及对MPI主进程有效,要传递到MPI任务节点,需通过MPI启动脚本的相应参数主节点环境变量MPI节点环境变量执行远程命令环境变量继承顺序作业脚本的额外设置

17、ulogin shell CSH设置#PBS -S /bin/bash可避免出现以下信息(需.bashrc与.cshrc的设置一致)e file : tput: No value for $TERM and no -T specifiedo file : Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.ulogin shell KSH1.设置#PBS -S /bin/bash可避免出现以下信息(需.bashrc与.kshrc的设置一直)/etc/profile90: .5: .

18、5: .46: shopt: not found No such file or directory2.如果需要在作业脚本中使用module命令,则需在作业脚本开头添加以下命令进行ksh的环境初始化 . /etc/profile.d/modules.sh u使用qsub 提交KSH的脚本如果需要在作业脚本中使用module命令,则需在作业脚本开头添加以下命令进行ksh的环境初始化 . /etc/profile.d/modules.sh u把当前脚本中用户环境变量复制到作业脚本运行环境中在PBS作业脚本中设置#PBS V#!/bin/bashexport work_dir=/blah/blahe

19、xport data_dir=/blah/blah qsub my_job.sh. 作业脚本的额外设置(续)my_job.sh#!/bin/bash#PBS -N check_env#PBS -q Regular#PBS -l node=2:ppn=2#PBS -l walltime=00:00:05#PBS -P P000000000#PBS -Vecho work_dir=|$work_dir|echo data_dir=|$data_dir|快速检测运行环境平台信息的检测 /etc/system-release lsb_release -a uname -a /proc/cpuinfo

20、查看cpu类型 cat /proc/cpuinfo | grep model name 具有相同core id的cpu是同一个core的超线程 cat /proc/cpuinfo | grep core id 具有相同physical id的cpu是同一颗cpu封装的线程或者cores cat /proc/cpuinfo | grep physical id siblings 与 “cpu cores”不一致,则超线程打开 cat /proc/cpuinfo | grep siblings | sort u cat /proc/cpuinfo | grep cpu cores | sort u

21、 /proc/meminfo egrep -color Mem|Cache|Swap /proc/meminfo free 命令 free -g vmstat软件环境的检测#!/bin/bash#PBS -N check_env#PBS -q Regular#PBS -l node=2:ppn=2#PBS -l walltime=00:00:10#PBS -P P000000000#cd $PBS_O_WORKDIRpwd env_pwd_outmodule list env_module_out 2&1env env_outulimit -a env_ulimit_outecho $PATH env_PATH_outecho $LD_LIBRARY_PATH env_LD_LIBRARY_PATH_outwhich mpirun env_which_mpimpicc -v env_which_mpi 2&1mpif90 -v env_which_mpi 2&1快速检测运行环境mpirun -np $nprocs env每个节点都运行只在主节点运行#!/bin/bash#PBS -N hello#PBS -q Regular#PBS -l node=2:ppn=2#PBS -l walltime=00:00:10#PBS -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论