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 环境

参考

NWPC高性能计算机环境介绍 系列文章

汇总

高性能计算机概况

系统登录

文件系统

应用软件

作业管理

数据管理