因为计算物理需要强大的计算能力做支撑,所以我们课题组在 国家超级计算深圳中心 购买了计算资源。

我来记录一下使用超算过程中会用到的一些命令,防止我自己遗忘了。同时也能通过这样加深自己对 Linux 系统的理解。

基本信息

  • 内核版本:Linux version 2.6.32
  • 系统版本:CentOS release 6.7 (Final)

上网方法

超算只能通过 VPN 来访问,并且其没有连接互联网,处于内网的环境。

因为在编译一些软件的时候能上网会方便很多,便想到通过反向代理的方法让内网电脑也能上网。

在 SSH 设置中添加如下配置

Host hpc
    RemoteForward 127.0.0.1:1080 127.0.0.1:1080

然后通过 http_proxy 即可访问互联网。

# 超算
export http_proxy="http://127.0.0.1:1080"
export https_proxy="http://127.0.0.1:1080"

因为超算不支持证书登录,如果使用 VSCode Remote-SSH 时,必须每次都输入密码,很不方便。

通过搜索,我发现一个 方法 能免去输入密码的烦恼:

# 设置环境变量
$env:ASKPASS_PASSWORD = <ssh_user_password>
$env:SSH_ASKPASS_REQUIRE = "force"
$env:SSH_ASKPASS = <path\to\askpass.exe>

也可直接在 VSCode 设置中添加:

"terminal.integrated.env.windows": {
    "ASKPASS_PASSWORD": "ssh_user_password",
    "SSH_ASKPASS_REQUIRE": "force",
    "SSH_ASKPASS": "path\to\askpass.exe"
}

编译环境

编译软件时,需要使用专门的编译节点。

一些编译器的环境变量地址

# gcc 7.3.0
. /home-yw/env_new/gcc/gcc-7.3.0.sh

提交任务

超算使用的 LSF 作业调度系统,以下是提交作业的一个例子。

创建 test.lsf 文件,填入一下内容。

#!/bin/sh

# 计算任务进入的队列
APP_NAME="intelY_bm"
# 计算任务需要的核数
NP=24
# 每个节点上使用 12 个核
NP_PER_NODE=12
# 固定格式,如果 RUN 的内容为 RAW,下面的计算才会生效
RUN="RAW"
# 如果使用 RAW 方式,强烈建议加上以下两条 source 已重新加载编译器环境和 MPI 环境
source /home-yw/env_new/gcc/gcc-7.3.0.sh
source /home-yw/env/openmpi-2.1.6-gnu8.2.0.sh
# 需要执行的命令
dcore_pre srvo3.ini && \
dcore srvo3.ini --np $NP
dcore_post srvo3.ini --np $NP

使用命令 bsub test.lsf 提交任务。

标签: 命令, 超算