HPC用户环境设置-气象灾害教育部重点实验室httpklme.ppt

上传人:ga****84 文档编号:350166 上传时间:2018-09-25 格式:PPT 页数:23 大小:100.50KB
下载 相关 举报
HPC用户环境设置-气象灾害教育部重点实验室httpklme.ppt_第1页
第1页 / 共23页
HPC用户环境设置-气象灾害教育部重点实验室httpklme.ppt_第2页
第2页 / 共23页
HPC用户环境设置-气象灾害教育部重点实验室httpklme.ppt_第3页
第3页 / 共23页
HPC用户环境设置-气象灾害教育部重点实验室httpklme.ppt_第4页
第4页 / 共23页
HPC用户环境设置-气象灾害教育部重点实验室httpklme.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

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

2、用于单一或静态的环境设置简单,不需要特殊的脚本编程知识动态设置使用“modules” system,例如Environment Moduleshttp:/ 添加到可执行程序搜索路径中当前路径”.”不在可执行程序搜索路径中时,执行当前路径下的可执行程序时,必须指明当前路径信息“./”,例如;”./hello”从方便角度考虑,可以在自己的用户环境文件中在PATH环境变量中添加当前路径”.”LD_LIBRARY_PATH运行时,除了ld.so.conf中设置的缺省路径之外的其他共享库的搜索路径该路径在缺省路径之前查找跟编译时库搜索路径没有关系,编译的时候还是该加-L就得加,不要混淆该变量只适用于Li

3、nux,其他系统如,AIX, Mac OS X等不使用该变量MANPATH帮助命令man搜索man page的路径应用程序环境变量根据具体的应用程序而定,例如,NETCDF, NCARG_ROOT等,用户环境变量(续),以下环境变量慎用,可能会与预期的工作方式不同FPATHKSH的shell function的搜索路径可用于头文件搜索路径 (Linux OS and Mac OS X) LIBRARY_PATHgcc 编译期间查找动态链接库时指定查找共享库的路径不是所有编译器都会使用该变量 C_INCLUDE_PATHgcc 编译期间头文件的搜索路径不是所有编译器都会使用该变量CPLUS_IN

4、CLUDE_PATHg+ 编译期间C+头文件的搜索路径不是所有编译器都会使用该变量,用户环境变量(续),编译相关的通用约定环境变量以下环境变量仅为通用约定,具体的应用程序不一定遵循这些约定使用遵循通用约定的configure/make时,如无具体设置这些变量,则会调用缺省的编译设置,使用Environment Modules,常用命令列出加载的模块 module list列出可用的模块 module avail加载指定的模块 module load卸载指定的模块 module unload切换不同的模块 module switch使用自定义module需要首先加载 use.own 模块把自定义

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

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

7、行设置,只有其中的一个设置会有效,例如,module load 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有效(前添加方式)通过

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

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

10、要进行相同的设置,以避免出现运行时,运行环境不一致的情况,login shell与non login-shell,login shell取得Shell需要完整的登入流程,就称为login shellnon-login shell取得Shell而不需要重复登入的动作 login shell 和 non-login shell的最大区别在于读取环境变量的配置文件不同在X介面下启动的终端,基本都是non-login shell,Interactive与non-interactive shells,Interactive shelllogin shell 或 non-login shell可以交互式输

11、入/中断命令non-interactive shell一个子shell,通常是一个non-login shell在interactive shell下执行脚本,将会启动non-interactive shellnon-interactive shell只能从其父进程处继承环境变量 ksh 在non-interactive shell中不扩展父进程中的别名和shell functions,用户环境初始化流程,/etc/profile,/.profile,non-login shells,non-login shells,ksh,/etc/profile,/.profile,/.bashrc,no

12、n-login shells,login shells,bash,NO,/.bash_profile,Yes,? /.bash_login,/.bash_login,NO,Yes,? /.bash_profile,$ENV,$ENV,/.kshrc,-p,NO,Yes,用户环境初始化流程(续),/etc/csh.csh,? /.tcshrc,/.tcshrc,Yes,non-login shells,login shells,NO,/etc/csh.login,/.cshrc,-f option,csh/tcsh,NO,Yes,tcsh,不同Shell模式都涉及的用户初始化文件,注:以上测试环

