NWPC高性能计算机环境介绍:系统登录

目录

本文是《NWPC高性能计算机环境介绍》系列文章的一部分。

登录方式

HPC使用SSH登录:

  • 用户名+密码:默认的方式
  • 用户名+秘钥:需要配置秘钥,可以实现无密码登录

登录工具

登录命令行需要准备SSH客户端,如果想使用图形软件,还需要X11服务。

Windows

推荐使用 XManagerMobaXterm 等带有 X11 服务的 SSH 登录软件,但这两个软件都是收费软件,使用前请三思。 也可以单独使用SSH命令行,例如 PuttySecureCRT等,Windows 10 自带的 WSL 也提供 ssh 命令。 X11服务开源软件可以使用Xming,但我没有用过。

Linux

Linux自带的终端就可以实现SSH登陆,X Windows System 和 GNOME、KDE 等桌面提供 X11 服务。 当然可以安装第三方命令行终端,例如 Terminator。

Mac

Mac与Linux类似,自带的终端和第三方终端都可以实现 SSH 登陆。 X11 服务需要使用 XQuartz,就我个人使用经验来看,XQuartz不太稳定。 我一般使用Microsoft远程桌面工具直接连接到工作电脑。

域名访问

CMA-PI的两个子系统有不同的登陆域名:

  • pird.nmic.cn:科研分区,子系统1
  • piop.nmic.cn:业务分区,子系统2

不同的科研用户默认分配给不同的子系统。数值预报业务系统的账户都分配在业务分区。

当用户使用域名登陆时,系统会根据登录节点的负载,自动分配到较空闲的一个。

子系统1,login_a01 ~ login_a10

子系统2,login_b01 ~ login_b10

访问指定节点

建议大家使用域名登陆HPC,当然某些特殊情况下需要访问某个特定的节点。例如,数值预报业务系统调度软件ecFlow运行在登录节点,启动或停止ecFlow进程需要登录到特定的HPC节点。

访问指定节点有下面两种方法。

登录后切换

使用域名登录后,使用ssh登录到某节点。

ssh user_name@login_a06

使用ip地址登录

直接使用ip地址登录HPC,ip地址由ifconfig命令获得。

ifconfig命令输出,第一个ip地址就是内网可以访问到的节点ip地址

shell环境

登陆缺省的shell环境是bash

SHELL环境变量指示当前使用的shell环境

可以通过chsh命令修改shell环境

配置shell

使用账户名和密码登录获得的shell是 login shell。我们可以使用一系列文件对shell进行配置。

下面是shell配置文件的示意图,包括系统配置文件、用户个性设置文件和用户通用设置文件。

系统配置文件
系统配置文件
/etc/profile
/etc/profile
用户个性设置文件
用户个性设置文件
~/.bash_profile
~/.bash_profile
~/.bash_login
~/.bash_login
~/.profile
~/.profile
用户通用设置文件
用户通用设置文件
/etc/bashrc
/etc/bashrc
系统管理员设置
系统管理员设置

依次查找,执行找到的第一个脚本


一般会调用~/.bashrc

[Not supported by viewer]
由~/.bashrc调用
由~/.bashrc调用

对于 login shell,配置文件的处理流程如下:

登陆
登陆
/etc/profile
/etc/profile
~/.bash_profile
~/.bash_profile
~/.bashrc
~/.bashrc
/etc/bashrc
/etc/bashrc
/etc/profile.d/*.sh
/etc/profile.d/*.sh
bash启动
bash启动
系统调用
系统调用
脚本调用
脚本调用

不需要登陆操作获取的bash界面是non-login shell,配置文件的处理流程如下:

登陆
登陆
~/.bashrc
~/.bashrc
/etc/bashrc
/etc/bashrc
/etc/profile.d/*.sh
/etc/profile.d/*.sh
bash启动
bash启动
系统调用
系统调用
脚本调用
脚本调用

其实我们往往不需要关心两种登陆方式的区别,只需要将所有的设置放到~/.bashrc中,就能保证所有登陆都会设置相同的环境。

下面给出部分设置文件的示例。

~/.bash_profile

用户设置文件~/.bash_profile比较简单,主要执行如下两项任务:

  • 调用~/.bashrc
  • 设置环境变量
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export PATH=${PATH}:${HOME}/.local/bin:${HOME}/bin

~/.bashrc

用户设置文件~/.bashrc是最主要的环境配置文件,执行如下任务:

  • 调用/etc/bashrc
  • 设置用户环境,包括:
    • 设置命令行提示符
    • 设置DISPLAY
    • 加载软件包
    • 设置环境变量
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
if [ "$PS1" ]; then
  export PS1='[\u@$(hostname -a|cut -d " " -f 2) \w]\$'
fi

#  Check the Display and set
FROM_HOST=`who am i | sed -n 's/.*(\(.*\)).*/\1/p'`
tset -s -m 'network:?vt100' -m 'xterm:?xterm' 2> /dev/null
if [ X$DISPLAY = "X" ] ; then
  DISPLAY=$FROM_HOST:0.0
  export DISPLAY
fi

if [ x$(hostname | cut -c1-5) = "xlogin" ] ; then
  module load compiler/intel/composer_xe_2017.2.174
  module load mpi/intelmpi/2017.2.174
  module load mathlib/git/2.9.5/gnu
  module load mathlib/ncl_ncarg/6.4.0/gnu
fi

export MODULEPATH=/g3/wangdp/modules:$MODULEPATH
export PATH=/g3/wangdp/usr/local/bin:$PATH:/opt/gridview/slurm17/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}/opt/gridview/slurm17/lib

/etc/profile

系统配置文件/etc/profile由管理员配置,主要执行如下任务:

  • 设置环境变量:PATH, USER, LOGNAME, HOSTNAME
  • 设置umask:022,即默认文件权限rwxr-xr-x
  • 调用/etc/profile.d/目录下的配置文件

/etc/profile.d/目录是管理员配置的各个参数文件:

/etc/profile.d/下的配置文件

其中:

  • set-user-workdir.sh:设置用户工作目录环境变量WORKDIR
  • perforce.sh: 设置perforce环境
  • modules.sh:设置modules环境