13、境为Red Hat Enterprise Linux Server release 6.2 (Santiago)GNU bash, version 4.1.2(1)-releaseksh sh (AT&T Research) 93t+ 2010-06-21tcsh 6.17.00 (Astron) 2009-07-10因环境/系统配置不同,有可能有差异,运行MPI任务时环境初始化过程,non-interactivelogin shell,non-interactivenon-login shell,my_job.sh,mpirun,执行远程命令,non-interactive login sh

14、ell,non-interactivenon-login shell,调度节点,主节点,MPI任务节点,mpi_prog.exe mpi_prog.exe,脚本中所设环境变量只在主节点及对MPI主进程有效,要传递到MPI任务节点,需通过MPI启动脚本的相应参数,主节点环境变量,MPI节点环境变量,执行远程命令,环境变量继承顺序,运行MPI任务时环境初始化过程(续),Interactive login shell,non-interactivenon-login shell,my_job.sh,mpirun,non-interactive login shell,non-interactiven

15、on-login shell,主节点,MPI任务节点,mpi_prog.exe mpi_prog.exe,脚本中所设环境变量只在主节点及对MPI主进程有效,要传递到MPI任务节点,需通过MPI启动脚本的相应参数,主节点环境变量,MPI节点环境变量,执行远程命令,环境变量继承顺序,作业脚本的额外设置,login shell CSH设置#PBS -S /bin/bash可避免出现以下信息(需.bashrc与.cshrc的设置一致)e file : tput: No value for $TERM and no -T specifiedo file : Warning: no access to t

16、ty (Bad file descriptor). Thus no job control in this shell.login shell KSH设置#PBS -S /bin/bash可避免出现以下信息(需.bashrc与.kshrc的设置一直)/etc/profile90: .5: .5: .46: shopt: not found No such file or directory如果需要在作业脚本中使用module命令,则需在作业脚本开头添加以下命令进行ksh的环境初始化 . /etc/profile.d/modules.sh 使用qsub 提交KSH的脚本如果需要在作业脚本中使用m

17、odule命令,则需在作业脚本开头添加以下命令进行ksh的环境初始化 . /etc/profile.d/modules.sh ,把当前脚本中用户环境变量复制到作业脚本运行环境中在PBS作业脚本中设置#PBS V#!/bin/bashexport work_dir=/blah/blahexport 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

18、 -P P000000000#PBS -Vecho work_dir=|$work_dir|echo data_dir=|$data_dir|,快速检测运行环境,平台信息的检测/etc/system-releaselsb_release -auname -a/proc/cpuinfo查看cpu类型cat /proc/cpuinfo | grep model name具有相同core id的cpu是同一个core的超线程cat /proc/cpuinfo | grep core id具有相同physical id的cpu是同一颗cpu封装的线程或者corescat /proc/cpuinfo |

19、 grep physical idsiblings 与 “cpu cores”不一致,则超线程打开cat /proc/cpuinfo | grep siblings | sort ucat /proc/cpuinfo | grep cpu cores | sort u/proc/meminfoegrep -color Mem|Cache|Swap /proc/meminfo free 命令free -gvmstat,软件环境的检测#!/bin/bash#PBS -N check_env#PBS -q Regular#PBS -l node=2:ppn=2#PBS -l walltime=00:

20、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

21、,每个节点都运行,只在主节点运行,#!/bin/bash#PBS -N hello#PBS -q Regular#PBS -l node=2:ppn=2#PBS -l walltime=00:00:10#PBS -P P000000000cd $PBS_O_WORKDIRmpirun -np 4 ./hello,快速检测运行环境 (续),program hello include mpif.h integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) call MPI_INIT(ierror) call MPI_COMM_SIZE(MPI

22、_COMM_WORLD, size, ierror) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror) print*, node, rank, : Hello world call MPI_FINALIZE(ierror) endmpif90 -o hello hello_mpi.f90,#include #include int main(int argc, char* argv) int rank, size; char hostname256; MPI_Init( mpicc -o hello hello_mpi.c,qsub hello.pbs,问题或建议,,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。